When programming the Clock Generation Unit for E285-C hardware, we need to clear the time_sync_en bit of the DWORD 9 before we set the frequency.
Co-developed-by: Karol Kolacinski <karol.kolacin...@intel.com> Signed-off-by: Karol Kolacinski <karol.kolacin...@intel.com> Signed-off-by: Jacob Keller <jacob.e.kel...@intel.com> --- drivers/net/ethernet/intel/ice/ice_tspll.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/ethernet/intel/ice/ice_tspll.c b/drivers/net/ethernet/intel/ice/ice_tspll.c index 2cc728c2b67897940af75cb0bc3bfaf5fd8e6869..8de1ad1da8346d4be4224b923de3baeffc954198 100644 --- a/drivers/net/ethernet/intel/ice/ice_tspll.c +++ b/drivers/net/ethernet/intel/ice/ice_tspll.c @@ -285,6 +285,11 @@ static int ice_tspll_cfg_e825c(struct ice_hw *hw, enum ice_tspll_freq clk_freq, ICE_WRITE_CGU_REG_OR_DIE(hw, ICE_CGU_R23, dw23.val); } + if (dw9.time_sync_en) { + dw9.time_sync_en = 0; + ICE_WRITE_CGU_REG_OR_DIE(hw, ICE_CGU_R9, dw9.val); + } + /* Set the frequency */ dw9.time_ref_freq_sel = clk_freq; @@ -296,6 +301,7 @@ static int ice_tspll_cfg_e825c(struct ice_hw *hw, enum ice_tspll_freq clk_freq, dw9.time_ref_en = 1; dw9.clk_eref0_en = 0; } + dw9.time_sync_en = 1; ICE_WRITE_CGU_REG_OR_DIE(hw, ICE_CGU_R9, dw9.val); /* Choose the referenced frequency */ -- 2.48.1.397.gec9d649cc640