[PATCH] drivers: clk: n5x: Fix incorrect EMAC clock source selection

Chee, Tien Fong tien.fong.chee at altera.com
Mon Jun 22 13:09:02 CEST 2026


Hi Lok,


On 7/5/2026 5:02 pm, Chen Huei Lok wrote:
> Fix the incorrect bit masking and bit shift that caused EMAC to always
> get the clock source from emaca_free_clk. The mask must be applied
> before shifting, not after.
>
> Signed-off-by: Chen Huei Lok <chen.huei.lok at altera.com>
> ---
>   drivers/clk/altera/clk-n5x.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/clk/altera/clk-n5x.c b/drivers/clk/altera/clk-n5x.c
> index 3495283407d..47a51bd5ace 100644
> --- a/drivers/clk/altera/clk-n5x.c
> +++ b/drivers/clk/altera/clk-n5x.c
> @@ -328,14 +328,14 @@ static u32 clk_get_emac_clk_hz(struct socfpga_clk_plat *plat, u32 emac_id)
>   	/* Get EMAC clock source */
>   	ctl = CM_REG_READL(plat, CLKMGR_PERPLL_EMACCTL);
>   	if (emac_id == N5X_EMAC0_CLK)
> -		ctl = (ctl >> CLKMGR_PERPLLGRP_EMACCTL_EMAC0SELB_OFFSET) &
> -		       CLKMGR_PERPLLGRP_EMACCTL_EMAC0SELB_MASK;
> +		ctl = (ctl & CLKMGR_PERPLLGRP_EMACCTL_EMAC0SELB_MASK) >>
> +		       CLKMGR_PERPLLGRP_EMACCTL_EMAC0SELB_OFFSET;
>   	else if (emac_id == N5X_EMAC1_CLK)
> -		ctl = (ctl >> CLKMGR_PERPLLGRP_EMACCTL_EMAC1SELB_OFFSET) &
> -		       CLKMGR_PERPLLGRP_EMACCTL_EMAC1SELB_MASK;
> +		ctl = (ctl & CLKMGR_PERPLLGRP_EMACCTL_EMAC1SELB_MASK) >>
> +		       CLKMGR_PERPLLGRP_EMACCTL_EMAC1SELB_OFFSET;
>   	else if (emac_id == N5X_EMAC2_CLK)
> -		ctl = (ctl >> CLKMGR_PERPLLGRP_EMACCTL_EMAC2SELB_OFFSET) &
> -		       CLKMGR_PERPLLGRP_EMACCTL_EMAC2SELB_MASK;
> +		ctl = (ctl & CLKMGR_PERPLLGRP_EMACCTL_EMAC2SELB_MASK) >>
> +		       CLKMGR_PERPLLGRP_EMACCTL_EMAC2SELB_OFFSET;
>   	else
>   		return 0;
>   


The fix is correct either way. Agilex uses FIELD_GET(); Agilex5 uses the 
same mask-then-shift this patch applies. FIELD_GET would be a minor 
consistency nit only.

ctl = FIELD_GET(CLKMGR_PERPLLGRP_EMACCTL_EMAC0SELB_MASK, ctl);

Add FIELD_GET in second commit and keep the current as first commit.


Best regards,

Tien Fong



More information about the U-Boot mailing list