On Fri, Sep 20, 2024 at 10:38:05AM +0200, Neil Armstrong wrote: > Convert the Amlogic Meson6, Meson8 and Meson8b SDIO/MMC controller > bindings to dt-schema. > > Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx> ... > +properties: > + compatible: > + items: > + - enum: > + - amlogic,meson8-sdio > + - amlogic,meson8b-sdio > + - const: amlogic,meson-mx-sdio > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + maxItems: 2 > + > + clock-names: > + items: > + - const: core > + - const: clkin > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > +patternProperties: > + "slot@[0-2]+$": ^slot@[0-2]$ (because foo-slot@22 is wrong) > + $ref: mmc-slot.yaml# > + description: > + A node for each slot provided by the MMC controller > + > + properties: > + reg: > + description: > + the slot (or "port") ID Drop description. Should be rather part of mmc-slot.yaml. > + enum: [0, 1, 2] > + > + bus-width: > + enum: [1, 4] > + > + unevaluatedProperties: false Hm, I wonder why not all slots are defined in your DTS? Why not all of them are required? I assume the slots are there always, as part of the controller. Is this because of driver limitation mentioned in the old binding? > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + - "#address-cells" > + - "#size-cells" > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + mmc@c1108c20 { > + compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio"; > + reg = <0xc1108c20 0x20>; > + interrupts = <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>; > + clocks = <&clk_core>, <&clk_in>; > + clock-names = "core", "clkin"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + slot@1 { > + compatible = "mmc-slot"; > + reg = <1>; > + bus-width = <4>; Best regards, Krzysztof