diff mbox series

[01/10] dt: bindings: clock: add mtmips SoCs clock device tree binding documentation

Message ID 20230320161823.1424278-2-sergio.paracuellos@gmail.com (mailing list archive)
State Superseded
Headers show
Series mips: ralink: add complete clock and reset driver for mtmips SoCs | expand

Commit Message

Sergio Paracuellos March 20, 2023, 4:18 p.m. UTC
Adds device tree binding documentation for clocks and resets in the
Mediatek MIPS and Ralink SOCs. This covers RT2880, RT3050, RT3052, RT3350,
RT3883, RT5350, MT7620, MT7628 and MT7688 SoCs.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
---
 .../bindings/clock/mtmips-clock.yaml          | 68 +++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/mtmips-clock.yaml

Comments

Krzysztof Kozlowski March 20, 2023, 4:36 p.m. UTC | #1
On 20/03/2023 17:18, Sergio Paracuellos wrote:
> Adds device tree binding documentation for clocks and resets in the
> Mediatek MIPS and Ralink SOCs. This covers RT2880, RT3050, RT3052, RT3350,
> RT3883, RT5350, MT7620, MT7628 and MT7688 SoCs.

Use subject prefixes matching the subsystem (which you can get for
example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
your patch is touching).

Subject: drop second/last, redundant "device tree binding
documentation". The "dt-bindings" prefix is already stating that these
are bindings.
(BTW, that's the longest redundant component I ever saw)

> 
> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> ---
>  .../bindings/clock/mtmips-clock.yaml          | 68 +++++++++++++++++++
>  1 file changed, 68 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/mtmips-clock.yaml
> 
> diff --git a/Documentation/devicetree/bindings/clock/mtmips-clock.yaml b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
> new file mode 100644
> index 000000000000..c92969ce231d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml

Filename matching compatible, so vendor prefix and device name (or
family of names).

> @@ -0,0 +1,68 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/mtmips-clock.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MTMIPS SoCs Clock

One clock? Are you sure these describe exactly one clock?

> +
> +maintainers:
> +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> +
> +description: |
> +  MediaTek MIPS and Ralink SoCs have an XTAL from where the cpu clock is
> +  provided as well as derived clocks for the bus and the peripherals.
> +
> +  Each clock is assigned an identifier and client nodes use this identifier
> +  to specify the clock which they consume.

Drop useless or obvious pieces of description. Describe the hardware.

> +
> +  The clocks are provided inside a system controller node.

???

> +
> +  This node is also a reset provider for all the peripherals.

??? Does it mean it is not only "Clock" but also reset controller?

> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - ralink,rt2880-sysc
> +          - ralink,rt3050-sysc
> +          - ralink,rt3052-sysc
> +          - ralink,rt3352-sysc
> +          - ralink,rt3883-sysc
> +          - ralink,rt5350-sysc
> +          - ralink,mt7620-sysc
> +          - ralink,mt7620a-sysc
> +          - ralink,mt7628-sysc
> +          - ralink,mt7688-sysc
> +          - ralink,rt2880-reset

That's odd. rt2880 is sysc and reset? One device with two compatibles?

Also, order these by name.


> +      - const: syscon
> +
> +  reg:
> +    maxItems: 1
> +
> +  '#clock-cells':
> +    description:
> +      The first cell indicates the clock number.
> +    const: 1
> +
> +  '#reset-cells':
> +    description:
> +      The first cell indicates the reset bit within the register.
> +    const: 1

Wait, only rt2880-reset is reset controller? This is confusing.

> +
> +required:
> +  - compatible
> +  - reg
> +  - '#clock-cells'
> +  - '#reset-cells'
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    sysc: sysc@0 {

Drop label.

Node names should be generic, clock-controller or reset-controller or
system-controller sometimes.
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation

> +      compatible = "ralink,rt5350-sysc", "syscon";
> +      reg = <0x0 0x100>;
> +      #clock-cells = <1>;
> +      #reset-cells = <1>;
> +    };

Best regards,
Krzysztof
Arınç ÜNAL March 20, 2023, 4:43 p.m. UTC | #2
On 20.03.2023 19:36, Krzysztof Kozlowski wrote:
> On 20/03/2023 17:18, Sergio Paracuellos wrote:
>> Adds device tree binding documentation for clocks and resets in the
>> Mediatek MIPS and Ralink SOCs. This covers RT2880, RT3050, RT3052, RT3350,
>> RT3883, RT5350, MT7620, MT7628 and MT7688 SoCs.
> 
> Use subject prefixes matching the subsystem (which you can get for
> example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
> your patch is touching).
> 
> Subject: drop second/last, redundant "device tree binding
> documentation". The "dt-bindings" prefix is already stating that these
> are bindings.
> (BTW, that's the longest redundant component I ever saw)
> 
>>
>> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
>> ---
>>   .../bindings/clock/mtmips-clock.yaml          | 68 +++++++++++++++++++
>>   1 file changed, 68 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/clock/mtmips-clock.yaml b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>> new file mode 100644
>> index 000000000000..c92969ce231d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
> 
> Filename matching compatible, so vendor prefix and device name (or
> family of names).

I influenced Sergio to use MTMIPS here as I want to designate it the 
family name for the MediaTek MIPS and Ralink SoCs. We can't change the 
compatible string as it's established from my pinctrl patch series we 
don't do that.

Arınç
Krzysztof Kozlowski March 20, 2023, 4:50 p.m. UTC | #3
On 20/03/2023 17:43, Arınç ÜNAL wrote:
> On 20.03.2023 19:36, Krzysztof Kozlowski wrote:
>> On 20/03/2023 17:18, Sergio Paracuellos wrote:
>>> Adds device tree binding documentation for clocks and resets in the
>>> Mediatek MIPS and Ralink SOCs. This covers RT2880, RT3050, RT3052, RT3350,
>>> RT3883, RT5350, MT7620, MT7628 and MT7688 SoCs.
>>
>> Use subject prefixes matching the subsystem (which you can get for
>> example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
>> your patch is touching).
>>
>> Subject: drop second/last, redundant "device tree binding
>> documentation". The "dt-bindings" prefix is already stating that these
>> are bindings.
>> (BTW, that's the longest redundant component I ever saw)
>>
>>>
>>> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
>>> ---
>>>   .../bindings/clock/mtmips-clock.yaml          | 68 +++++++++++++++++++
>>>   1 file changed, 68 insertions(+)
>>>   create mode 100644 Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/clock/mtmips-clock.yaml b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>> new file mode 100644
>>> index 000000000000..c92969ce231d
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>
>> Filename matching compatible, so vendor prefix and device name (or
>> family of names).
> 
> I influenced Sergio to use MTMIPS here as I want to designate it the 
> family name for the MediaTek MIPS and Ralink SoCs.

I don't know how to respond to this. Is it argument for not using naming
style?

> We can't change the 
> compatible string as it's established from my pinctrl patch series we 
> don't do that.

The patch did not say it is documenting existing compatibles in the
kernel DTS. And if we are at this, ralink,rt2880-reset does not look
like single clock nor like clock controller.

Best regards,
Krzysztof
Sergio Paracuellos March 20, 2023, 5:24 p.m. UTC | #4
Hi Krzysztof,

On Mon, Mar 20, 2023 at 5:36 PM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 20/03/2023 17:18, Sergio Paracuellos wrote:
> > Adds device tree binding documentation for clocks and resets in the
> > Mediatek MIPS and Ralink SOCs. This covers RT2880, RT3050, RT3052, RT3350,
> > RT3883, RT5350, MT7620, MT7628 and MT7688 SoCs.
>
> Use subject prefixes matching the subsystem (which you can get for
> example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
> your patch is touching).
>
> Subject: drop second/last, redundant "device tree binding
> documentation". The "dt-bindings" prefix is already stating that these
> are bindings.

Sure, will do. Sorry for the inconvenience.

> (BTW, that's the longest redundant component I ever saw)

I thought it was better to just list compatible strings inside one
single file than adding the same binding in multiple files.

>
> >
> > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > ---
> >  .../bindings/clock/mtmips-clock.yaml          | 68 +++++++++++++++++++
> >  1 file changed, 68 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/clock/mtmips-clock.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/clock/mtmips-clock.yaml b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
> > new file mode 100644
> > index 000000000000..c92969ce231d
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>
> Filename matching compatible, so vendor prefix and device name (or
> family of names).

I used mtmips here but list compatibles starting with ralink. As I
have said in the cover letter I am inspired by the last merged pinctrl
series for these SoCs.
See:
- https://lore.kernel.org/linux-gpio/e9e6ad87-2db5-9767-ff39-64a302b06185@arinc9.com/T/#t

Not all of compatible currently exist. All of these are at the end the
way we can properly match compatible-data to write a proper driver.
The current ralink dtsi files which are in tree now
are totally incomplete and not documented so we are planning to align
all of this with openWRT used files and others soon. That's the reason
we are not touching
'arch/mips/boot/dts' at all now. I don't think anybody is using any of
this but mt7621 which is properly completed and documented.

>
> > @@ -0,0 +1,68 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/clock/mtmips-clock.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: MTMIPS SoCs Clock
>
> One clock? Are you sure these describe exactly one clock?

I will change this to 'Clocks'.

>
> > +
> > +maintainers:
> > +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > +
> > +description: |
> > +  MediaTek MIPS and Ralink SoCs have an XTAL from where the cpu clock is
> > +  provided as well as derived clocks for the bus and the peripherals.
> > +
> > +  Each clock is assigned an identifier and client nodes use this identifier
> > +  to specify the clock which they consume.
>
> Drop useless or obvious pieces of description. Describe the hardware.
>
> > +
> > +  The clocks are provided inside a system controller node.

>
> ???

I meant, this node is a syscon from where both clock and reset related
registers are used. I think writing in this way was enough since it
has a pretty similar description like the one in
'mediatek,mt7621-sysc.yaml'.

>
> > +
> > +  This node is also a reset provider for all the peripherals.
>
> ??? Does it mean it is not only "Clock" but also reset controller?

Yes, this node is a clock and reset controller for all the SoC.

>
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +          - ralink,rt2880-sysc
> > +          - ralink,rt3050-sysc
> > +          - ralink,rt3052-sysc
> > +          - ralink,rt3352-sysc
> > +          - ralink,rt3883-sysc
> > +          - ralink,rt5350-sysc
> > +          - ralink,mt7620-sysc
> > +          - ralink,mt7620a-sysc
> > +          - ralink,mt7628-sysc'
> > +          - ralink,mt7688-sysc
> > +          - ralink,rt2880-reset
>
> That's odd. rt2880 is sysc and reset? One device with two compatibles?

This 'ralink,rt2880-reset' is for compatibility reasons. Reset related
code was inside 'arch/mips/ralink' folder reset.c file but it is moved
to this new driver, so we have maintained this reset stuff for the
reset compatibility. All of the rest are the new possible stuff for
both reset and clocks. Clock driver is instantiated in two phases. The
earlier one set up the clocks via CLK_OF_DECLARE macro. Resets are set
up as a platform driver. Is only inside this where
'ralink,rt2880-reset' is used. See patch 2 of the series for details.

>
> Also, order these by name.

All are ordered but I maintained the  'ralink,rt2880-reset' at the end.

>
>
> > +      - const: syscon
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  '#clock-cells':
> > +    description:
> > +      The first cell indicates the clock number.
> > +    const: 1
> > +
> > +  '#reset-cells':
> > +    description:
> > +      The first cell indicates the reset bit within the register.
> > +    const: 1
>
> Wait, only rt2880-reset is reset controller? This is confusing.

No, that is the reset compatibility one. All the rest are both clock
and reset controllers from now on.

>
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - '#clock-cells'
> > +  - '#reset-cells'
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    sysc: sysc@0 {
>
> Drop label.

Sure, thanks.

>
> Node names should be generic, clock-controller or reset-controller or
> system-controller sometimes.
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
>
> > +      compatible = "ralink,rt5350-sysc", "syscon";
> > +      reg = <0x0 0x100>;
> > +      #clock-cells = <1>;
> > +      #reset-cells = <1>;
> > +    };

Ok, so I will set this as 'syscon@' if you are ok with it.

>
> Best regards,
> Krzysztof
>

Thanks to you for the review.

Best regards,
    Sergio Paracuellos
Krzysztof Kozlowski March 20, 2023, 5:36 p.m. UTC | #5
On 20/03/2023 18:24, Sergio Paracuellos wrote:
> Hi Krzysztof,
> 
> On Mon, Mar 20, 2023 at 5:36 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 20/03/2023 17:18, Sergio Paracuellos wrote:
>>> Adds device tree binding documentation for clocks and resets in the
>>> Mediatek MIPS and Ralink SOCs. This covers RT2880, RT3050, RT3052, RT3350,
>>> RT3883, RT5350, MT7620, MT7628 and MT7688 SoCs.
>>
>> Use subject prefixes matching the subsystem (which you can get for
>> example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
>> your patch is touching).
>>
>> Subject: drop second/last, redundant "device tree binding
>> documentation". The "dt-bindings" prefix is already stating that these
>> are bindings.
> 
> Sure, will do. Sorry for the inconvenience.
> 
>> (BTW, that's the longest redundant component I ever saw)
> 
> I thought it was better to just list compatible strings inside one
> single file than adding the same binding in multiple files.

I don't understand how this is answers about redundant piece of subject.
Amount of files are not related to repeating pieces of subject prefix.

> 
>>
>>>
>>> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
>>> ---
>>>  .../bindings/clock/mtmips-clock.yaml          | 68 +++++++++++++++++++
>>>  1 file changed, 68 insertions(+)
>>>  create mode 100644 Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/clock/mtmips-clock.yaml b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>> new file mode 100644
>>> index 000000000000..c92969ce231d
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>
>> Filename matching compatible, so vendor prefix and device name (or
>> family of names).
> 
> I used mtmips here but list compatibles starting with ralink. As I
> have said in the cover letter I am inspired by the last merged pinctrl
> series for these SoCs.
> See:
> - https://lore.kernel.org/linux-gpio/e9e6ad87-2db5-9767-ff39-64a302b06185@arinc9.com/T/#t

21 patches, so what exactly I should see (except that I was involved in
that discussions)?

Plus nothing from this thread warrants here exception from naming style.


> 
> Not all of compatible currently exist. 

Then clearly state this.

> All of these are at the end the
> way we can properly match compatible-data to write a proper driver.
> The current ralink dtsi files which are in tree now
> are totally incomplete and not documented so we are planning to align

Nothing like this was said in commit msg, so how can we know?

> all of this with openWRT used files and others soon. That's the reason
> we are not touching
> 'arch/mips/boot/dts' at all now. I don't think anybody is using any of
> this but mt7621 which is properly completed and documented.

Anyway, none of this explains exception from naming convention - vendor,
device or family name.

> 
>>
>>> @@ -0,0 +1,68 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/clock/mtmips-clock.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: MTMIPS SoCs Clock
>>
>> One clock? Are you sure these describe exactly one clock?
> 
> I will change this to 'Clocks'.

Then clock provider, but are you sure? You included there syscon and
reset controller.

> 
>>
>>> +
>>> +maintainers:
>>> +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
>>> +
>>> +description: |
>>> +  MediaTek MIPS and Ralink SoCs have an XTAL from where the cpu clock is
>>> +  provided as well as derived clocks for the bus and the peripherals.
>>> +
>>> +  Each clock is assigned an identifier and client nodes use this identifier
>>> +  to specify the clock which they consume.
>>
>> Drop useless or obvious pieces of description. Describe the hardware.
>>
>>> +
>>> +  The clocks are provided inside a system controller node.
> 
>>
>> ???
> 
> I meant, this node is a syscon from where both clock and reset related
> registers are used. I think writing in this way was enough since it
> has a pretty similar description like the one in
> 'mediatek,mt7621-sysc.yaml'.

But what is a system controller node? Some separate device? This is
description for this device - called "Clock" or "Clocks" - and "system
controller" appears for the first time.

> 
>>
>>> +
>>> +  This node is also a reset provider for all the peripherals.
>>
>> ??? Does it mean it is not only "Clock" but also reset controller?
> 
> Yes, this node is a clock and reset controller for all the SoC.
> 
>>
>>> +
>>> +properties:
>>> +  compatible:
>>> +    items:
>>> +      - enum:
>>> +          - ralink,rt2880-sysc
>>> +          - ralink,rt3050-sysc
>>> +          - ralink,rt3052-sysc
>>> +          - ralink,rt3352-sysc
>>> +          - ralink,rt3883-sysc
>>> +          - ralink,rt5350-sysc
>>> +          - ralink,mt7620-sysc
>>> +          - ralink,mt7620a-sysc
>>> +          - ralink,mt7628-sysc'
>>> +          - ralink,mt7688-sysc
>>> +          - ralink,rt2880-reset
>>
>> That's odd. rt2880 is sysc and reset? One device with two compatibles?
> 
> This 'ralink,rt2880-reset' is for compatibility reasons. 

I don't understand why. It is used in DTS, so what this node represents
there?

> Reset related
> code was inside 'arch/mips/ralink' folder reset.c file but it is moved
> to this new driver, so we have maintained this reset stuff for the
> reset compatibility. All of the rest are the new possible stuff for
> both reset and clocks. 

We talk here about hardware, not drivers, so moving driver code around
does not help me understand the rationale behind bindings.

> Clock driver is instantiated in two phases. The
> earlier one set up the clocks via CLK_OF_DECLARE macro. Resets are set
> up as a platform driver. Is only inside this where
> 'ralink,rt2880-reset' is used. See patch 2 of the series for details.

Sure, but it is not related to bindings.

> 
>>
>> Also, order these by name.
> 
> All are ordered but I maintained the  'ralink,rt2880-reset' at the end.

No, it is not. m is before r in alphabet.

Best regards,
Krzysztof
Arınç ÜNAL March 20, 2023, 5:57 p.m. UTC | #6
On 20.03.2023 20:36, Krzysztof Kozlowski wrote:
> On 20/03/2023 18:24, Sergio Paracuellos wrote:
>> Hi Krzysztof,
>>
>> On Mon, Mar 20, 2023 at 5:36 PM Krzysztof Kozlowski
>> <krzysztof.kozlowski@linaro.org> wrote:
>>>
>>> On 20/03/2023 17:18, Sergio Paracuellos wrote:
>>>> Adds device tree binding documentation for clocks and resets in the
>>>> Mediatek MIPS and Ralink SOCs. This covers RT2880, RT3050, RT3052, RT3350,
>>>> RT3883, RT5350, MT7620, MT7628 and MT7688 SoCs.
>>>
>>> Use subject prefixes matching the subsystem (which you can get for
>>> example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
>>> your patch is touching).
>>>
>>> Subject: drop second/last, redundant "device tree binding
>>> documentation". The "dt-bindings" prefix is already stating that these
>>> are bindings.
>>
>> Sure, will do. Sorry for the inconvenience.
>>
>>> (BTW, that's the longest redundant component I ever saw)
>>
>> I thought it was better to just list compatible strings inside one
>> single file than adding the same binding in multiple files.
> 
> I don't understand how this is answers about redundant piece of subject.
> Amount of files are not related to repeating pieces of subject prefix.
> 
>>
>>>
>>>>
>>>> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
>>>> ---
>>>>   .../bindings/clock/mtmips-clock.yaml          | 68 +++++++++++++++++++
>>>>   1 file changed, 68 insertions(+)
>>>>   create mode 100644 Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/clock/mtmips-clock.yaml b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>>> new file mode 100644
>>>> index 000000000000..c92969ce231d
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
>>>
>>> Filename matching compatible, so vendor prefix and device name (or
>>> family of names).
>>
>> I used mtmips here but list compatibles starting with ralink. As I
>> have said in the cover letter I am inspired by the last merged pinctrl
>> series for these SoCs.
>> See:
>> - https://lore.kernel.org/linux-gpio/e9e6ad87-2db5-9767-ff39-64a302b06185@arinc9.com/T/#t
> 
> 21 patches, so what exactly I should see (except that I was involved in
> that discussions)?
> 
> Plus nothing from this thread warrants here exception from naming style.
> 
> 
>>
>> Not all of compatible currently exist.
> 
> Then clearly state this.
> 
>> All of these are at the end the
>> way we can properly match compatible-data to write a proper driver.
>> The current ralink dtsi files which are in tree now
>> are totally incomplete and not documented so we are planning to align
> 
> Nothing like this was said in commit msg, so how can we know?
> 
>> all of this with openWRT used files and others soon. That's the reason
>> we are not touching
>> 'arch/mips/boot/dts' at all now. I don't think anybody is using any of
>> this but mt7621 which is properly completed and documented.
> 
> Anyway, none of this explains exception from naming convention - vendor,
> device or family name.

Would mediatek,mtmips-clock.yaml make sense?

Arınç
Krzysztof Kozlowski March 20, 2023, 6:01 p.m. UTC | #7
On 20/03/2023 17:18, Sergio Paracuellos wrote:
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - ralink,rt2880-sysc
> +          - ralink,rt3050-sysc
> +          - ralink,rt3052-sysc
> +          - ralink,rt3352-sysc
> +          - ralink,rt3883-sysc
> +          - ralink,rt5350-sysc
> +          - ralink,mt7620-sysc
> +          - ralink,mt7620a-sysc
> +          - ralink,mt7628-sysc
> +          - ralink,mt7688-sysc

One more comment - this and maybe other compatibles - have wrong vendor
prefix. This is mediatek, not ralink.


Best regards,
Krzysztof
Krzysztof Kozlowski March 20, 2023, 6:02 p.m. UTC | #8
On 20/03/2023 18:57, Arınç ÜNAL wrote:
>>> All of these are at the end the
>>> way we can properly match compatible-data to write a proper driver.
>>> The current ralink dtsi files which are in tree now
>>> are totally incomplete and not documented so we are planning to align
>>
>> Nothing like this was said in commit msg, so how can we know?
>>
>>> all of this with openWRT used files and others soon. That's the reason
>>> we are not touching
>>> 'arch/mips/boot/dts' at all now. I don't think anybody is using any of
>>> this but mt7621 which is properly completed and documented.
>>
>> Anyway, none of this explains exception from naming convention - vendor,
>> device or family name.
> 
> Would mediatek,mtmips-clock.yaml make sense?

More, except:
1. This is not clock, but sysc.
2. mips sounds redundant. Do you have rt2xxx and mt7xxx chips which are ARM?

Best regards,
Krzysztof
Arınç ÜNAL March 20, 2023, 6:07 p.m. UTC | #9
On 20.03.2023 21:01, Krzysztof Kozlowski wrote:
> On 20/03/2023 17:18, Sergio Paracuellos wrote:
>> +properties:
>> +  compatible:
>> +    items:
>> +      - enum:
>> +          - ralink,rt2880-sysc
>> +          - ralink,rt3050-sysc
>> +          - ralink,rt3052-sysc
>> +          - ralink,rt3352-sysc
>> +          - ralink,rt3883-sysc
>> +          - ralink,rt5350-sysc
>> +          - ralink,mt7620-sysc
>> +          - ralink,mt7620a-sysc
>> +          - ralink,mt7628-sysc
>> +          - ralink,mt7688-sysc
> 
> One more comment - this and maybe other compatibles - have wrong vendor
> prefix. This is mediatek, not ralink.

This platform was acquired from Ralink by MediaTek. I couldn't change 
some existing ralink compatible strings to mediatek as Rob explained on 
my pinctrl patch series that we don't do that. The compatible strings on 
this patch series here are new but I'd rather keep the compatible 
strings ralink to keep things consistent.

Arınç
Arınç ÜNAL March 20, 2023, 6:09 p.m. UTC | #10
On 20.03.2023 21:02, Krzysztof Kozlowski wrote:
> On 20/03/2023 18:57, Arınç ÜNAL wrote:
>>>> All of these are at the end the
>>>> way we can properly match compatible-data to write a proper driver.
>>>> The current ralink dtsi files which are in tree now
>>>> are totally incomplete and not documented so we are planning to align
>>>
>>> Nothing like this was said in commit msg, so how can we know?
>>>
>>>> all of this with openWRT used files and others soon. That's the reason
>>>> we are not touching
>>>> 'arch/mips/boot/dts' at all now. I don't think anybody is using any of
>>>> this but mt7621 which is properly completed and documented.
>>>
>>> Anyway, none of this explains exception from naming convention - vendor,
>>> device or family name.
>>
>> Would mediatek,mtmips-clock.yaml make sense?
> 
> More, except:
> 1. This is not clock, but sysc.

Sergio, beware.

> 2. mips sounds redundant. Do you have rt2xxx and mt7xxx chips which are ARM?

All of the SoCs, RTXXXX, MT7620, MT7621, MT7628, MT7688 are MIPS. So I 
decided to call this platform MTMIPS as I've seen MediaTek use this on 
other projects like U-Boot. This is what I did on my pinctrl patch 
series as well.

Arınç
Krzysztof Kozlowski March 20, 2023, 6:11 p.m. UTC | #11
On 20/03/2023 19:07, Arınç ÜNAL wrote:
> On 20.03.2023 21:01, Krzysztof Kozlowski wrote:
>> On 20/03/2023 17:18, Sergio Paracuellos wrote:
>>> +properties:
>>> +  compatible:
>>> +    items:
>>> +      - enum:
>>> +          - ralink,rt2880-sysc
>>> +          - ralink,rt3050-sysc
>>> +          - ralink,rt3052-sysc
>>> +          - ralink,rt3352-sysc
>>> +          - ralink,rt3883-sysc
>>> +          - ralink,rt5350-sysc
>>> +          - ralink,mt7620-sysc
>>> +          - ralink,mt7620a-sysc
>>> +          - ralink,mt7628-sysc
>>> +          - ralink,mt7688-sysc
>>
>> One more comment - this and maybe other compatibles - have wrong vendor
>> prefix. This is mediatek, not ralink.
> 
> This platform was acquired from Ralink by MediaTek. I couldn't change 
> some existing ralink compatible strings to mediatek as Rob explained on 
> my pinctrl patch series that we don't do that. The compatible strings on 
> this patch series here are new but I'd rather keep the compatible 
> strings ralink to keep things consistent.

The comment that you cannot change existing compatibles does not apply
to these, because these are new. However indeed some SoCs have already
compatibles with ralink, so it's fine for these. mt7620 and mt7628 are
already used with mediatek, so these should be rather corrected to new
prefix.

Best regards,
Krzysztof
Krzysztof Kozlowski March 20, 2023, 6:15 p.m. UTC | #12
On 20/03/2023 19:09, Arınç ÜNAL wrote:
>>> Would mediatek,mtmips-clock.yaml make sense?
>>
>> More, except:
>> 1. This is not clock, but sysc.
> 
> Sergio, beware.

I meant, that's what I understood from what Sergio said. :)

> 
>> 2. mips sounds redundant. Do you have rt2xxx and mt7xxx chips which are ARM?
> 
> All of the SoCs, RTXXXX, MT7620, MT7621, MT7628, MT7688 are MIPS. So I 
> decided to call this platform MTMIPS as I've seen MediaTek use this on 
> other projects like U-Boot. This is what I did on my pinctrl patch 
> series as well.

Ah, but indeed there are newer Mediatek MT6xxx and MT8xxx SoCs which are
ARM, so mediatek,mtmips-sysc would work.

Best regards,
Krzysztof
Arınç ÜNAL March 20, 2023, 6:23 p.m. UTC | #13
On 20.03.2023 21:11, Krzysztof Kozlowski wrote:
> On 20/03/2023 19:07, Arınç ÜNAL wrote:
>> On 20.03.2023 21:01, Krzysztof Kozlowski wrote:
>>> On 20/03/2023 17:18, Sergio Paracuellos wrote:
>>>> +properties:
>>>> +  compatible:
>>>> +    items:
>>>> +      - enum:
>>>> +          - ralink,rt2880-sysc
>>>> +          - ralink,rt3050-sysc
>>>> +          - ralink,rt3052-sysc
>>>> +          - ralink,rt3352-sysc
>>>> +          - ralink,rt3883-sysc
>>>> +          - ralink,rt5350-sysc
>>>> +          - ralink,mt7620-sysc
>>>> +          - ralink,mt7620a-sysc
>>>> +          - ralink,mt7628-sysc
>>>> +          - ralink,mt7688-sysc
>>>
>>> One more comment - this and maybe other compatibles - have wrong vendor
>>> prefix. This is mediatek, not ralink.
>>
>> This platform was acquired from Ralink by MediaTek. I couldn't change
>> some existing ralink compatible strings to mediatek as Rob explained on
>> my pinctrl patch series that we don't do that. The compatible strings on
>> this patch series here are new but I'd rather keep the compatible
>> strings ralink to keep things consistent.
> 
> The comment that you cannot change existing compatibles does not apply
> to these, because these are new. However indeed some SoCs have already
> compatibles with ralink, so it's fine for these. mt7620 and mt7628 are
> already used with mediatek, so these should be rather corrected to new
> prefix.

If you're talking about the pinctrl schemas for MT7620 and MT7628, it's 
just the name of the yaml files that have mediatek. The compatible 
string is still ralink so it should be kept ralink here as well.

Arınç
Sergio Paracuellos March 21, 2023, 4:29 a.m. UTC | #14
On Mon, Mar 20, 2023 at 6:36 PM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 20/03/2023 18:24, Sergio Paracuellos wrote:
> > Hi Krzysztof,
> >
> > On Mon, Mar 20, 2023 at 5:36 PM Krzysztof Kozlowski
> > <krzysztof.kozlowski@linaro.org> wrote:
> >>
> >> On 20/03/2023 17:18, Sergio Paracuellos wrote:
> >>> Adds device tree binding documentation for clocks and resets in the
> >>> Mediatek MIPS and Ralink SOCs. This covers RT2880, RT3050, RT3052, RT3350,
> >>> RT3883, RT5350, MT7620, MT7628 and MT7688 SoCs.
> >>
> >> Use subject prefixes matching the subsystem (which you can get for
> >> example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
> >> your patch is touching).
> >>
> >> Subject: drop second/last, redundant "device tree binding
> >> documentation". The "dt-bindings" prefix is already stating that these
> >> are bindings.
> >
> > Sure, will do. Sorry for the inconvenience.
> >
> >> (BTW, that's the longest redundant component I ever saw)
> >
> > I thought it was better to just list compatible strings inside one
> > single file than adding the same binding in multiple files.
>
> I don't understand how this is answers about redundant piece of subject.
> Amount of files are not related to repeating pieces of subject prefix.

True :).

>
> >
> >>
> >>>
> >>> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> >>> ---
> >>>  .../bindings/clock/mtmips-clock.yaml          | 68 +++++++++++++++++++
> >>>  1 file changed, 68 insertions(+)
> >>>  create mode 100644 Documentation/devicetree/bindings/clock/mtmips-clock.yaml
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/clock/mtmips-clock.yaml b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
> >>> new file mode 100644
> >>> index 000000000000..c92969ce231d
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
> >>
> >> Filename matching compatible, so vendor prefix and device name (or
> >> family of names).
> >
> > I used mtmips here but list compatibles starting with ralink. As I
> > have said in the cover letter I am inspired by the last merged pinctrl
> > series for these SoCs.
> > See:
> > - https://lore.kernel.org/linux-gpio/e9e6ad87-2db5-9767-ff39-64a302b06185@arinc9.com/T/#t
>
> 21 patches, so what exactly I should see (except that I was involved in
> that discussions)?
>
> Plus nothing from this thread warrants here exception from naming style.
>
>
> >
> > Not all of compatible currently exist.
>
> Then clearly state this.

Sure. Will do in the commit message.

>
> > All of these are at the end the
> > way we can properly match compatible-data to write a proper driver.
> > The current ralink dtsi files which are in tree now
> > are totally incomplete and not documented so we are planning to align
>
> Nothing like this was said in commit msg, so how can we know?

Will add a comment about this also.

>
> > all of this with openWRT used files and others soon. That's the reason
> > we are not touching
> > 'arch/mips/boot/dts' at all now. I don't think anybody is using any of
> > this but mt7621 which is properly completed and documented.
>
> Anyway, none of this explains exception from naming convention - vendor,
> device or family name.
>
> >
> >>
> >>> @@ -0,0 +1,68 @@
> >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >>> +%YAML 1.2
> >>> +---
> >>> +$id: http://devicetree.org/schemas/clock/mtmips-clock.yaml#
> >>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>> +
> >>> +title: MTMIPS SoCs Clock
> >>
> >> One clock? Are you sure these describe exactly one clock?
> >
> > I will change this to 'Clocks'.
>
> Then clock provider, but are you sure? You included there syscon and
> reset controller.

You are right. This is a system controller node even though it
provides clocks and resets for the rest of the world.

>
> >
> >>
> >>> +
> >>> +maintainers:
> >>> +  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> >>> +
> >>> +description: |
> >>> +  MediaTek MIPS and Ralink SoCs have an XTAL from where the cpu clock is
> >>> +  provided as well as derived clocks for the bus and the peripherals.
> >>> +
> >>> +  Each clock is assigned an identifier and client nodes use this identifier
> >>> +  to specify the clock which they consume.
> >>
> >> Drop useless or obvious pieces of description. Describe the hardware.
> >>
> >>> +
> >>> +  The clocks are provided inside a system controller node.
> >
> >>
> >> ???
> >
> > I meant, this node is a syscon from where both clock and reset related
> > registers are used. I think writing in this way was enough since it
> > has a pretty similar description like the one in
> > 'mediatek,mt7621-sysc.yaml'.
>
> But what is a system controller node? Some separate device? This is
> description for this device - called "Clock" or "Clocks" - and "system
> controller" appears for the first time.
>
> >
> >>
> >>> +
> >>> +  This node is also a reset provider for all the peripherals.
> >>
> >> ??? Does it mean it is not only "Clock" but also reset controller?
> >
> > Yes, this node is a clock and reset controller for all the SoC.
> >
> >>
> >>> +
> >>> +properties:
> >>> +  compatible:
> >>> +    items:
> >>> +      - enum:
> >>> +          - ralink,rt2880-sysc
> >>> +          - ralink,rt3050-sysc
> >>> +          - ralink,rt3052-sysc
> >>> +          - ralink,rt3352-sysc
> >>> +          - ralink,rt3883-sysc
> >>> +          - ralink,rt5350-sysc
> >>> +          - ralink,mt7620-sysc
> >>> +          - ralink,mt7620a-sysc
> >>> +          - ralink,mt7628-sysc'
> >>> +          - ralink,mt7688-sysc
> >>> +          - ralink,rt2880-reset
> >>
> >> That's odd. rt2880 is sysc and reset? One device with two compatibles?
> >
> > This 'ralink,rt2880-reset' is for compatibility reasons.
>
> I don't understand why. It is used in DTS, so what this node represents
> there?

True, this only has to be present in driver code. Not related to
bindings at all. Will drop it, then.

>
> > Reset related
> > code was inside 'arch/mips/ralink' folder reset.c file but it is moved
> > to this new driver, so we have maintained this reset stuff for the
> > reset compatibility. All of the rest are the new possible stuff for
> > both reset and clocks.
>
> We talk here about hardware, not drivers, so moving driver code around
> does not help me understand the rationale behind bindings.

Understood.

>
> > Clock driver is instantiated in two phases. The
> > earlier one set up the clocks via CLK_OF_DECLARE macro. Resets are set
> > up as a platform driver. Is only inside this where
> > 'ralink,rt2880-reset' is used. See patch 2 of the series for details.
>
> Sure, but it is not related to bindings.
>
> >
> >>
> >> Also, order these by name.
> >
> > All are ordered but I maintained the  'ralink,rt2880-reset' at the end.
>
> No, it is not. m is before r in alphabet.

In my mind all of these were ordered taking into account the year
since they exist :). So you are right. I will order this
alphabetically.

>
> Best regards,
> Krzysztof
>

Thanks,
    Sergio Paracuellos
Sergio Paracuellos March 21, 2023, 4:34 a.m. UTC | #15
On Mon, Mar 20, 2023 at 7:15 PM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 20/03/2023 19:09, Arınç ÜNAL wrote:
> >>> Would mediatek,mtmips-clock.yaml make sense?
> >>
> >> More, except:
> >> 1. This is not clock, but sysc.
> >
> > Sergio, beware.
>
> I meant, that's what I understood from what Sergio said. :)

Yes, you understood properly. I will use 'sysc' instead.

>
> >
> >> 2. mips sounds redundant. Do you have rt2xxx and mt7xxx chips which are ARM?
> >
> > All of the SoCs, RTXXXX, MT7620, MT7621, MT7628, MT7688 are MIPS. So I
> > decided to call this platform MTMIPS as I've seen MediaTek use this on
> > other projects like U-Boot. This is what I did on my pinctrl patch
> > series as well.
>
> Ah, but indeed there are newer Mediatek MT6xxx and MT8xxx SoCs which are
> ARM, so mediatek,mtmips-sysc would work.

I can use 'mediatek,mtmips-sysc.yaml' as the name but compatibles will
start with ralink. There are already some existent compatibles for
mt762x already having ralink as prefix, so to be coherent ralink
should be maintained as prefix.

>
> Best regards,
> Krzysztof
>

Thanks,
   Sergio Paracuellos
Krzysztof Kozlowski March 21, 2023, 6:32 a.m. UTC | #16
On 21/03/2023 05:34, Sergio Paracuellos wrote:
> On Mon, Mar 20, 2023 at 7:15 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 20/03/2023 19:09, Arınç ÜNAL wrote:
>>>>> Would mediatek,mtmips-clock.yaml make sense?
>>>>
>>>> More, except:
>>>> 1. This is not clock, but sysc.
>>>
>>> Sergio, beware.
>>
>> I meant, that's what I understood from what Sergio said. :)
> 
> Yes, you understood properly. I will use 'sysc' instead.
> 
>>
>>>
>>>> 2. mips sounds redundant. Do you have rt2xxx and mt7xxx chips which are ARM?
>>>
>>> All of the SoCs, RTXXXX, MT7620, MT7621, MT7628, MT7688 are MIPS. So I
>>> decided to call this platform MTMIPS as I've seen MediaTek use this on
>>> other projects like U-Boot. This is what I did on my pinctrl patch
>>> series as well.
>>
>> Ah, but indeed there are newer Mediatek MT6xxx and MT8xxx SoCs which are
>> ARM, so mediatek,mtmips-sysc would work.
> 
> I can use 'mediatek,mtmips-sysc.yaml' as the name but compatibles will
> start with ralink. There are already some existent compatibles for
> mt762x already having ralink as prefix, so to be coherent ralink
> should be maintained as prefix.

The compatibles I mentioned start already with mediatek, so why do you
want to introduce incorrect vendor name for these?

Best regards,
Krzysztof
Krzysztof Kozlowski March 21, 2023, 6:34 a.m. UTC | #17
On 20/03/2023 19:23, Arınç ÜNAL wrote:
> On 20.03.2023 21:11, Krzysztof Kozlowski wrote:
>> On 20/03/2023 19:07, Arınç ÜNAL wrote:
>>> On 20.03.2023 21:01, Krzysztof Kozlowski wrote:
>>>> On 20/03/2023 17:18, Sergio Paracuellos wrote:
>>>>> +properties:
>>>>> +  compatible:
>>>>> +    items:
>>>>> +      - enum:
>>>>> +          - ralink,rt2880-sysc
>>>>> +          - ralink,rt3050-sysc
>>>>> +          - ralink,rt3052-sysc
>>>>> +          - ralink,rt3352-sysc
>>>>> +          - ralink,rt3883-sysc
>>>>> +          - ralink,rt5350-sysc
>>>>> +          - ralink,mt7620-sysc
>>>>> +          - ralink,mt7620a-sysc
>>>>> +          - ralink,mt7628-sysc
>>>>> +          - ralink,mt7688-sysc
>>>>
>>>> One more comment - this and maybe other compatibles - have wrong vendor
>>>> prefix. This is mediatek, not ralink.
>>>
>>> This platform was acquired from Ralink by MediaTek. I couldn't change
>>> some existing ralink compatible strings to mediatek as Rob explained on
>>> my pinctrl patch series that we don't do that. The compatible strings on
>>> this patch series here are new but I'd rather keep the compatible
>>> strings ralink to keep things consistent.
>>
>> The comment that you cannot change existing compatibles does not apply
>> to these, because these are new. However indeed some SoCs have already
>> compatibles with ralink, so it's fine for these. mt7620 and mt7628 are
>> already used with mediatek, so these should be rather corrected to new
>> prefix.
> 
> If you're talking about the pinctrl schemas for MT7620 and MT7628, it's 
> just the name of the yaml files that have mediatek. The compatible 
> string is still ralink so it should be kept ralink here as well.

No, I am talking about compatibles.

Best regards,
Krzysztof
Arınç ÜNAL March 21, 2023, 6:38 a.m. UTC | #18
On 21.03.2023 09:32, Krzysztof Kozlowski wrote:
> On 21/03/2023 05:34, Sergio Paracuellos wrote:
>> On Mon, Mar 20, 2023 at 7:15 PM Krzysztof Kozlowski
>> <krzysztof.kozlowski@linaro.org> wrote:
>>>
>>> On 20/03/2023 19:09, Arınç ÜNAL wrote:
>>>>>> Would mediatek,mtmips-clock.yaml make sense?
>>>>>
>>>>> More, except:
>>>>> 1. This is not clock, but sysc.
>>>>
>>>> Sergio, beware.
>>>
>>> I meant, that's what I understood from what Sergio said. :)
>>
>> Yes, you understood properly. I will use 'sysc' instead.
>>
>>>
>>>>
>>>>> 2. mips sounds redundant. Do you have rt2xxx and mt7xxx chips which are ARM?
>>>>
>>>> All of the SoCs, RTXXXX, MT7620, MT7621, MT7628, MT7688 are MIPS. So I
>>>> decided to call this platform MTMIPS as I've seen MediaTek use this on
>>>> other projects like U-Boot. This is what I did on my pinctrl patch
>>>> series as well.
>>>
>>> Ah, but indeed there are newer Mediatek MT6xxx and MT8xxx SoCs which are
>>> ARM, so mediatek,mtmips-sysc would work.
>>
>> I can use 'mediatek,mtmips-sysc.yaml' as the name but compatibles will
>> start with ralink. There are already some existent compatibles for
>> mt762x already having ralink as prefix, so to be coherent ralink
>> should be maintained as prefix.
> 
> The compatibles I mentioned start already with mediatek, so why do you
> want to introduce incorrect vendor name for these?

Can you point out where these compatible strings for mt7620 and mt7628 are?

Arınç
Krzysztof Kozlowski March 21, 2023, 6:43 a.m. UTC | #19
On 21/03/2023 07:38, Arınç ÜNAL wrote:
>>>>
>>>> Ah, but indeed there are newer Mediatek MT6xxx and MT8xxx SoCs which are
>>>> ARM, so mediatek,mtmips-sysc would work.
>>>
>>> I can use 'mediatek,mtmips-sysc.yaml' as the name but compatibles will
>>> start with ralink. There are already some existent compatibles for
>>> mt762x already having ralink as prefix, so to be coherent ralink
>>> should be maintained as prefix.
>>
>> The compatibles I mentioned start already with mediatek, so why do you
>> want to introduce incorrect vendor name for these?
> 
> Can you point out where these compatible strings for mt7620 and mt7628 are?

git grep

Best regards,
Krzysztof
Sergio Paracuellos March 21, 2023, 6:56 a.m. UTC | #20
On Tue, Mar 21, 2023 at 7:43 AM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 21/03/2023 07:38, Arınç ÜNAL wrote:
> >>>>
> >>>> Ah, but indeed there are newer Mediatek MT6xxx and MT8xxx SoCs which are
> >>>> ARM, so mediatek,mtmips-sysc would work.
> >>>
> >>> I can use 'mediatek,mtmips-sysc.yaml' as the name but compatibles will
> >>> start with ralink. There are already some existent compatibles for
> >>> mt762x already having ralink as prefix, so to be coherent ralink
> >>> should be maintained as prefix.
> >>
> >> The compatibles I mentioned start already with mediatek, so why do you
> >> want to introduce incorrect vendor name for these?
> >
> > Can you point out where these compatible strings for mt7620 and mt7628 are?
>
> git grep

Not for *-sysc nodes. The only current one in use (from git grep):

arch/mips/ralink/mt7620.c:      rt_sysc_membase =
plat_of_remap_node("ralink,mt7620a-sysc");

That's the reason I also used prefix ralink for the rest.

Does it make sense to you to maintain this one as ralink,mt7620a-sysc
and add the following with mediatek prefix?

mediatek,mt7620-sysc
mediatek,mt7628-sysc
mediatek,mt7688-sysc

That would be weird IMHO.

> Best regards,
> Krzysztof

Thanks,
    Sergio Paracuellos
Krzysztof Kozlowski March 21, 2023, 7:19 a.m. UTC | #21
On 21/03/2023 07:56, Sergio Paracuellos wrote:
> On Tue, Mar 21, 2023 at 7:43 AM Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 21/03/2023 07:38, Arınç ÜNAL wrote:
>>>>>>
>>>>>> Ah, but indeed there are newer Mediatek MT6xxx and MT8xxx SoCs which are
>>>>>> ARM, so mediatek,mtmips-sysc would work.
>>>>>
>>>>> I can use 'mediatek,mtmips-sysc.yaml' as the name but compatibles will
>>>>> start with ralink. There are already some existent compatibles for
>>>>> mt762x already having ralink as prefix, so to be coherent ralink
>>>>> should be maintained as prefix.
>>>>
>>>> The compatibles I mentioned start already with mediatek, so why do you
>>>> want to introduce incorrect vendor name for these?
>>>
>>> Can you point out where these compatible strings for mt7620 and mt7628 are?
>>
>> git grep
> 
> Not for *-sysc nodes. The only current one in use (from git grep):

We do not talk about sysc nodes at all. They do not matter.

> 
> arch/mips/ralink/mt7620.c:      rt_sysc_membase =
> plat_of_remap_node("ralink,mt7620a-sysc");
> 
> That's the reason I also used prefix ralink for the rest.
> 
> Does it make sense to you to maintain this one as ralink,mt7620a-sysc
> and add the following with mediatek prefix?
> 
> mediatek,mt7620-sysc
> mediatek,mt7628-sysc
> mediatek,mt7688-sysc
> 
> That would be weird IMHO.

What exactly would be weird? Did you read the discussion about vendor
prefix from Arinc? mt7620 is not a Ralink product, so what would be
weird is to use "ralink" vendor prefix. This was never a Ralink. However
since there are compatibles using "ralink" for non-ralink devices, we
agreed not to change them.

These though use at least in one place mediatek, so the above argument
does not apply. (and before you say "but they also use ralink and
mediatek", it does not matter - it is already inconsistent thus we can
choose whatever we want and ralink is not correct).


Best regards,
Krzysztof
Sergio Paracuellos March 21, 2023, 7:27 a.m. UTC | #22
On Tue, Mar 21, 2023 at 8:20 AM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 21/03/2023 07:56, Sergio Paracuellos wrote:
> > On Tue, Mar 21, 2023 at 7:43 AM Krzysztof Kozlowski
> > <krzysztof.kozlowski@linaro.org> wrote:
> >>
> >> On 21/03/2023 07:38, Arınç ÜNAL wrote:
> >>>>>>
> >>>>>> Ah, but indeed there are newer Mediatek MT6xxx and MT8xxx SoCs which are
> >>>>>> ARM, so mediatek,mtmips-sysc would work.
> >>>>>
> >>>>> I can use 'mediatek,mtmips-sysc.yaml' as the name but compatibles will
> >>>>> start with ralink. There are already some existent compatibles for
> >>>>> mt762x already having ralink as prefix, so to be coherent ralink
> >>>>> should be maintained as prefix.
> >>>>
> >>>> The compatibles I mentioned start already with mediatek, so why do you
> >>>> want to introduce incorrect vendor name for these?
> >>>
> >>> Can you point out where these compatible strings for mt7620 and mt7628 are?
> >>
> >> git grep
> >
> > Not for *-sysc nodes. The only current one in use (from git grep):
>
> We do not talk about sysc nodes at all. They do not matter.

Ah, ok. That reason was from where all of my arguments were coming
from. But if it does not matter, I don't have problems using the
'mediatek' prefix in the new stuff.

>
> >
> > arch/mips/ralink/mt7620.c:      rt_sysc_membase =
> > plat_of_remap_node("ralink,mt7620a-sysc");
> >
> > That's the reason I also used prefix ralink for the rest.
> >
> > Does it make sense to you to maintain this one as ralink,mt7620a-sysc
> > and add the following with mediatek prefix?
> >
> > mediatek,mt7620-sysc
> > mediatek,mt7628-sysc
> > mediatek,mt7688-sysc
> >
> > That would be weird IMHO.
>
> What exactly would be weird? Did you read the discussion about vendor
> prefix from Arinc? mt7620 is not a Ralink product, so what would be
> weird is to use "ralink" vendor prefix. This was never a Ralink. However
> since there are compatibles using "ralink" for non-ralink devices, we
> agreed not to change them.
>
> These though use at least in one place mediatek, so the above argument
> does not apply. (and before you say "but they also use ralink and
> mediatek", it does not matter - it is already inconsistent thus we can
> choose whatever we want and ralink is not correct).

Ok, I see your point now. Thanks for clarification. I will maintain
'ralink,mt7620a-sysc' since it already exists and change the new stuff
to use mediatek as prefix. These are 'mediatek,mt7620-sysc',
'mediatek,mt7628-sysc' and 'mediatek,mt7688-sysc'. Doing so it will
properly match the 'mediatek,mtmips-sysc.yaml' file name.

>
>
> Best regards,
> Krzysztof
>

Thanks,
    Sergio Paracuellos
Arınç ÜNAL March 21, 2023, 7:39 a.m. UTC | #23
On 21.03.2023 10:19, Krzysztof Kozlowski wrote:
> On 21/03/2023 07:56, Sergio Paracuellos wrote:
>> On Tue, Mar 21, 2023 at 7:43 AM Krzysztof Kozlowski
>> <krzysztof.kozlowski@linaro.org> wrote:
>>>
>>> On 21/03/2023 07:38, Arınç ÜNAL wrote:
>>>>>>>
>>>>>>> Ah, but indeed there are newer Mediatek MT6xxx and MT8xxx SoCs which are
>>>>>>> ARM, so mediatek,mtmips-sysc would work.
>>>>>>
>>>>>> I can use 'mediatek,mtmips-sysc.yaml' as the name but compatibles will
>>>>>> start with ralink. There are already some existent compatibles for
>>>>>> mt762x already having ralink as prefix, so to be coherent ralink
>>>>>> should be maintained as prefix.
>>>>>
>>>>> The compatibles I mentioned start already with mediatek, so why do you
>>>>> want to introduce incorrect vendor name for these?
>>>>
>>>> Can you point out where these compatible strings for mt7620 and mt7628 are?
>>>
>>> git grep
>>
>> Not for *-sysc nodes. The only current one in use (from git grep):
> 
> We do not talk about sysc nodes at all. They do not matter.
> 
>>
>> arch/mips/ralink/mt7620.c:      rt_sysc_membase =
>> plat_of_remap_node("ralink,mt7620a-sysc");
>>
>> That's the reason I also used prefix ralink for the rest.
>>
>> Does it make sense to you to maintain this one as ralink,mt7620a-sysc
>> and add the following with mediatek prefix?
>>
>> mediatek,mt7620-sysc
>> mediatek,mt7628-sysc
>> mediatek,mt7688-sysc
>>
>> That would be weird IMHO.
> 
> What exactly would be weird? Did you read the discussion about vendor
> prefix from Arinc? mt7620 is not a Ralink product, so what would be
> weird is to use "ralink" vendor prefix. This was never a Ralink. However
> since there are compatibles using "ralink" for non-ralink devices, we
> agreed not to change them.
> 
> These though use at least in one place mediatek, so the above argument
> does not apply. (and before you say "but they also use ralink and
> mediatek", it does not matter - it is already inconsistent thus we can
> choose whatever we want and ralink is not correct).

My argument was that your point being Ralink is now Mediatek, thus there 
is no conflict and no issues with different vendor used. It's the next 
best thing to be able to address the inconsistency, call everything of 
the MTMIPS platform ralink on the compatible strings.

If we take the calling new things mediatek route, we will never get to 
the bottom of fixing the naming inconsistency.

Arınç
Krzysztof Kozlowski March 21, 2023, 8:04 a.m. UTC | #24
On 21/03/2023 08:39, Arınç ÜNAL wrote:
>>>
>>> arch/mips/ralink/mt7620.c:      rt_sysc_membase =
>>> plat_of_remap_node("ralink,mt7620a-sysc");
>>>
>>> That's the reason I also used prefix ralink for the rest.
>>>
>>> Does it make sense to you to maintain this one as ralink,mt7620a-sysc
>>> and add the following with mediatek prefix?
>>>
>>> mediatek,mt7620-sysc
>>> mediatek,mt7628-sysc
>>> mediatek,mt7688-sysc
>>>
>>> That would be weird IMHO.
>>
>> What exactly would be weird? Did you read the discussion about vendor
>> prefix from Arinc? mt7620 is not a Ralink product, so what would be
>> weird is to use "ralink" vendor prefix. This was never a Ralink. However
>> since there are compatibles using "ralink" for non-ralink devices, we
>> agreed not to change them.
>>
>> These though use at least in one place mediatek, so the above argument
>> does not apply. (and before you say "but they also use ralink and
>> mediatek", it does not matter - it is already inconsistent thus we can
>> choose whatever we want and ralink is not correct).
> 
> My argument was that your point being Ralink is now Mediatek, thus there 
> is no conflict and no issues with different vendor used. It's the next 
> best thing to be able to address the inconsistency, call everything of 
> the MTMIPS platform ralink on the compatible strings.

And how does it help consistency? The mt7620 is used also with mediatek
prefix and adding more variants of realtek does not make the
inconsistency smaller. It's still inconsistent.

> 
> If we take the calling new things mediatek route, we will never get to 
> the bottom of fixing the naming inconsistency.

All new things, so new SoCs, should be called mediatek, because there is
no ralink and mediatek is already used for them. So why some new
Mediatek SoCs are "mediatek" but some other also new SoCs are "ralink"?

You can do nothing (and no actual need) about existing inconsistency...


Best regards,
Krzysztof
Arınç ÜNAL March 21, 2023, 8:24 a.m. UTC | #25
On 21.03.2023 11:04, Krzysztof Kozlowski wrote:
> On 21/03/2023 08:39, Arınç ÜNAL wrote:
>>>>
>>>> arch/mips/ralink/mt7620.c:      rt_sysc_membase =
>>>> plat_of_remap_node("ralink,mt7620a-sysc");
>>>>
>>>> That's the reason I also used prefix ralink for the rest.
>>>>
>>>> Does it make sense to you to maintain this one as ralink,mt7620a-sysc
>>>> and add the following with mediatek prefix?
>>>>
>>>> mediatek,mt7620-sysc
>>>> mediatek,mt7628-sysc
>>>> mediatek,mt7688-sysc
>>>>
>>>> That would be weird IMHO.
>>>
>>> What exactly would be weird? Did you read the discussion about vendor
>>> prefix from Arinc? mt7620 is not a Ralink product, so what would be
>>> weird is to use "ralink" vendor prefix. This was never a Ralink. However
>>> since there are compatibles using "ralink" for non-ralink devices, we
>>> agreed not to change them.
>>>
>>> These though use at least in one place mediatek, so the above argument
>>> does not apply. (and before you say "but they also use ralink and
>>> mediatek", it does not matter - it is already inconsistent thus we can
>>> choose whatever we want and ralink is not correct).
>>
>> My argument was that your point being Ralink is now Mediatek, thus there
>> is no conflict and no issues with different vendor used. It's the next
>> best thing to be able to address the inconsistency, call everything of
>> the MTMIPS platform ralink on the compatible strings.
> 
> And how does it help consistency? The mt7620 is used also with mediatek
> prefix and adding more variants of realtek does not make the
> inconsistency smaller. It's still inconsistent.
> 
>>
>> If we take the calling new things mediatek route, we will never get to
>> the bottom of fixing the naming inconsistency.
> 
> All new things, so new SoCs, should be called mediatek, because there is
> no ralink and mediatek is already used for them. So why some new
> Mediatek SoCs are "mediatek" but some other also new SoCs are "ralink"?
> 
> You can do nothing (and no actual need) about existing inconsistency...

I couldn't change ralink -> mediatek because company acquisitions don't 
grant the change. I don't see any reason to prevent changing mediatek -> 
ralink without breaking the ABI on the existing schemas.

Arınç
Krzysztof Kozlowski March 21, 2023, 8:27 a.m. UTC | #26
On 21/03/2023 09:24, Arınç ÜNAL wrote:
>>>
>>> If we take the calling new things mediatek route, we will never get to
>>> the bottom of fixing the naming inconsistency.
>>
>> All new things, so new SoCs, should be called mediatek, because there is
>> no ralink and mediatek is already used for them. So why some new
>> Mediatek SoCs are "mediatek" but some other also new SoCs are "ralink"?
>>
>> You can do nothing (and no actual need) about existing inconsistency...
> 
> I couldn't change ralink -> mediatek because company acquisitions don't 
> grant the change. I don't see any reason to prevent changing mediatek -> 
> ralink without breaking the ABI on the existing schemas.

You cannot change mediatek->ralink without breaking the ABI for the same
reasons.

Best regards,
Krzysztof
Arınç ÜNAL March 21, 2023, 8:33 a.m. UTC | #27
On 21.03.2023 11:27, Krzysztof Kozlowski wrote:
> On 21/03/2023 09:24, Arınç ÜNAL wrote:
>>>>
>>>> If we take the calling new things mediatek route, we will never get to
>>>> the bottom of fixing the naming inconsistency.
>>>
>>> All new things, so new SoCs, should be called mediatek, because there is
>>> no ralink and mediatek is already used for them. So why some new
>>> Mediatek SoCs are "mediatek" but some other also new SoCs are "ralink"?
>>>
>>> You can do nothing (and no actual need) about existing inconsistency...
>>
>> I couldn't change ralink -> mediatek because company acquisitions don't
>> grant the change. I don't see any reason to prevent changing mediatek ->
>> ralink without breaking the ABI on the existing schemas.
> 
> You cannot change mediatek->ralink without breaking the ABI for the same
> reasons.

Then this is where I ask for an exception.

The current solution only complicates things more.

https://github.com/paraka/linux/pull/1/files#diff-0ae6c456898d08536ce987c32f23f2eb6f4a0f7c38bff9a61bdf3d0daa3f6549R21

Arınç
Krzysztof Kozlowski March 21, 2023, 8:39 a.m. UTC | #28
On 21/03/2023 09:33, Arınç ÜNAL wrote:
> On 21.03.2023 11:27, Krzysztof Kozlowski wrote:
>> On 21/03/2023 09:24, Arınç ÜNAL wrote:
>>>>>
>>>>> If we take the calling new things mediatek route, we will never get to
>>>>> the bottom of fixing the naming inconsistency.
>>>>
>>>> All new things, so new SoCs, should be called mediatek, because there is
>>>> no ralink and mediatek is already used for them. So why some new
>>>> Mediatek SoCs are "mediatek" but some other also new SoCs are "ralink"?
>>>>
>>>> You can do nothing (and no actual need) about existing inconsistency...
>>>
>>> I couldn't change ralink -> mediatek because company acquisitions don't
>>> grant the change. I don't see any reason to prevent changing mediatek ->
>>> ralink without breaking the ABI on the existing schemas.
>>
>> You cannot change mediatek->ralink without breaking the ABI for the same
>> reasons.
> 
> Then this is where I ask for an exception.
> 
> The current solution only complicates things more.
> 
> https://github.com/paraka/linux/pull/1/files#diff-0ae6c456898d08536ce987c32f23f2eb6f4a0f7c38bff9a61bdf3d0daa3f6549R21

Sorry, I don't understand what's under this link and how some Github
repo pull helps in this discussion. I don't see there any text, which
could help.

I also do not understand why this pull proves that you can change
existing mediatek compatibles (we talk also about ARM, which is shipped
to million of devices) to ralink without breaking the ABI.

I do not see how choosing one variant for compatibles having two
variants of prefixes, complicates things. Following this argument
choosing "ralink" also complicates!



Best regards,
Krzysztof
Arınç ÜNAL March 21, 2023, 8:53 a.m. UTC | #29
On 21.03.2023 11:39, Krzysztof Kozlowski wrote:
> On 21/03/2023 09:33, Arınç ÜNAL wrote:
>> On 21.03.2023 11:27, Krzysztof Kozlowski wrote:
>>> On 21/03/2023 09:24, Arınç ÜNAL wrote:
>>>>>>
>>>>>> If we take the calling new things mediatek route, we will never get to
>>>>>> the bottom of fixing the naming inconsistency.
>>>>>
>>>>> All new things, so new SoCs, should be called mediatek, because there is
>>>>> no ralink and mediatek is already used for them. So why some new
>>>>> Mediatek SoCs are "mediatek" but some other also new SoCs are "ralink"?
>>>>>
>>>>> You can do nothing (and no actual need) about existing inconsistency...
>>>>
>>>> I couldn't change ralink -> mediatek because company acquisitions don't
>>>> grant the change. I don't see any reason to prevent changing mediatek ->
>>>> ralink without breaking the ABI on the existing schemas.
>>>
>>> You cannot change mediatek->ralink without breaking the ABI for the same
>>> reasons.
>>
>> Then this is where I ask for an exception.
>>
>> The current solution only complicates things more.
>>
>> https://github.com/paraka/linux/pull/1/files#diff-0ae6c456898d08536ce987c32f23f2eb6f4a0f7c38bff9a61bdf3d0daa3f6549R21
> 
> Sorry, I don't understand what's under this link and how some Github
> repo pull helps in this discussion. I don't see there any text, which
> could help.

That's Sergio's current branch, before he sends out a new version of the 
patch series. So that's the current solution, having 
mediatek,mt7620-sysc and ralink,mt7620a-sysc on the schema.

> 
> I also do not understand why this pull proves that you can change
> existing mediatek compatibles (we talk also about ARM, which is shipped
> to million of devices) to ralink without breaking the ABI.

No no, I only want to do this on schemas that concern the MTMIPS 
platform. It doesn't concern the MediaTek ARM schemas.

> 
> I do not see how choosing one variant for compatibles having two
> variants of prefixes, complicates things. Following this argument
> choosing "ralink" also complicates!

The idea is to make every compatible string of MTMIPS to have the ralink 
prefix so it's not mediatek on some schemas and ralink on others. Simpler.

Arınç
Krzysztof Kozlowski March 21, 2023, 9:01 a.m. UTC | #30
On 21/03/2023 09:53, Arınç ÜNAL wrote:
>>
>> I do not see how choosing one variant for compatibles having two
>> variants of prefixes, complicates things. Following this argument
>> choosing "ralink" also complicates!
> 
> The idea is to make every compatible string of MTMIPS to have the ralink 
> prefix so it's not mediatek on some schemas and ralink on others. Simpler.

Which is an ABI break, so you cannot do it.

Best regards,
Krzysztof
Arınç ÜNAL March 21, 2023, 9:02 a.m. UTC | #31
On 21.03.2023 12:01, Krzysztof Kozlowski wrote:
> On 21/03/2023 09:53, Arınç ÜNAL wrote:
>>>
>>> I do not see how choosing one variant for compatibles having two
>>> variants of prefixes, complicates things. Following this argument
>>> choosing "ralink" also complicates!
>>
>> The idea is to make every compatible string of MTMIPS to have the ralink
>> prefix so it's not mediatek on some schemas and ralink on others. Simpler.
> 
> Which is an ABI break, so you cannot do it.

No, both strings stay on the driver, it's the schemas that will only 
keep ralink.

Arınç
Rob Herring March 24, 2023, 10:10 p.m. UTC | #32
On Tue, Mar 21, 2023 at 12:02:47PM +0300, Arınç ÜNAL wrote:
> On 21.03.2023 12:01, Krzysztof Kozlowski wrote:
> > On 21/03/2023 09:53, Arınç ÜNAL wrote:
> > > > 
> > > > I do not see how choosing one variant for compatibles having two
> > > > variants of prefixes, complicates things. Following this argument
> > > > choosing "ralink" also complicates!
> > > 
> > > The idea is to make every compatible string of MTMIPS to have the ralink
> > > prefix so it's not mediatek on some schemas and ralink on others. Simpler.
> > 
> > Which is an ABI break, so you cannot do it.
> 
> No, both strings stay on the driver, it's the schemas that will only keep
> ralink.

But you are adding one of the strings to the driver, right? Still an ABI 
break, but only if you have an old kernel and new DT. That can be 
somewhat mitigated with a stable backport of the new id, but still an 
ABI break.

Rob
Rob Herring March 24, 2023, 10:13 p.m. UTC | #33
On Tue, Mar 21, 2023 at 12:02:47PM +0300, Arınç ÜNAL wrote:
> On 21.03.2023 12:01, Krzysztof Kozlowski wrote:
> > On 21/03/2023 09:53, Arınç ÜNAL wrote:
> > > > 
> > > > I do not see how choosing one variant for compatibles having two
> > > > variants of prefixes, complicates things. Following this argument
> > > > choosing "ralink" also complicates!
> > > 
> > > The idea is to make every compatible string of MTMIPS to have the ralink
> > > prefix so it's not mediatek on some schemas and ralink on others. Simpler.
> > 
> > Which is an ABI break, so you cannot do it.
> 
> No, both strings stay on the driver, it's the schemas that will only keep
> ralink.

Whatever is in the driver should be in the schema too. 'make 
dt_compatible_check' will check this. And some day, I'd like that list 
to get to 0.

Rob
Arınç ÜNAL March 24, 2023, 11:15 p.m. UTC | #34
On 25.03.2023 01:10, Rob Herring wrote:
> On Tue, Mar 21, 2023 at 12:02:47PM +0300, Arınç ÜNAL wrote:
>> On 21.03.2023 12:01, Krzysztof Kozlowski wrote:
>>> On 21/03/2023 09:53, Arınç ÜNAL wrote:
>>>>>
>>>>> I do not see how choosing one variant for compatibles having two
>>>>> variants of prefixes, complicates things. Following this argument
>>>>> choosing "ralink" also complicates!
>>>>
>>>> The idea is to make every compatible string of MTMIPS to have the ralink
>>>> prefix so it's not mediatek on some schemas and ralink on others. Simpler.
>>>
>>> Which is an ABI break, so you cannot do it.
>>
>> No, both strings stay on the driver, it's the schemas that will only keep
>> ralink.
> 
> But you are adding one of the strings to the driver, right? Still an ABI
> break, but only if you have an old kernel and new DT. That can be
> somewhat mitigated with a stable backport of the new id, but still an
> ABI break.

Ah, that makes sense. Yes, I'd be adding new strings to the driver.

> Whatever is in the driver should be in the schema too. 'make 
> dt_compatible_check' will check this. And some day, I'd like that list 
> to get to 0.

I'll keep this in mind for the schemas I maintain. I will add 
ralink,rt2880-pinmux as deprecated on the pinctrl schemas so it would 
disappear from 'make dt_compatible check'. I believe I'm supposed to do 
it like this?

properties:
   compatible:
     enum:
       - ralink,rt2880-pinctrl
       - ralink,rt2880-pinmux
     deprecated:
       items:
         - const: ralink,rt2880-pinmux
           deprecated: true

Arınç
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/clock/mtmips-clock.yaml b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
new file mode 100644
index 000000000000..c92969ce231d
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/mtmips-clock.yaml
@@ -0,0 +1,68 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/mtmips-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MTMIPS SoCs Clock
+
+maintainers:
+  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
+
+description: |
+  MediaTek MIPS and Ralink SoCs have an XTAL from where the cpu clock is
+  provided as well as derived clocks for the bus and the peripherals.
+
+  Each clock is assigned an identifier and client nodes use this identifier
+  to specify the clock which they consume.
+
+  The clocks are provided inside a system controller node.
+
+  This node is also a reset provider for all the peripherals.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - ralink,rt2880-sysc
+          - ralink,rt3050-sysc
+          - ralink,rt3052-sysc
+          - ralink,rt3352-sysc
+          - ralink,rt3883-sysc
+          - ralink,rt5350-sysc
+          - ralink,mt7620-sysc
+          - ralink,mt7620a-sysc
+          - ralink,mt7628-sysc
+          - ralink,mt7688-sysc
+          - ralink,rt2880-reset
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    description:
+      The first cell indicates the clock number.
+    const: 1
+
+  '#reset-cells':
+    description:
+      The first cell indicates the reset bit within the register.
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+  - '#reset-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    sysc: sysc@0 {
+      compatible = "ralink,rt5350-sysc", "syscon";
+      reg = <0x0 0x100>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+    };