diff mbox series

[v2,09/13] dt-bindings: pinctrl: include common schema in GPIO controllers

Message ID 20200917165301.23100-10-krzk@kernel.org
State New
Headers show
Series gpio: add common dtschema | expand

Commit Message

Krzysztof Kozlowski Sept. 17, 2020, 4:52 p.m. UTC
Include the common GPIO schema in GPIO controllers to be sure all common
properties are properly validated.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

---

Changes since v1:
1. New patch
---
 .../devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml      | 3 +++
 .../bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml          | 1 +
 .../devicetree/bindings/pinctrl/cirrus,lochnagar.yaml          | 3 +++
 Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml | 3 +++
 .../devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml   | 3 +++
 Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml  | 3 +++
 .../devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml      | 3 +++
 .../devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml      | 3 +++
 .../devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml       | 3 +++
 .../devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml      | 3 +++
 .../devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml          | 3 +++
 11 files changed, 31 insertions(+)

Comments

Laurent Pinchart Sept. 17, 2020, 8:12 p.m. UTC | #1
Hi Krzysztof,

Thank you for the patch.

On Thu, Sep 17, 2020 at 06:52:57PM +0200, Krzysztof Kozlowski wrote:
> Include the common GPIO schema in GPIO controllers to be sure all common

> properties are properly validated.


Shouldn't we delete the properties that are now redundant from these
schemas ?

> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

> 

> ---

> 

> Changes since v1:

> 1. New patch

> ---

>  .../devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml      | 3 +++

>  .../bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml          | 1 +

>  .../devicetree/bindings/pinctrl/cirrus,lochnagar.yaml          | 3 +++

>  Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml | 3 +++

>  .../devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml   | 3 +++

>  Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml  | 3 +++

>  .../devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml      | 3 +++

>  .../devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml      | 3 +++

>  .../devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml       | 3 +++

>  .../devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml      | 3 +++

>  .../devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml          | 3 +++

>  11 files changed, 31 insertions(+)

> 

> diff --git a/Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml

> index 33391d30c00c..51bfc214bba6 100644

> --- a/Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml

> @@ -15,6 +15,9 @@ description: |

>    GPIO function selection & GPIO attributes configuration. Please refer to

>    pinctrl-bindings.txt in this directory for common binding part and usage.

>  

> +allOf:

> +  - $ref: /schemas/gpio/gpio-common.yaml#

> +

>  properties:

>    compatible:

>      const: actions,s500-pinctrl

> diff --git a/Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml

> index 7556be6e2754..55662f8d1f94 100644

> --- a/Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml

> @@ -143,6 +143,7 @@ allOf:

>    # boards are defining it at the moment so it would generate a lot of

>    # warnings.

>  

> +  - $ref: /schemas/gpio/gpio-common.yaml#

>    - if:

>        properties:

>          compatible:

> diff --git a/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml b/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml

> index 420d74856032..ed478b0ed4cc 100644

> --- a/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml

> @@ -31,6 +31,9 @@ description: |

>    This binding must be part of the Lochnagar MFD binding:

>      [4] ../mfd/cirrus,lochnagar.yaml

>  

> +allOf:

> +  - $ref: /schemas/gpio/gpio-common.yaml#

> +

>  properties:

>    compatible:

>      enum:

> diff --git a/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml

> index 44c04d11ae4c..ffa64832b4f9 100644

> --- a/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml

> @@ -59,6 +59,9 @@ properties:

>  patternProperties:

>    "^gpio@[0-9]$":

>      type: object

> +    allOf:

> +      - $ref: /schemas/gpio/gpio-common.yaml#

> +

>      properties:

>        compatible:

>          enum:

> diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml

> index 152c151c27ad..7d0a4cb96f39 100644

> --- a/Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml

> @@ -14,6 +14,9 @@ description: |+

>    required property:

>    - compatible: "syscon"

>  

> +allOf:

> +  - $ref: /schemas/gpio/gpio-common.yaml#

> +

>  properties:

>    compatible:

>      const: mediatek,mt6779-pinctrl

> diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml b/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml

