On Wed, Aug 14, 2019 at 1:21 PM Stefan Wahren <wahrenst@xxxxxxx> 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@xxxxxxx> 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@xxxxxxx> > >> Acked-by: Eric Anholt <eric@xxxxxxxxxx> > >> --- > >> .../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@xxxxxxxxxx> > >> + - Stefan Wahren <wahrenst@xxxxxxx> > >> + > >> +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