On Tue, Feb 25, 2020 at 09:46:23AM +0100, Linus Walleij wrote: > This implements the top-level schema for the ARM Integrator > platforms. > > Cc: Sudeep Holla <sudeep.holla@xxxxxxx> > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > ChangeLog v1->v2: > - Collapse the compatible three items with two const in each to an > enum with three possible values and a const syscon > - Add reg with maxItems: 1 for syscon > - Add reg as a required property of syscon > - Make syscon a patternProperty and make sure it has a unit address > - Add reg with maxItems: 1 for the core module > - Require core module to be @10000000 and have all three compatibles. > --- > .../bindings/arm/arm,integrator.yaml | 87 +++++++++++++++++++ > 1 file changed, 87 insertions(+) > create mode 100644 Documentation/devicetree/bindings/arm/arm,integrator.yaml > > diff --git a/Documentation/devicetree/bindings/arm/arm,integrator.yaml b/Documentation/devicetree/bindings/arm/arm,integrator.yaml > new file mode 100644 > index 000000000000..2690491c1294 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/arm,integrator.yaml > @@ -0,0 +1,87 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/arm/arm,integrator.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: ARM Integrator Boards Device Tree Bindings > + > +maintainers: > + - Linus Walleij <linus.walleij@xxxxxxxxxx> > + > +description: |+ > + These were the first ARM platforms officially supported by ARM Ltd. > + They are ARMv4, ARMv5 and ARMv6-capable using different core tiles, > + so the system is modular and can host a variety of CPU tiles called > + "core tiles" and referred to in the device tree as "core modules". > + > +properties: > + $nodename: > + const: '/' > + compatible: > + oneOf: > + - description: ARM Integrator Application Platform, this board has a PCI > + host and several PCI slots, as well as a number of slots for logical > + expansion modules, it is referred to as an "ASIC Development > + Motherboard" and is extended with custom FPGA and is intended for > + rapid prototyping. See ARM DUI 0098B. This board can physically come > + pre-packaged in a PC Tower form factor called Integrator/PP1 or a > + special metal fixture called Integrator/PP2, see ARM DUI 0169A. > + items: > + - const: arm,integrator-ap > + - description: ARM Integrator Compact Platform (HBI-0086), this board has > + a compact form factor and mainly consists of the bare minimum > + peripherals to make use of the core module. See ARM DUI 0159B. > + items: > + - const: arm,integrator-cp > + - description: ARM Integrator Standard Development Board (SDB) Platform, > + this board is a PCI-based board conforming to the Microsoft SDB > + (HARP) specification. See ARM DUI 0099A. > + items: > + - const: arm,integrator-sp > + > + core-module@10000000: > + type: object > + description: the root node in the Integrator platforms must contain > + a core module child node. They are always at physical address > + 0x10000000 in all the Integrator variants. > + properties: > + compatible: > + items: > + - const: arm,core-module-integrator > + - const: syscon > + - const: simple-mfd > + reg: > + maxItems: 1 > + > + required: > + - compatible > + - reg > + > +patternProperties: > + "^syscon@[0-9a-f]+$": > + description: All Integrator boards must provide a system controller as a > + node in the root of the device tree. > + type: object > + properties: > + compatible: > + items: > + - enum: > + - arm,integrator-ap-syscon > + - arm,integrator-cp-syscon > + - arm,integrator-sp-syscon > + - const: syscon > + reg: > + maxItems: 1 > + > + required: > + - compatible > + - reg > + > + > +required: > + - compatible > + - syscon This will fail to match anything if you have 'syscon@...' Unfortunately, not yet any way to have required patterns in json-schema, though that is being discussed. With that dropped, Reviewed-by: Rob Herring <robh@xxxxxxxxxx> > + - core-module@10000000 > + > +... > -- > 2.24.1 >