Message ID | 1565713248-4906-10-git-send-email-wahrenst@gmx.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: Add minimal Raspberry Pi 4 support | expand |
On Tue, Aug 13, 2019 at 10:21 AM Stefan Wahren <wahrenst@gmx.net> wrote: > > Convert the BCM2835/6/7 SoC bindings to DT schema format using json-schema. > All the other Broadcom boards are maintained by Florian Fainelli. > > Signed-off-by: Stefan Wahren <wahrenst@gmx.net> > Acked-by: Eric Anholt <eric@anholt.net> > --- > .../devicetree/bindings/arm/bcm/bcm2835.yaml | 46 +++++++++++++++ > .../devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 67 ---------------------- > 2 files changed, 46 insertions(+), 67 deletions(-) > create mode 100644 Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml > delete mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt > > diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml b/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml > new file mode 100644 > index 0000000..1a4be26 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml > @@ -0,0 +1,46 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/arm/bcm/bcm2835.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Broadcom BCM2711/BCM2835 Platforms Device Tree Bindings > + > +maintainers: > + - Eric Anholt <eric@anholt.net> > + - Stefan Wahren <wahrenst@gmx.net> > + > +properties: > + $nodename: > + const: '/' > + compatible: > + oneOf: > + - description: BCM2835 based Boards > + items: > + - enum: > + - raspberrypi,model-a > + - raspberrypi,model-a-plus > + - raspberrypi,model-b > + - raspberrypi,model-b-i2c0 # Raspberry Pi Model B (no P5) > + - raspberrypi,model-b-rev2 > + - raspberrypi,model-b-plus > + - raspberrypi,compute-module > + - raspberrypi,model-zero > + - raspberrypi,model-zero-w > + - const: brcm,bcm2835 > + > + - description: BCM2836 based Boards > + items: > + - enum: > + - raspberrypi,2-model-b Don't you need brcm,bcm2836 here? > + > + - description: BCM2837 based Boards > + items: > + - enum: > + - raspberrypi,3-model-a-plus > + - raspberrypi,3-model-b > + - raspberrypi,3-model-b-plus > + - raspberrypi,3-compute-module > + - raspberrypi,3-compute-module-lite Don't you need brcm,bcm2837 here? Please run 'dtbs_check' and make sure there aren't warnings (in the root node). Rob
Hi Rob, Am 13.08.19 um 19:22 schrieb Rob Herring: > On Tue, Aug 13, 2019 at 10:21 AM Stefan Wahren <wahrenst@gmx.net> wrote: >> Convert the BCM2835/6/7 SoC bindings to DT schema format using json-schema. >> All the other Broadcom boards are maintained by Florian Fainelli. >> >> Signed-off-by: Stefan Wahren <wahrenst@gmx.net> >> Acked-by: Eric Anholt <eric@anholt.net> >> --- >> .../devicetree/bindings/arm/bcm/bcm2835.yaml | 46 +++++++++++++++ >> .../devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 67 ---------------------- >> 2 files changed, 46 insertions(+), 67 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml >> delete mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt >> >> diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml b/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml >> new file mode 100644 >> index 0000000..1a4be26 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml >> @@ -0,0 +1,46 @@ >> +# SPDX-License-Identifier: GPL-2.0 >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/arm/bcm/bcm2835.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Broadcom BCM2711/BCM2835 Platforms Device Tree Bindings >> + >> +maintainers: >> + - Eric Anholt <eric@anholt.net> >> + - Stefan Wahren <wahrenst@gmx.net> >> + >> +properties: >> + $nodename: >> + const: '/' >> + compatible: >> + oneOf: >> + - description: BCM2835 based Boards >> + items: >> + - enum: >> + - raspberrypi,model-a >> + - raspberrypi,model-a-plus >> + - raspberrypi,model-b >> + - raspberrypi,model-b-i2c0 # Raspberry Pi Model B (no P5) >> + - raspberrypi,model-b-rev2 >> + - raspberrypi,model-b-plus >> + - raspberrypi,compute-module >> + - raspberrypi,model-zero >> + - raspberrypi,model-zero-w >> + - const: brcm,bcm2835 >> + >> + - description: BCM2836 based Boards >> + items: >> + - enum: >> + - raspberrypi,2-model-b > Don't you need brcm,bcm2836 here? > >> + >> + - description: BCM2837 based Boards >> + items: >> + - enum: >> + - raspberrypi,3-model-a-plus >> + - raspberrypi,3-model-b >> + - raspberrypi,3-model-b-plus >> + - raspberrypi,3-compute-module >> + - raspberrypi,3-compute-module-lite > Don't you need brcm,bcm2837 here? > > Please run 'dtbs_check' and make sure there aren't warnings (in the root node). thanks, after addressing your comments the root node doesn't have warnings anymore. Beside that there a lot of other warnings: DTC arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml CHECK arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: arm-pmu: compatible: ['arm,cortex-a72-pmu', 'arm,armv8-pmuv3'] is too long /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: arm-pmu: compatible: Additional items are not allowed ('arm,armv8-pmuv3' was unexpected) I think the schema is a little bit too strict by prohibit a fallback compatible. /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: serial@7e201800: Additional properties are not allowed ('arm,primecell-periphid' was unexpected) In the old txt version this was an allowed property. /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: firmware: $nodename:0: 'firmware' does not match '^(bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$' /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: firmware: '#address-cells' is a required property /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: firmware: '#size-cells' is a required property /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: firmware: 'ranges' is a required property I suggest to fix this by removing the "simple-bus". /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: serial@7e201a00: Additional properties are not allowed ('arm,primecell-periphid' was unexpected) /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: gpio@7e200000: 'pinctrl-0' is a dependency of 'pinctrl-names' This could be fixed by removing pinctrl-names. /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: serial@7e201600: Additional properties are not allowed ('arm,primecell-periphid' was unexpected) /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: gic400@40041000: $nodename:0: 'gic400@40041000' does not match '^interrupt-controller(@[0-9a-f,]+)*$' I will rename gic400 to interrupt-controller. /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: serial@7e201400: Additional properties are not allowed ('arm,primecell-periphid' was unexpected) /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: serial@7e201000: compatible: ['brcm,bcm2835-pl011', 'arm,pl011', 'arm,primecell'] is not valid under any of the given schemas /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: serial@7e201000: Additional properties are not allowed ('bluetooth', 'arm,primecell-periphid' were unexpected) /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: sd_io_1v8_reg: states:0: [1800000, 1, 3300000, 0] is too long /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: sd_io_1v8_reg: states:0: Additional items are not allowed (3300000, 0 were unexpected) No idea what is wrong here /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: #size-cells:0:0: 0 is not one of [1, 2] /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: $nodename:0: 'clocks' does not match '^(bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$' /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: clock@3:reg:0: [3] is too short /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: clock@4:reg:0: [4] is too short /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: 'ranges' is a required property /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clock@3: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+' /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clock@4: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+' This could be fixed by avoiding a simple-bus for the fixed clocks. Stefan > > Rob > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Wed, Aug 14, 2019 at 1:21 PM Stefan Wahren <wahrenst@gmx.net> wrote: > > Hi Rob, > > Am 13.08.19 um 19:22 schrieb Rob Herring: > > On Tue, Aug 13, 2019 at 10:21 AM Stefan Wahren <wahrenst@gmx.net> wrote: > >> Convert the BCM2835/6/7 SoC bindings to DT schema format using json-schema. > >> All the other Broadcom boards are maintained by Florian Fainelli. > >> > >> Signed-off-by: Stefan Wahren <wahrenst@gmx.net> > >> Acked-by: Eric Anholt <eric@anholt.net> > >> --- > >> .../devicetree/bindings/arm/bcm/bcm2835.yaml | 46 +++++++++++++++ > >> .../devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 67 ---------------------- > >> 2 files changed, 46 insertions(+), 67 deletions(-) > >> create mode 100644 Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml > >> delete mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt > >> > >> diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml b/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml > >> new file mode 100644 > >> index 0000000..1a4be26 > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml > >> @@ -0,0 +1,46 @@ > >> +# SPDX-License-Identifier: GPL-2.0 > >> +%YAML 1.2 > >> +--- > >> +$id: http://devicetree.org/schemas/arm/bcm/bcm2835.yaml# > >> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >> + > >> +title: Broadcom BCM2711/BCM2835 Platforms Device Tree Bindings > >> + > >> +maintainers: > >> + - Eric Anholt <eric@anholt.net> > >> + - Stefan Wahren <wahrenst@gmx.net> > >> + > >> +properties: > >> + $nodename: > >> + const: '/' > >> + compatible: > >> + oneOf: > >> + - description: BCM2835 based Boards > >> + items: > >> + - enum: > >> + - raspberrypi,model-a > >> + - raspberrypi,model-a-plus > >> + - raspberrypi,model-b > >> + - raspberrypi,model-b-i2c0 # Raspberry Pi Model B (no P5) > >> + - raspberrypi,model-b-rev2 > >> + - raspberrypi,model-b-plus > >> + - raspberrypi,compute-module > >> + - raspberrypi,model-zero > >> + - raspberrypi,model-zero-w > >> + - const: brcm,bcm2835 > >> + > >> + - description: BCM2836 based Boards > >> + items: > >> + - enum: > >> + - raspberrypi,2-model-b > > Don't you need brcm,bcm2836 here? > > > >> + > >> + - description: BCM2837 based Boards > >> + items: > >> + - enum: > >> + - raspberrypi,3-model-a-plus > >> + - raspberrypi,3-model-b > >> + - raspberrypi,3-model-b-plus > >> + - raspberrypi,3-compute-module > >> + - raspberrypi,3-compute-module-lite > > Don't you need brcm,bcm2837 here? > > > > Please run 'dtbs_check' and make sure there aren't warnings (in the root node). > > thanks, after addressing your comments the root node doesn't have > warnings anymore. > > Beside that there a lot of other warnings: > > DTC arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml > CHECK arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > arm-pmu: compatible: ['arm,cortex-a72-pmu', 'arm,armv8-pmuv3'] is too long > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > arm-pmu: compatible: Additional items are not allowed ('arm,armv8-pmuv3' > was unexpected) > > I think the schema is a little bit too strict by prohibit a fallback > compatible. IIRC, Will Deacon said there wasn't any point to fallbacks as every cpu has its own list of events. Or if we want a fallback, then add it to the schema. > > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > serial@7e201800: Additional properties are not allowed > ('arm,primecell-periphid' was unexpected) > > In the old txt version this was an allowed property. You really need an override? Haven't seen that in a while. We can drop 'additionalProperties: false' in the pl011 schema. > > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > firmware: $nodename:0: 'firmware' does not match > '^(bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$' > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > firmware: '#address-cells' is a required property > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > firmware: '#size-cells' is a required property > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > firmware: 'ranges' is a required property > > I suggest to fix this by removing the "simple-bus". Probably. 'firmware' doesn't sound like a bus. > > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > serial@7e201a00: Additional properties are not allowed > ('arm,primecell-periphid' was unexpected) > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > gpio@7e200000: 'pinctrl-0' is a dependency of 'pinctrl-names' > > This could be fixed by removing pinctrl-names. > > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > serial@7e201600: Additional properties are not allowed > ('arm,primecell-periphid' was unexpected) > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > gic400@40041000: $nodename:0: 'gic400@40041000' does not match > '^interrupt-controller(@[0-9a-f,]+)*$' > > I will rename gic400 to interrupt-controller. > > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > serial@7e201400: Additional properties are not allowed > ('arm,primecell-periphid' was unexpected) > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > serial@7e201000: compatible: ['brcm,bcm2835-pl011', 'arm,pl011', > 'arm,primecell'] is not valid under any of the given schemas > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > serial@7e201000: Additional properties are not allowed ('bluetooth', > 'arm,primecell-periphid' were unexpected) > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > sd_io_1v8_reg: states:0: [1800000, 1, 3300000, 0] is too long > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > sd_io_1v8_reg: states:0: Additional items are not allowed (3300000, 0 > were unexpected) > > No idea what is wrong here The schema is stricter about <> groupings is my guess. Looks like this should be 2 entries with 2 cells each. > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: > #size-cells:0:0: 0 is not one of [1, 2] > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: > $nodename:0: 'clocks' does not match '^(bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$' > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: > clock@3:reg:0: [3] is too short > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: > clock@4:reg:0: [4] is too short > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: clocks: > 'ranges' is a required property > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > clock@3: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+' > /home/stefan/torvalds/arch/arm/boot/dts/bcm2711-rpi-4-b.dt.yaml: > clock@4: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+' > > This could be fixed by avoiding a simple-bus for the fixed clocks. Right, they are not a bus. Rob
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml b/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml new file mode 100644 index 0000000..1a4be26 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/bcm/bcm2835.yaml @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/bcm/bcm2835.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Broadcom BCM2711/BCM2835 Platforms Device Tree Bindings + +maintainers: + - Eric Anholt <eric@anholt.net> + - Stefan Wahren <wahrenst@gmx.net> + +properties: + $nodename: + const: '/' + compatible: + oneOf: + - description: BCM2835 based Boards + items: + - enum: + - raspberrypi,model-a + - raspberrypi,model-a-plus + - raspberrypi,model-b + - raspberrypi,model-b-i2c0 # Raspberry Pi Model B (no P5) + - raspberrypi,model-b-rev2 + - raspberrypi,model-b-plus + - raspberrypi,compute-module + - raspberrypi,model-zero + - raspberrypi,model-zero-w + - const: brcm,bcm2835 + + - description: BCM2836 based Boards + items: + - enum: + - raspberrypi,2-model-b + + - description: BCM2837 based Boards + items: + - enum: + - raspberrypi,3-model-a-plus + - raspberrypi,3-model-b + - raspberrypi,3-model-b-plus + - raspberrypi,3-compute-module + - raspberrypi,3-compute-module-lite + +... diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt deleted file mode 100644 index 245328f..0000000 --- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt +++ /dev/null @@ -1,67 +0,0 @@ -Broadcom BCM2835 device tree bindings -------------------------------------------- - -Raspberry Pi Model A -Required root node properties: -compatible = "raspberrypi,model-a", "brcm,bcm2835"; - -Raspberry Pi Model A+ -Required root node properties: -compatible = "raspberrypi,model-a-plus", "brcm,bcm2835"; - -Raspberry Pi Model B -Required root node properties: -compatible = "raspberrypi,model-b", "brcm,bcm2835"; - -Raspberry Pi Model B (no P5) -early model B with I2C0 rather than I2C1 routed to the expansion header -Required root node properties: -compatible = "raspberrypi,model-b-i2c0", "brcm,bcm2835"; - -Raspberry Pi Model B rev2 -Required root node properties: -compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835"; - -Raspberry Pi Model B+ -Required root node properties: -compatible = "raspberrypi,model-b-plus", "brcm,bcm2835"; - -Raspberry Pi 2 Model B -Required root node properties: -compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; - -Raspberry Pi 3 Model A+ -Required root node properties: -compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837"; - -Raspberry Pi 3 Model B -Required root node properties: -compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; - -Raspberry Pi 3 Model B+ -Required root node properties: -compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837"; - -Raspberry Pi Compute Module -Required root node properties: -compatible = "raspberrypi,compute-module", "brcm,bcm2835"; - -Raspberry Pi Compute Module 3 -Required root node properties: -compatible = "raspberrypi,3-compute-module", "brcm,bcm2837"; - -Raspberry Pi Compute Module 3 Lite -Required root node properties: -compatible = "raspberrypi,3-compute-module-lite", "brcm,bcm2837"; - -Raspberry Pi Zero -Required root node properties: -compatible = "raspberrypi,model-zero", "brcm,bcm2835"; - -Raspberry Pi Zero W -Required root node properties: -compatible = "raspberrypi,model-zero-w", "brcm,bcm2835"; - -Generic BCM2835 board -Required root node properties: -compatible = "brcm,bcm2835";