Re: [PATCH 1/7] dt-bindings: soc: add bindings for i.MX93 SRC

From: Krzysztof Kozlowski
Date: Sun May 29 2022 - 03:58:24 EST


On 27/05/2022 03:47, Peng Fan wrote:
>
>
>> -----Original Message-----
>> From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
>> Sent: 2022年5月26日 20:08
>> To: Peng Fan <peng.fan@xxxxxxx>; Peng Fan (OSS) <peng.fan@xxxxxxxxxxx>;
>> robh+dt@xxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx; sboyd@xxxxxxxxxx;
>> mturquette@xxxxxxxxxxxx; shawnguo@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx
>> Cc: Aisheng Dong <aisheng.dong@xxxxxxx>; l.stach@xxxxxxxxxxxxxx;
>> kernel@xxxxxxxxxxxxxx; festevam@xxxxxxxxx; dl-linux-imx
>> <linux-imx@xxxxxxx>; devicetree@xxxxxxxxxxxxxxx;
>> linux-kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
>> Subject: Re: [PATCH 1/7] dt-bindings: soc: add bindings for i.MX93 SRC
>>
>> On 24/05/2022 14:07, Peng Fan wrote:
>>>> Subject: Re: [PATCH 1/7] dt-bindings: soc: add bindings for i.MX93
>>>> SRC
>>>>
>>>> On 24/05/2022 12:37, Peng Fan wrote:
>>>>>> Subject: Re: [PATCH 1/7] dt-bindings: soc: add bindings for i.MX93
>>>>>> SRC
>>>>>>
>>>>>> On 23/05/2022 13:30, Peng Fan (OSS) wrote:
>>>>>>> From: Peng Fan <peng.fan@xxxxxxx>
>>>>>>>
>>>>>>> Add bindings for i.MX93 System Reset Controller(SRC). SRC supports
>>>>>>> resets and power gating for mixes.
>>>>>>>
>>>>>>> Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
>>>>>>> ---
>>>>>>> .../bindings/soc/imx/fsl,imx93-src.yaml | 88
>>>>>> +++++++++++++++++++
>>>>>>> include/dt-bindings/power/imx93-power.h | 11 +++
>>>>>>> 2 files changed, 99 insertions(+) create mode 100644
>>>>>>> Documentation/devicetree/bindings/soc/imx/fsl,imx93-src.yaml
>>>>>>
>>>>>> File should be in respective subsystem, so probably power/reset?
>>>>>
>>>>> ok, will put under power.
>>>>>
>>>>>>
>>>>>>> create mode 100644 include/dt-bindings/power/imx93-power.h
>>>>>>>
>>>>>>> diff --git
>>>>>>> a/Documentation/devicetree/bindings/soc/imx/fsl,imx93-src.yaml
>>>>>>> b/Documentation/devicetree/bindings/soc/imx/fsl,imx93-src.yaml
>>>>>>> new file mode 100644
>>>>>>> index 000000000000..d45c1458b9c1
>>>>>>> --- /dev/null
>>>>>>> +++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx93-src.yaml
>>>>>>> @@ -0,0 +1,88 @@
>>>>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML
>>>>>>> +1.2
>>>>>>> +---
>>>>>>> +$id:
>>>>>>> +> > +title: NXP i.MX9 System Reset Controller
>>>>>>> +
>>>>>>> +maintainers:
>>>>>>> + - Peng Fan <peng.fan@xxxxxxx>
>>>>>>> +
>>>>>>> +description: |
>>>>>>> + The System Reset Controller (SRC) is responsible for the
>>>>>>> +generation of
>>>>>>> + all the system reset signals and boot argument latching.
>>>>>>> +
>>>>>>> + Its main functions are as follows,
>>>>>>> + - Deals with all global system reset sources from other modules,
>>>>>>> + and generates global system reset.
>>>>>>> + - Responsible for power gating of MIXs (Slices) and their memory
>>>>>>> + low power control.
>>>>>>> +
>>>>>>> +properties:
>>>>>>> + compatible:
>>>>>>> + items:
>>>>>>> + - const: fsl,imx93-src
>>>>>>> + - const: syscon
>>>>>>> +
>>>>>>> + reg:
>>>>>>> + maxItems: 1
>>>>>>> +
>>>>>>> + slice:
>>>>>>
>>>>>> Why do you need this subnode, instead of listing domains here?
>>>>>
>>>>> I follow
>>>>> Documentation/devicetree/bindings/power/fsl,imx-gpcv2.yaml
>>>>>
>>>>> There are several slices in SRC, just like there are many pgcs in gpcv2.
>>>>
>>>> Wait, but you have only one slice and you do no allow more of them.
>>>
>>> Slice is just a group node that could include many child nodes, such
>>> as slice {
>>> mediamix {
>>> };
>>> mlmix {
>>> };
>>> }
>>>
>>> The same
>>>> as for gpcv2 - there is only one pgc. What's the point of that node?
>>>
>>> There are many pgcs, pgc is just a group node there, See
>>> arch/arm64/boot/dts/freescale/imx8mp.dtsi.
>>
>> So this does not explain my question at all. Why do you need "slice" (or
>> pgc) node? You have only one slice in this device, so this is some indirect layer
>> without meaning...
>
> There is not only one slice, there are many slices. I use a slice node to group
> all the slices, as below:
> src: system-controller@xxx {
> xxxxx
> slice {
> media: slice@0 {
> }
> ml: slice@1 {
> }
> ddr: slice@2 {
> }
> }
> xxxxx
> }
>
> With a slice node there, it will be also be easy for specific driver to know
> specific node.

I understand that, you repeat and repeat the same description of what
you are doing, but that still does not explain my first question - why
do you need superficial slice property containing all the slices?


Best regards,
Krzysztof