> index 5556def6b99b..bc8bc0ac1926 100644

> --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml

> @@ -12,6 +12,9 @@ maintainers:

>  description: |

>    The Mediatek's Pin controller is used to control SoC pins.

>  

> +allOf:

> +  - $ref: /schemas/gpio/gpio-common.yaml#

> +

>  properties:

>    compatible:

>      const: mediatek,mt8192-pinctrl

> diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml

> index c64c93206817..22a6b80b4c0e 100644

> --- a/Documentation/devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml

> @@ -13,6 +13,9 @@ description: |

>    This binding describes the Top Level Mode Multiplexer block found in the

>    IPQ6018 platform.

>  

> +allOf:

> +  - $ref: /schemas/gpio/gpio-common.yaml#

> +

>  properties:

>    compatible:

>      const: qcom,ipq6018-pinctrl

> diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml

> index 1f0f5757f9e1..9855d859fe61 100644

> --- a/Documentation/devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml

> @@ -13,6 +13,9 @@ description: |

>    This binding describes the Top Level Mode Multiplexer block found in the

>    MSM8226 platform.

>  

> +allOf:

> +  - $ref: /schemas/gpio/gpio-common.yaml#

> +

>  properties:

>    compatible:

>      const: qcom,msm8226-pinctrl

> diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml

> index 8508c57522fd..e5757b6ced40 100644

> --- a/Documentation/devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml

> @@ -13,6 +13,9 @@ description: |

>    This binding describes the Top Level Mode Multiplexer block found in the

>    SM8250 platform.

>  

> +allOf:

> +  - $ref: /schemas/gpio/gpio-common.yaml#

> +

>  properties:

>    compatible:

>      const: qcom,sm8250-pinctrl

> diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml

> index b7911a994f3a..4d7bf4340262 100644

> --- a/Documentation/devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml

> @@ -10,6 +10,9 @@ maintainers:

>    - Chris Brandt <chris.brandt@renesas.com>

>    - Geert Uytterhoeven <geert+renesas@glider.be>

>  

> +allOf:

> +  - $ref: /schemas/gpio/gpio-common.yaml#

> +

>  description:

>    The Renesas SoCs of the RZ/A2 series feature a combined Pin and GPIO

>    controller.

> diff --git a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml

> index 72877544ca78..28b861362ba0 100644

> --- a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml

> +++ b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml

> @@ -56,6 +56,9 @@ properties:

>  patternProperties:

>    '^gpio@[0-9a-f]*$':

>      type: object

> +    allOf:

> +      - $ref: /schemas/gpio/gpio-common.yaml#

> +

>      properties:

>        gpio-controller: true

>        '#gpio-cells':


-- 
Regards,

Laurent Pinchart
Krzysztof Kozlowski Sept. 18, 2020, 8:19 a.m. UTC | #2
On Thu, 17 Sep 2020 at 22:12, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Krzysztof,
>
> Thank you for the patch.
>
> On Thu, Sep 17, 2020 at 06:52:57PM +0200, Krzysztof Kozlowski wrote:
> > Include the common GPIO schema in GPIO controllers to be sure all common
> > properties are properly validated.
>
> Shouldn't we delete the properties that are now redundant from these
> schemas ?

Good point. However not with "additionalPropeties: false". Schema
requires all properties to be mentioned. I would need to use
"unevaluatedProperties: false" in each file.

What is preferred?

Best regards,
Krzysztof
Charles Keepax Sept. 21, 2020, 9:55 a.m. UTC | #3
On Thu, Sep 17, 2020 at 06:52:57PM +0200, Krzysztof Kozlowski wrote:
> Include the common GPIO schema in GPIO controllers to be sure all common
> properties are properly validated.
> 
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> 
> ---

For the Cirrus bits:

Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml
index 33391d30c00c..51bfc214bba6 100644
--- a/Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml
@@ -15,6 +15,9 @@  description: |
   GPIO function selection & GPIO attributes configuration. Please refer to
   pinctrl-bindings.txt in this directory for common binding part and usage.
 
+allOf:
+  - $ref: /schemas/gpio/gpio-common.yaml#
+
 properties:
   compatible:
     const: actions,s500-pinctrl
