static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
{
struct device *dev = ðqos->pdev->dev;
+ unsigned int prg_rclk_dly;
int phase_shift;
int loopback;
*/
if (ethqos->has_emac_ge_3) {
/* 0.9 ns */
- rgmii_updatel(ethqos, SDCC_DDR_CONFIG_PRG_RCLK_DLY,
- FIELD_PREP(SDCC_DDR_CONFIG_PRG_RCLK_DLY,
- 115), SDCC_HC_REG_DDR_CONFIG);
+ prg_rclk_dly = 115;
} else {
/* 1.8 ns */
- rgmii_updatel(ethqos, SDCC_DDR_CONFIG_PRG_RCLK_DLY,
- FIELD_PREP(SDCC_DDR_CONFIG_PRG_RCLK_DLY,
- 57), SDCC_HC_REG_DDR_CONFIG);
+ prg_rclk_dly = 57;
}
+ rgmii_updatel(ethqos, SDCC_DDR_CONFIG_PRG_RCLK_DLY,
+ FIELD_PREP(SDCC_DDR_CONFIG_PRG_RCLK_DLY,
+ prg_rclk_dly), SDCC_HC_REG_DDR_CONFIG);
+
rgmii_setmask(ethqos, SDCC_DDR_CONFIG_PRG_DLY_EN,
SDCC_HC_REG_DDR_CONFIG);
}