On 08/05/2023 12:47, Claudiu Beznea wrote: > Convert Atmel PMC documentation to yaml. Please mention the changes against original binding. At least clock-names look different, maybe more. > > Signed-off-by: Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx> > --- > .../devicetree/bindings/clock/at91-clock.txt | 28 ---- > .../bindings/clock/atmel,at91rm9200-pmc.yaml | 154 ++++++++++++++++++ > 2 files changed, 154 insertions(+), 28 deletions(-) > create mode 100644 Documentation/devicetree/bindings/clock/atmel,at91rm9200-pmc.yaml > > diff --git a/Documentation/devicetree/bindings/clock/at91-clock.txt b/Documentation/devicetree/bindings/clock/at91-clock.txt > index 13f45db3b66d..57394785d3b0 100644 > --- a/Documentation/devicetree/bindings/clock/at91-clock.txt > +++ b/Documentation/devicetree/bindings/clock/at91-clock.txt > @@ -28,31 +28,3 @@ For example: > #clock-cells = <0>; > }; > > -Power Management Controller (PMC): > - > -Required properties: > -- compatible : shall be "atmel,<chip>-pmc", "syscon" or > - "microchip,sam9x60-pmc" > - <chip> can be: at91rm9200, at91sam9260, at91sam9261, > - at91sam9263, at91sam9g45, at91sam9n12, at91sam9rl, at91sam9g15, > - at91sam9g25, at91sam9g35, at91sam9x25, at91sam9x35, at91sam9x5, > - sama5d2, sama5d3 or sama5d4. > -- #clock-cells : from common clock binding; shall be set to 2. The first entry > - is the type of the clock (core, system, peripheral or generated) and the > - second entry its index as provided by the datasheet > -- clocks : Must contain an entry for each entry in clock-names. > -- clock-names: Must include the following entries: "slow_clk", "main_xtal" > - > -Optional properties: > -- atmel,osc-bypass : boolean property. Set this when a clock signal is directly > - provided on XIN. > - > -For example: > - pmc: pmc@f0018000 { > - compatible = "atmel,sama5d4-pmc", "syscon"; > - reg = <0xf0018000 0x120>; > - interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; > - #clock-cells = <2>; > - clocks = <&clk32k>, <&main_xtal>; > - clock-names = "slow_clk", "main_xtal"; > - }; > diff --git a/Documentation/devicetree/bindings/clock/atmel,at91rm9200-pmc.yaml b/Documentation/devicetree/bindings/clock/atmel,at91rm9200-pmc.yaml > new file mode 100644 > index 000000000000..58b702520600 > --- /dev/null > +++ b/Documentation/devicetree/bindings/clock/atmel,at91rm9200-pmc.yaml > @@ -0,0 +1,154 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/clock/atmel,at91rm9200-pmc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Atmel Power Management Controller (PMC) > + > +maintainers: > + - Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx> > + > +description: > + The power management controller optimizes power consumption by controlling all > + system and user peripheral clocks. The PMC enables/disables the clock inputs > + to many of the peripherals and to the processor. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: atmel,at91sam9260-pmc > + - const: syscon No improvements here. Why this is part of this group not the one at the end? I already talked about this. > + - items: > + - enum: > + - atmel,at91sam9g15-pmc > + - atmel,at91sam9g20-pmc > + - atmel,at91sam9g25-pmc > + - atmel,at91sam9g35-pmc > + - atmel,at91sam9x25-pmc > + - atmel,at91sam9x35-pmc > + - enum: > + - atmel,at91sam9260-pmc > + - atmel,at91sam9x5-pmc > + - const: syscon > + - items: > + - enum: > + - atmel,at91rm9200-pmc > + - atmel,at91sam9g45-pmc > + - atmel,at91sam9n12-pmc > + - atmel,at91sam9rl-pmc > + - atmel,sama5d2-pmc > + - atmel,sama5d3-pmc > + - atmel,sama5d4-pmc > + - microchip,sam9x60-pmc > + - microchip,sama7g5-pmc > + - const: syscon > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + "#clock-cells": > + description: | > + - 1st cell is the clock type, one of PMC_TYPE_CORE, PMC_TYPE_SYSTEM, > + PMC_TYPE_PERIPHERAL, PMC_TYPE_GCK, PMC_TYPE_PROGRAMMABLE (as defined > + in <dt-bindings/clock/at91.h>) > + - 2nd cell is the clock identifier as defined in <dt-bindings/clock/at91.h > + (for core clocks) or as defined in datasheet (for system, peripheral, > + gck and programmable clocks). > + const: 2 > + > + clocks: > + minItems: 2 > + maxItems: 3 > + > + clock-names: > + minItems: 2 > + maxItems: 3 > + > + atmel,osc-bypass: > + description: set when a clock signal is directly provided on XIN > + type: boolean > + > +required: > + - compatible > + - reg > + - interrupts > + - "#clock-cells" > + - clocks > + - clock-names > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + enum: > + - microchip,sam9x60-pmc > + - microchip,sama7g5-pmc > + then: > + properties: > + clocks: > + minItems: 3 > + maxItems: 3 > + clock-names: > + items: > + - const: td_slck > + - const: md_slck > + - const: main_xtal > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - atmel,at91rm9200-pmc > + - atmel,at91sam9260-pmc > + - atmel,at91sam9g20-pmc > + then: > + properties: > + clocks: > + minItems: 2 > + maxItems: 2 > + clock-names: > + items: > + - const: slow_xtal > + - const: main_xtal > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - atmel,sama5d4-pmc > + - atmel,sama5d3-pmc > + - atmel,sama5d2-pmc Keep similar order as in compatibles list, e.g. alphanumeric. Best regards, Krzysztof