[PATCH v2] drivers: clk: agilex: Correct EMAC clock source selection

Ravulapalli, Naresh Kumar nareshkumar.ravulapalli at altera.com
Tue Sep 2 10:08:16 CEST 2025


Hi Marek

On 30-Aug-25 5:28 AM, Marek Vasut wrote:
> 
> On 8/28/25 3:51 PM, Naresh Kumar Ravulapalli wrote:
>> 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.ravulapalli at 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);
> Please do the actual fix separately from FIELD_GET() conversion.

Sure, will make the change.

Kind Regards
Naresh



More information about the U-Boot mailing list