diff --git a/Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml
index 7556be6e2754..55662f8d1f94 100644
--- a/Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml
@@ -143,6 +143,7 @@  allOf:
   # boards are defining it at the moment so it would generate a lot of
   # warnings.
 
+  - $ref: /schemas/gpio/gpio-common.yaml#
   - if:
       properties:
         compatible:
diff --git a/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml b/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml
index 420d74856032..ed478b0ed4cc 100644
--- a/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml
@@ -31,6 +31,9 @@  description: |
   This binding must be part of the Lochnagar MFD binding:
     [4] ../mfd/cirrus,lochnagar.yaml
 
+allOf:
+  - $ref: /schemas/gpio/gpio-common.yaml#
+
 properties:
   compatible:
     enum:
diff --git a/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml
index 44c04d11ae4c..ffa64832b4f9 100644
--- a/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.yaml
@@ -59,6 +59,9 @@  properties:
 patternProperties:
   "^gpio@[0-9]$":
     type: object
+    allOf:
+      - $ref: /schemas/gpio/gpio-common.yaml#
+
     properties:
       compatible:
         enum:
diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml
index 152c151c27ad..7d0a4cb96f39 100644
--- a/Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml
@@ -14,6 +14,9 @@  description: |+
   required property:
   - compatible: "syscon"
 
+allOf:
+  - $ref: /schemas/gpio/gpio-common.yaml#
+
 properties:
   compatible:
     const: mediatek,mt6779-pinctrl
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml b/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml
index 5556def6b99b..bc8bc0ac1926 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml
@@ -12,6 +12,9 @@  maintainers:
 description: |
   The Mediatek's Pin controller is used to control SoC pins.
 
+allOf:
+  - $ref: /schemas/gpio/gpio-common.yaml#
+
 properties:
   compatible:
     const: mediatek,mt8192-pinctrl
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml
index c64c93206817..22a6b80b4c0e 100644
--- a/Documentation/devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,ipq6018-pinctrl.yaml
@@ -13,6 +13,9 @@  description: |
   This binding describes the Top Level Mode Multiplexer block found in the
   IPQ6018 platform.
 
+allOf:
+  - $ref: /schemas/gpio/gpio-common.yaml#
+
 properties:
   compatible:
     const: qcom,ipq6018-pinctrl
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml
index 1f0f5757f9e1..9855d859fe61 100644
--- a/Documentation/devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,msm8226-pinctrl.yaml
@@ -13,6 +13,9 @@  description: |
   This binding describes the Top Level Mode Multiplexer block found in the
   MSM8226 platform.
 
+allOf:
+  - $ref: /schemas/gpio/gpio-common.yaml#
+
 properties:
   compatible:
     const: qcom,msm8226-pinctrl
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml
index 8508c57522fd..e5757b6ced40 100644
--- a/Documentation/devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,sm8250-pinctrl.yaml
@@ -13,6 +13,9 @@  description: |
   This binding describes the Top Level Mode Multiplexer block found in the
   SM8250 platform.
 
+allOf:
+  - $ref: /schemas/gpio/gpio-common.yaml#
+
 properties:
   compatible:
     const: qcom,sm8250-pinctrl
diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml
index b7911a994f3a..4d7bf4340262 100644
--- a/Documentation/devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/renesas,rza2-pinctrl.yaml
@@ -10,6 +10,9 @@  maintainers:
   - Chris Brandt <chris.brandt@renesas.com>
   - Geert Uytterhoeven <geert+renesas@glider.be>
 
+allOf:
+  - $ref: /schemas/gpio/gpio-common.yaml#
+
 description:
   The Renesas SoCs of the RZ/A2 series feature a combined Pin and GPIO
   controller.
diff --git a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
index 72877544ca78..28b861362ba0 100644
--- a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
@@ -56,6 +56,9 @@  properties:
 patternProperties:
   '^gpio@[0-9a-f]*$':
     type: object
+    allOf:
+      - $ref: /schemas/gpio/gpio-common.yaml#
+
     properties:
       gpio-controller: true
       '#gpio-cells':