Squash warnings such as:
```
arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-galaxy100.dtb: /ahb/apb@1e600000/gpio@1e780000: failed to match any schema with compatible: ['aspeed,ast2400-gpio']
```
Signed-off-by: Andrew Jeffery <[email protected]>
---
v2: Address feedback from Krzysztof:
https://lore.kernel.org/all/[email protected]/
v1: https://lore.kernel.org/all/[email protected]/
.../bindings/gpio/aspeed,ast2400-gpio.yaml | 73 +++++++++++++++++++
.../devicetree/bindings/gpio/gpio-aspeed.txt | 39 ----------
2 files changed, 73 insertions(+), 39 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-aspeed.txt
diff --git a/Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.yaml b/Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.yaml
new file mode 100644
index 000000000000..74d376567dfc
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.yaml
@@ -0,0 +1,73 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/aspeed,ast2400-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Aspeed GPIO controller
+
+maintainers:
+ - Andrew Jeffery <[email protected]>
+
+properties:
+ compatible:
+ enum:
+ - aspeed,ast2400-gpio
+ - aspeed,ast2500-gpio
+ - aspeed,ast2600-gpio
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+ description: The clock to use for debounce timings
+
+ "#gpio-cells":
+ const: 2
+
+ gpio-controller: true
+ gpio-line-names: true
+ gpio-ranges: true
+
+ interrupts:
+ maxItems: 1
+
+ interrupt-controller: true
+
+ "#interrupt-cells":
+ const: 2
+
+ ngpios: true
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - interrupt-controller
+ - "#interrupt-cells"
+ - "#gpio-cells"
+ - gpio-controller
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: aspeed,ast2600-gpio
+ then:
+ required:
+ - ngpios
+
+additionalProperties: false
+
+examples:
+ - |
+ gpio@1e780000 {
+ compatible = "aspeed,ast2400-gpio";
+ reg = <0x1e780000 0x1000>;
+ interrupts = <20>;
+ interrupt-controller;
+ #gpio-cells = <2>;
+ gpio-controller;
+ };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-aspeed.txt b/Documentation/devicetree/bindings/gpio/gpio-aspeed.txt
deleted file mode 100644
index b2033fc3a71a..000000000000
--- a/Documentation/devicetree/bindings/gpio/gpio-aspeed.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-Aspeed GPIO controller Device Tree Bindings
--------------------------------------------
-
-Required properties:
-- compatible : Either "aspeed,ast2400-gpio", "aspeed,ast2500-gpio",
- or "aspeed,ast2600-gpio".
-
-- #gpio-cells : Should be two
- - First cell is the GPIO line number
- - Second cell is used to specify optional
- parameters (unused)
-
-- reg : Address and length of the register set for the device
-- gpio-controller : Marks the device node as a GPIO controller.
-- interrupts : Interrupt specifier (see interrupt bindings for
- details)
-- interrupt-controller : Mark the GPIO controller as an interrupt-controller
-
-Optional properties:
-
-- clocks : A phandle to the clock to use for debounce timings
-- ngpios : Number of GPIOs controlled by this controller. Should be set
- when there are multiple GPIO controllers on a SoC (ast2600).
-
-The gpio and interrupt properties are further described in their respective
-bindings documentation:
-
-- Documentation/devicetree/bindings/gpio/gpio.txt
-- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
-
- Example:
- gpio@1e780000 {
- #gpio-cells = <2>;
- compatible = "aspeed,ast2400-gpio";
- gpio-controller;
- interrupts = <20>;
- reg = <0x1e780000 0x1000>;
- interrupt-controller;
- };
--
2.39.2
On Mon, 26 Feb 2024 13:49:51 +1030, Andrew Jeffery wrote:
> Squash warnings such as:
>
> ```
> arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-galaxy100.dtb: /ahb/apb@1e600000/gpio@1e780000: failed to match any schema with compatible: ['aspeed,ast2400-gpio']
> ```
>
> Signed-off-by: Andrew Jeffery <[email protected]>
> ---
> v2: Address feedback from Krzysztof:
> https://lore.kernel.org/all/[email protected]/
>
> v1: https://lore.kernel.org/all/[email protected]/
>
> .../bindings/gpio/aspeed,ast2400-gpio.yaml | 73 +++++++++++++++++++
> .../devicetree/bindings/gpio/gpio-aspeed.txt | 39 ----------
> 2 files changed, 73 insertions(+), 39 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.yaml
> delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-aspeed.txt
>
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.example.dtb: gpio@1e780000: '#interrupt-cells' is a required property
from schema $id: http://devicetree.org/schemas/gpio/aspeed,ast2400-gpio.yaml#
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/[email protected]
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
On Mon, Feb 26, 2024 at 01:49:51PM +1030, Andrew Jeffery wrote:
> Squash warnings such as:
>
> ```
> arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-galaxy100.dtb: /ahb/apb@1e600000/gpio@1e780000: failed to match any schema with compatible: ['aspeed,ast2400-gpio']
> ```
>
> Signed-off-by: Andrew Jeffery <[email protected]>
> ---
> v2: Address feedback from Krzysztof:
> https://lore.kernel.org/all/[email protected]/
>
> v1: https://lore.kernel.org/all/[email protected]/
>
> .../bindings/gpio/aspeed,ast2400-gpio.yaml | 73 +++++++++++++++++++
> .../devicetree/bindings/gpio/gpio-aspeed.txt | 39 ----------
> 2 files changed, 73 insertions(+), 39 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.yaml
> delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-aspeed.txt
>
> diff --git a/Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.yaml b/Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.yaml
> new file mode 100644
> index 000000000000..74d376567dfc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpio/aspeed,ast2400-gpio.yaml
> @@ -0,0 +1,73 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/gpio/aspeed,ast2400-gpio.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Aspeed GPIO controller
> +
> +maintainers:
> + - Andrew Jeffery <[email protected]>
> +
> +properties:
> + compatible:
> + enum:
> + - aspeed,ast2400-gpio
> + - aspeed,ast2500-gpio
> + - aspeed,ast2600-gpio
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> + description: The clock to use for debounce timings
The original binding does not require this clock, but I can't help but
wonder if it should be required. I suspect that this peripheral does
not actually work if a clock is not provided to it. Whether or not the
rate of the clock is then used by the driver for debounce timings or
whatever is a different question.
Otherwise though, this looks fine to me.
Reviewed-by: Conor Dooley <[email protected]>
Cheers,
Conor.
> + "#gpio-cells":
> + const: 2
> +
> + gpio-controller: true
> + gpio-line-names: true
> + gpio-ranges: true
> +
> + interrupts:
> + maxItems: 1
> +
> + interrupt-controller: true
> +
> + "#interrupt-cells":
> + const: 2
> +
> + ngpios: true
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - interrupt-controller
> + - "#interrupt-cells"
> + - "#gpio-cells"
> + - gpio-controller
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: aspeed,ast2600-gpio
> + then:
> + required:
> + - ngpios
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + gpio@1e780000 {
> + compatible = "aspeed,ast2400-gpio";
> + reg = <0x1e780000 0x1000>;
> + interrupts = <20>;
> + interrupt-controller;
> + #gpio-cells = <2>;
> + gpio-controller;
> + };
> diff --git a/Documentation/devicetree/bindings/gpio/gpio-aspeed.txt b/Documentation/devicetree/bindings/gpio/gpio-aspeed.txt
> deleted file mode 100644
> index b2033fc3a71a..000000000000
> --- a/Documentation/devicetree/bindings/gpio/gpio-aspeed.txt
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -Aspeed GPIO controller Device Tree Bindings
> --------------------------------------------
> -
> -Required properties:
> -- compatible : Either "aspeed,ast2400-gpio", "aspeed,ast2500-gpio",
> - or "aspeed,ast2600-gpio".
> -
> -- #gpio-cells : Should be two
> - - First cell is the GPIO line number
> - - Second cell is used to specify optional
> - parameters (unused)
> -
> -- reg : Address and length of the register set for the device
> -- gpio-controller : Marks the device node as a GPIO controller.
> -- interrupts : Interrupt specifier (see interrupt bindings for
> - details)
> -- interrupt-controller : Mark the GPIO controller as an interrupt-controller
> -
> -Optional properties:
> -
> -- clocks : A phandle to the clock to use for debounce timings
> -- ngpios : Number of GPIOs controlled by this controller. Should be set
> - when there are multiple GPIO controllers on a SoC (ast2600).
> -
> -The gpio and interrupt properties are further described in their respective
> -bindings documentation:
> -
> -- Documentation/devicetree/bindings/gpio/gpio.txt
> -- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> -
> - Example:
> - gpio@1e780000 {
> - #gpio-cells = <2>;
> - compatible = "aspeed,ast2400-gpio";
> - gpio-controller;
> - interrupts = <20>;
> - reg = <0x1e780000 0x1000>;
> - interrupt-controller;
> - };
> --
> 2.39.2
>