[PATCH 1/6] arm: dts: k3-j7200-r5-common: Add msmc clk to a72 node

Aniket Limaye a-limaye at ti.com
Wed Oct 23 09:58:21 CEST 2024



On 23/10/24 12:17, Neha Malcom Francis wrote:
> Hi Aniket
> 
> On 23/10/24 11:42, Aniket Limaye wrote:
>>
>> On 17/10/24 16:00, Neha Malcom Francis wrote:
>>> Hi Aniket
>>>
>>> On 17/10/24 11:59, Aniket Limaye wrote:
>>>> From: Reid Tonking <reidt at ti.com>
>>>>
>>>> Define the MSMC clk in the a72 node
>>>
>>> The usage of MSMC and A72SS interchangeably in this series is 
>>> confusing. Could you expand on it in the cover letter why in J7200 
>>> this clock is defined as part of the A72 node as opposed to devices 
>>> that have MSMC as a separate module altogether with its own clock 
>>> (like J721S2 and J784S4)?
>>
>> Yeah sure. will elaborate in v2:
>>
>> The msmc clock frequency needs to be updated as per selected OPP (in 
>> PATCH 4). But we don't have a msmc node for j721e/j7200, unlike those 
>> in j721s2/j784s4. So we are defining the msmc clock in the a72_0 node, 
>> such that it's frequency can be updated along with core clock 
>> frequency when OPP_LOW config is selected.
>>
>> I am open to suggestions if this is not the right place for it.
>> Thanks for the reviews!
> 
> Configuring the MSMC interleaver is only required in devices that have 
> more than one DDR controller i.e. J721S2 and J784S4. This is what is 
> being done by the MSMC driver present in U-Boot (see 
> drivers/ram/k3-ddrss/k3-ddrss.c). This configuration is not needed in 
> this device and is probably why we don't have an explicit MSMC node.
> 
> I was thinking the patch is okay initially considering this, but now am 
> wondering whether this is a hacky way to set a clock and should we 
> introduce the MSMC as a node cleanly, after all it is hardware that 
> needs to be described. What do you think?
> 

Yeah I am also not quite sure where the MSMC clk description should go: 
in a new separate node, or in a72_0.

However, MSMC clk id is described under A72SS0_CORE0 Device in TISCI 
documentation [0]. Which makes a case for putting this under a72_0 node 
itself (along with the fact that there isn't a separate msmc node for 
j721e/j7200 which have a single DDR controller). So I guess I vote for 
keeping it as is, under a72_0 node.

[0]: 
https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j7200/clocks.html#clocks-for-a72ss0-core0-device

Thanks,
Aniket

>>
>> Regards,
>> Aniket
>>
>>>>
>>>> Signed-off-by: Reid Tonking <reidt at ti.com>
>>>> Signed-off-by: Aniket Limaye <a-limaye at ti.com>
>>>> ---
>>>>   arch/arm/dts/k3-j7200-r5-common-proc-board.dts | 10 +++++-----
>>>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/arch/arm/dts/k3-j7200-r5-common-proc-board.dts 
>>>> b/arch/arm/dts/k3-j7200-r5-common-proc-board.dts
>>>> index f096b102793..759a1e83456 100644
>>>> --- a/arch/arm/dts/k3-j7200-r5-common-proc-board.dts
>>>> +++ b/arch/arm/dts/k3-j7200-r5-common-proc-board.dts
>>>> @@ -23,11 +23,11 @@
>>>>                   <&k3_pds 202 TI_SCI_PD_EXCLUSIVE>,
>>>>                   <&k3_pds 4 TI_SCI_PD_EXCLUSIVE>;
>>>>           resets = <&k3_reset 202 0>;
>>>> -        clocks = <&k3_clks 61 1>, <&k3_clks 202 2>;
>>>> -        clock-names = "gtc", "core";
>>>> -        assigned-clocks = <&k3_clks 202 2>, <&k3_clks 61 1>, 
>>>> <&k3_clks 323 0>;
>>>> -        assigned-clock-parents= <0>, <0>, <&k3_clks 323 2>;
>>>> -        assigned-clock-rates = <2000000000>, <200000000>;
>>>> +        clocks = <&k3_clks 61 1>, <&k3_clks 4 1>, <&k3_clks 202 2> ;
>>>> +        clock-names = "gtc", "msmc", "core";
>>>> +        assigned-clocks = <&k3_clks 202 2>, <&k3_clks 61 1>, 
>>>> <&k3_clks 4 1>, <&k3_clks 323 0>;
>>>> +        assigned-clock-parents= <0>, <0>, <0>, <&k3_clks 323 2>;
>>>> +        assigned-clock-rates = <2000000000>, <200000000>, 
>>>> <1000000000>;
>>>>           ti,sci = <&dmsc>;
>>>>           ti,sci-proc-id = <32>;
>>>>           ti,sci-host-id = <10>;
>>>
> 


More information about the U-Boot mailing list