This converts the v3d bindings to yaml format.
Signed-off-by: Stefan Wahren stefan.wahren@i2se.com ---
Changes in V3: - drop redundant maxItems in case we already have items defined - fix order of reg-names enum - tag required items in description - add reg-names to required properties - drop clock-names
.../devicetree/bindings/gpu/brcm,bcm-v3d.txt | 33 ---------- .../devicetree/bindings/gpu/brcm,bcm-v3d.yaml | 72 ++++++++++++++++++++++ 2 files changed, 72 insertions(+), 33 deletions(-) delete mode 100644 Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt create mode 100644 Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt deleted file mode 100644 index b2df82b..0000000 --- a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt +++ /dev/null @@ -1,33 +0,0 @@ -Broadcom V3D GPU - -Only the Broadcom V3D 3.x and newer GPUs are covered by this binding. -For V3D 2.x, see brcm,bcm-vc4.txt. - -Required properties: -- compatible: Should be "brcm,7268-v3d" or "brcm,7278-v3d" -- reg: Physical base addresses and lengths of the register areas -- reg-names: Names for the register areas. The "hub" and "core0" - register areas are always required. The "gca" register area - is required if the GCA cache controller is present. The - "bridge" register area is required if an external reset - controller is not present. -- interrupts: The interrupt numbers. The first interrupt is for the hub, - while the following interrupts are separate interrupt lines - for the cores (if they don't share the hub's interrupt). - See bindings/interrupt-controller/interrupts.txt - -Optional properties: -- clocks: The core clock the unit runs on -- resets: The reset line for v3d, if not using a mapping of the bridge - See bindings/reset/reset.txt - -v3d { - compatible = "brcm,7268-v3d"; - reg = <0xf1204000 0x100>, - <0xf1200000 0x4000>, - <0xf1208000 0x4000>, - <0xf1204100 0x100>; - reg-names = "bridge", "hub", "core0", "gca"; - interrupts = <0 78 4>, - <0 77 4>; -}; diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml new file mode 100644 index 0000000..3b543d4 --- /dev/null +++ b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpu/brcm,bcm-v3d.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Broadcom V3D GPU Bindings + +maintainers: + - Eric Anholt eric@anholt.net + - Nicolas Saenz Julienne nsaenzjulienne@suse.de + +properties: + $nodename: + pattern: '^gpu@[a-f0-9]+$' + + compatible: + enum: + - brcm,7268-v3d + - brcm,7278-v3d + + reg: + items: + - description: hub register (required) + - description: core0 register (required) + - description: GCA cache controller register (if GCA controller present) + - description: bridge register (if no external reset controller) + minItems: 2 + + reg-names: + items: + enum: [ hub, core0, bridge, gca ] + minItems: 2 + maxItems: 4 + + interrupts: + items: + - description: hub interrupt (required) + - description: core interrupts (if it doesn't share the hub's interrupt) + minItems: 1 + + clocks: + maxItems: 1 + + resets: + maxItems: 1 + + power-domains: + maxItems: 1 + +required: + - compatible + - reg + - reg-names + - interrupts + +additionalProperties: false + +examples: + - | + gpu@f1200000 { + compatible = "brcm,7268-v3d"; + reg = <0xf1204000 0x100>, + <0xf1200000 0x4000>, + <0xf1208000 0x4000>, + <0xf1204100 0x100>; + reg-names = "bridge", "hub", "core0", "gca"; + interrupts = <0 78 4>, + <0 77 4>; + }; + +...
Hi,
On Sat, Jan 09, 2021 at 11:50:32AM +0100, Stefan Wahren wrote:
This converts the v3d bindings to yaml format.
Signed-off-by: Stefan Wahren stefan.wahren@i2se.com
Changes in V3:
- drop redundant maxItems in case we already have items defined
- fix order of reg-names enum
- tag required items in description
- add reg-names to required properties
- drop clock-names
.../devicetree/bindings/gpu/brcm,bcm-v3d.txt | 33 ---------- .../devicetree/bindings/gpu/brcm,bcm-v3d.yaml | 72 ++++++++++++++++++++++ 2 files changed, 72 insertions(+), 33 deletions(-) delete mode 100644 Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt create mode 100644 Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt deleted file mode 100644 index b2df82b..0000000 --- a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt +++ /dev/null @@ -1,33 +0,0 @@ -Broadcom V3D GPU
-Only the Broadcom V3D 3.x and newer GPUs are covered by this binding. -For V3D 2.x, see brcm,bcm-vc4.txt.
-Required properties: -- compatible: Should be "brcm,7268-v3d" or "brcm,7278-v3d" -- reg: Physical base addresses and lengths of the register areas -- reg-names: Names for the register areas. The "hub" and "core0"
register areas are always required. The "gca" register area
is required if the GCA cache controller is present. The
"bridge" register area is required if an external reset
controller is not present.
-- interrupts: The interrupt numbers. The first interrupt is for the hub,
while the following interrupts are separate interrupt lines
for the cores (if they don't share the hub's interrupt).
See bindings/interrupt-controller/interrupts.txt
-Optional properties: -- clocks: The core clock the unit runs on -- resets: The reset line for v3d, if not using a mapping of the bridge
See bindings/reset/reset.txt
-v3d {
- compatible = "brcm,7268-v3d";
- reg = <0xf1204000 0x100>,
<0xf1200000 0x4000>,
<0xf1208000 0x4000>,
<0xf1204100 0x100>;
- reg-names = "bridge", "hub", "core0", "gca";
- interrupts = <0 78 4>,
<0 77 4>;
-}; diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml new file mode 100644 index 0000000..3b543d4 --- /dev/null +++ b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpu/brcm,bcm-v3d.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: Broadcom V3D GPU Bindings
+maintainers:
- Eric Anholt eric@anholt.net
- Nicolas Saenz Julienne nsaenzjulienne@suse.de
+properties:
- $nodename:
- pattern: '^gpu@[a-f0-9]+$'
- compatible:
- enum:
- brcm,7268-v3d
- brcm,7278-v3d
- reg:
- items:
- description: hub register (required)
- description: core0 register (required)
- description: GCA cache controller register (if GCA controller present)
- description: bridge register (if no external reset controller)
- minItems: 2
maxItems will be set to 2 in this case, while it would be 4 I guess?
Looks fine otherwise
Maxime
Hi Maxime,
Am 13.01.21 um 10:15 schrieb Maxime Ripard:
Hi,
On Sat, Jan 09, 2021 at 11:50:32AM +0100, Stefan Wahren wrote:
This converts the v3d bindings to yaml format.
Signed-off-by: Stefan Wahren stefan.wahren@i2se.com
...
diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml new file mode 100644 index 0000000..3b543d4 --- /dev/null +++ b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpu/brcm,bcm-v3d.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: Broadcom V3D GPU Bindings
+maintainers:
- Eric Anholt eric@anholt.net
- Nicolas Saenz Julienne nsaenzjulienne@suse.de
+properties:
- $nodename:
- pattern: '^gpu@[a-f0-9]+$'
- compatible:
- enum:
- brcm,7268-v3d
- brcm,7278-v3d
- reg:
- items:
- description: hub register (required)
- description: core0 register (required)
- description: GCA cache controller register (if GCA controller present)
- description: bridge register (if no external reset controller)
- minItems: 2
maxItems will be set to 2 in this case, while it would be 4 I guess?
This confuses me. Based on this patch [1] by Rob, i would assume that maxItems is derived from item list length.
[1] - https://lists.freedesktop.org/archives/dri-devel/2020-December/292309.html
Looks fine otherwise
Maxime
linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Wed, Jan 13, 2021 at 01:53:38PM +0100, Stefan Wahren wrote:
Hi Maxime,
Am 13.01.21 um 10:15 schrieb Maxime Ripard:
Hi,
On Sat, Jan 09, 2021 at 11:50:32AM +0100, Stefan Wahren wrote:
This converts the v3d bindings to yaml format.
Signed-off-by: Stefan Wahren stefan.wahren@i2se.com
...
diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml new file mode 100644 index 0000000..3b543d4 --- /dev/null +++ b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpu/brcm,bcm-v3d.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: Broadcom V3D GPU Bindings
+maintainers:
- Eric Anholt eric@anholt.net
- Nicolas Saenz Julienne nsaenzjulienne@suse.de
+properties:
- $nodename:
- pattern: '^gpu@[a-f0-9]+$'
- compatible:
- enum:
- brcm,7268-v3d
- brcm,7278-v3d
- reg:
- items:
- description: hub register (required)
- description: core0 register (required)
- description: GCA cache controller register (if GCA controller present)
- description: bridge register (if no external reset controller)
- minItems: 2
maxItems will be set to 2 in this case, while it would be 4 I guess?
This confuses me. Based on this patch [1] by Rob, i would assume that maxItems is derived from item list length.
[1] - https://lists.freedesktop.org/archives/dri-devel/2020-December/292309.html
Yeah, you're right
My understanding was that maxItems was set to whatever minItems was if maxItems was missing, but dt-validate also checks for whether it's a list and will fill it like you said:
https://github.com/devicetree-org/dt-schema/blob/master/dtschema/lib.py#L258
Maxime
On Sat, Jan 09, 2021 at 11:50:32AM +0100, Stefan Wahren wrote:
This converts the v3d bindings to yaml format.
Signed-off-by: Stefan Wahren stefan.wahren@i2se.com
Changes in V3:
- drop redundant maxItems in case we already have items defined
- fix order of reg-names enum
- tag required items in description
- add reg-names to required properties
- drop clock-names
.../devicetree/bindings/gpu/brcm,bcm-v3d.txt | 33 ---------- .../devicetree/bindings/gpu/brcm,bcm-v3d.yaml | 72 ++++++++++++++++++++++ 2 files changed, 72 insertions(+), 33 deletions(-) delete mode 100644 Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt create mode 100644 Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt deleted file mode 100644 index b2df82b..0000000 --- a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt +++ /dev/null @@ -1,33 +0,0 @@ -Broadcom V3D GPU
-Only the Broadcom V3D 3.x and newer GPUs are covered by this binding. -For V3D 2.x, see brcm,bcm-vc4.txt.
-Required properties: -- compatible: Should be "brcm,7268-v3d" or "brcm,7278-v3d" -- reg: Physical base addresses and lengths of the register areas -- reg-names: Names for the register areas. The "hub" and "core0"
register areas are always required. The "gca" register area
is required if the GCA cache controller is present. The
"bridge" register area is required if an external reset
controller is not present.
-- interrupts: The interrupt numbers. The first interrupt is for the hub,
while the following interrupts are separate interrupt lines
for the cores (if they don't share the hub's interrupt).
See bindings/interrupt-controller/interrupts.txt
-Optional properties: -- clocks: The core clock the unit runs on -- resets: The reset line for v3d, if not using a mapping of the bridge
See bindings/reset/reset.txt
-v3d {
- compatible = "brcm,7268-v3d";
- reg = <0xf1204000 0x100>,
<0xf1200000 0x4000>,
<0xf1208000 0x4000>,
<0xf1204100 0x100>;
- reg-names = "bridge", "hub", "core0", "gca";
- interrupts = <0 78 4>,
<0 77 4>;
-}; diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml new file mode 100644 index 0000000..3b543d4 --- /dev/null +++ b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpu/brcm,bcm-v3d.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: Broadcom V3D GPU Bindings
+maintainers:
- Eric Anholt eric@anholt.net
- Nicolas Saenz Julienne nsaenzjulienne@suse.de
+properties:
- $nodename:
- pattern: '^gpu@[a-f0-9]+$'
- compatible:
- enum:
- brcm,7268-v3d
- brcm,7278-v3d
- reg:
- items:
- description: hub register (required)
- description: core0 register (required)
- description: GCA cache controller register (if GCA controller present)
- description: bridge register (if no external reset controller)
- minItems: 2
- reg-names:
- items:
enum: [ hub, core0, bridge, gca ]
Need to define the order at least for the required ones:
items: - const: hub - const: core0 - enum: [ bridge, gca ] - enum: [ bridge, gca ]
If you have dts files that are different, then fix them.
- minItems: 2
- maxItems: 4
- interrupts:
- items:
- description: hub interrupt (required)
- description: core interrupts (if it doesn't share the hub's interrupt)
- minItems: 1
- clocks:
- maxItems: 1
- resets:
- maxItems: 1
- power-domains:
- maxItems: 1
+required:
- compatible
- reg
- reg-names
- interrupts
+additionalProperties: false
+examples:
- |
- gpu@f1200000 {
compatible = "brcm,7268-v3d";
reg = <0xf1204000 0x100>,
<0xf1200000 0x4000>,
<0xf1208000 0x4000>,
<0xf1204100 0x100>;
reg-names = "bridge", "hub", "core0", "gca";
interrupts = <0 78 4>,
<0 77 4>;
- };
+...
2.7.4
dri-devel@lists.freedesktop.org