> -----Original Message-----
> From: Ravulapalli, Naresh Kumar <naresh.kumar.ravulapa...@altera.com>
> Sent: Thursday, August 28, 2025 9:52 PM
> To: u-boot@lists.denx.de
> Cc: Marek Vasut <marek.va...@mailbox.org>; Simon Goldschmidt
> <simon.k.r.goldschm...@gmail.com>; Chee, Tien Fong
> <tien.fong.c...@altera.com>; Tom Rini <tr...@konsulko.com>; Ravulapalli,
> Naresh Kumar <naresh.kumar.ravulapa...@altera.com>
> Subject: [PATCH v2] drivers: clk: agilex: Correct EMAC clock source selection
> 
> Fix the incorrect bit masking and bit shift used to compute EMAC control
> which in turn is used to select EMAC clock from EMAC source A or B.
> 
> Signed-off-by: Naresh Kumar Ravulapalli
> <nareshkumar.ravulapa...@altera.com>
> ---
>  drivers/clk/altera/clk-agilex.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/clk/altera/clk-agilex.c b/drivers/clk/altera/clk-agilex.c
> index e1ddd02f356..2ad8cfd8856 100644
> --- a/drivers/clk/altera/clk-agilex.c
> +++ b/drivers/clk/altera/clk-agilex.c
> @@ -1,6 +1,7 @@
> -// SPDX-License-Identifier: GPL-2.0
> +// SPDX-License-Identifier: GPL-2.0+
>  /*
>   * Copyright (C) 2019 Intel Corporation <www.intel.com>
> + * Copyright (C) 2025 Altera Corporation <www.altera.com>
>   */
> 
>  #include <log.h>
> @@ -11,6 +12,7 @@
>  #include <dm/lists.h>
>  #include <dm/util.h>
>  #include <dt-bindings/clock/agilex-clock.h>
> +#include <linux/bitfield.h>
>  #include <linux/bitops.h>
> 
>  #include <asm/arch/clock_manager.h>
> @@ -515,14 +517,11 @@ 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 == AGILEX_EMAC0_CLK)
> -             ctl = (ctl >>
> CLKMGR_PERPLLGRP_EMACCTL_EMAC0SELB_OFFSET) &
> -                    CLKMGR_PERPLLGRP_EMACCTL_EMAC0SELB_MASK;
> +             ctl =
> FIELD_GET(CLKMGR_PERPLLGRP_EMACCTL_EMAC0SELB_MASK, ctl);
>       else if (emac_id == AGILEX_EMAC1_CLK)
> -             ctl = (ctl >>
> CLKMGR_PERPLLGRP_EMACCTL_EMAC1SELB_OFFSET) &
> -                    CLKMGR_PERPLLGRP_EMACCTL_EMAC1SELB_MASK;
> +             ctl =
> FIELD_GET(CLKMGR_PERPLLGRP_EMACCTL_EMAC1SELB_MASK, ctl);
>       else if (emac_id == AGILEX_EMAC2_CLK)
> -             ctl = (ctl >>
> CLKMGR_PERPLLGRP_EMACCTL_EMAC2SELB_OFFSET) &
> -                    CLKMGR_PERPLLGRP_EMACCTL_EMAC2SELB_MASK;
> +             ctl =
> FIELD_GET(CLKMGR_PERPLLGRP_EMACCTL_EMAC2SELB_MASK, ctl);
>       else
>               return 0;
> 
> --
> 2.35.3

Reviewed-by: Tien Fong Chee <tien.fong.c...@altera.com>

Best regards,
Tien Fong

Reply via email to