[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <cb19cd94-7f81-4f75-a7db-bf25192986ed@tuxon.dev>
Date: Tue, 23 Dec 2025 16:00:49 +0200
From: claudiu beznea <claudiu.beznea@...on.dev>
To: Ryan.Wanner@...rochip.com, mturquette@...libre.com, sboyd@...nel.org,
alexandre.belloni@...tlin.com, Nicolas.Ferre@...rochip.com
Cc: linux-clk@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, Varshini.Rajendran@...rochip.com
Subject: Re: [PATCH v4 11/31] clk: at91: clk-usb: add support for
clk_parent_data
On 12/18/25 18:23, Ryan.Wanner@...rochip.com wrote:
> On 10/20/25 12:17, Claudiu Beznea wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>
>> Hi, Ryan,
>>
>> On 9/19/25 00:15, Ryan.Wanner@...rochip.com wrote:
>>> From: Claudiu Beznea <claudiu.beznea@...on.dev>
>>>
>>> Add support for clk_parent_data in usb clock driver.
>>>
>>> All the SoC based drivers that rely on clk-usb were adapted
>>> to the new API change. The switch itself for SoCs will be done
>>> in subsequent patches.
>>>
>>> Remove the use of __clk_get_hw() for the slow clocks.
>>>
>>> Signed-off-by: Claudiu Beznea <claudiu.beznea@...on.dev>
>>> [ryan.wanner@...rochip: Add SAMA7D65 and SAM9X75 SoCs to the changes.
>>> Change how the main_xtal and slcks are initialized so they match the
>>> parent_data API]
>>> Signed-off-by: Ryan Wanner <Ryan.Wanner@...rochip.com>
>>> ---
>>> drivers/clk/at91/at91rm9200.c | 2 +-
>>> drivers/clk/at91/at91sam9260.c | 2 +-
>>> drivers/clk/at91/at91sam9g45.c | 2 +-
>>> drivers/clk/at91/at91sam9n12.c | 2 +-
>>> drivers/clk/at91/at91sam9x5.c | 2 +-
>>> drivers/clk/at91/clk-usb.c | 41 ++++++++++++++++++++++------------
>>> drivers/clk/at91/dt-compat.c | 6 ++---
>>> drivers/clk/at91/pmc.h | 11 +++++----
>>> drivers/clk/at91/sam9x60.c | 2 +-
>>> drivers/clk/at91/sam9x7.c | 21 +++++++++--------
>>> drivers/clk/at91/sama5d2.c | 2 +-
>>> drivers/clk/at91/sama5d3.c | 2 +-
>>> drivers/clk/at91/sama5d4.c | 2 +-
>>> drivers/clk/at91/sama7d65.c | 24 +++++++++++---------
>>> 14 files changed, 72 insertions(+), 49 deletions(-)
>>>
>>
>> [ ... ]
>>
>>> @@ -882,10 +885,10 @@ static void __init sam9x7_pmc_setup(struct device_node *np)
>>>
>>> sam9x7_pmc->chws[PMC_MCK] = hw;
>>>
>>> - parent_names[0] = "plla_divpmcck";
>>> - parent_names[1] = "upll_divpmcck";
>>> - parent_names[2] = "main_osc";
>>> - usbck_hw = sam9x60_clk_register_usb(regmap, "usbck", parent_names, 3);
>>> + parent_data[0] = AT91_CLK_PD_HW(sam9x7_plls[PLL_ID_PLLA][PLL_COMPID_DIV0].hw);
>>> + parent_data[1] = AT91_CLK_PD_HW(sam9x7_plls[PLL_ID_UPLL][PLL_COMPID_DIV0].hw);
>>> + parent_data[2] = AT91_CLK_PD_HW(main_osc_hw);
>>> + usbck_hw = sam9x60_clk_register_usb(regmap, "usbck", NULL, parent_data, 3);
>>
>> sam9x60_clk_register_usb() could be converted to use parent_hws member of
>> struct clk_init_data instead of parent_data.
>
> So this would mean that I would pass in an array of the plls as
> parent_hws, and use that to load the clk_init_data struct instead of
> filling the array of parent_data as it is changed to in this patch set?
>
> And this would be functionally the same since parent_data points to
> clk_hw?>
>
It should be something like:
usb = kzalloc(sizeof(*usb), GFP_KERNEL);
@@ -235,7 +235,10 @@ _at91sam9x5_clk_register_usb(struct regmap *regmap, const
char *name, const clk_hw **parent_hws)
init.name = name;
init.ops = &at91sam9x5_usb_ops;
- init.parent_names = parent_names;
+ if (parent_hws)
+ init.parent_hws = parent_hws;
+ else
+ init.parent_names = parent_names;
Thank you,
Claudiu
Powered by blists - more mailing lists