diff mbox series

[v2,1/1] spi/panel: dt-bindings: drop CPHA and CPOL from common properties

Message ID 20220722191539.90641-2-krzysztof.kozlowski@linaro.org
State Accepted
Commit 233363aba72ac638dda6838f8e817c46d36c2431
Headers show
Series dt-bindings: spi/display/panel: drop SPI CPHA and CPOL | expand

Commit Message

Krzysztof Kozlowski July 22, 2022, 7:15 p.m. UTC
The spi-cpha and spi-cpol properties are device specific and should be
accepted only if device really needs them.  Drop them from common
spi-peripheral-props.yaml schema, mention in few panel drivers which use
them and include instead in the SPI controller bindings.  The controller
bindings will provide CPHA/CPOL type validation and one place for
description.  Each device schema must list the properties if they are
applicable.

Suggested-by: Jonathan Cameron <jic23@kernel.org>
Suggested-by: Rob Herring <robh@kernel.org>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../bindings/display/panel/lgphilips,lb035q02.yaml    |  3 +++
 .../bindings/display/panel/samsung,ld9040.yaml        |  3 +++
 .../bindings/display/panel/sitronix,st7789v.yaml      |  3 +++
 .../devicetree/bindings/display/panel/tpo,td.yaml     |  3 +++
 .../devicetree/bindings/spi/spi-controller.yaml       | 11 +++++++++++
 .../devicetree/bindings/spi/spi-peripheral-props.yaml | 10 ----------
 6 files changed, 23 insertions(+), 10 deletions(-)

Comments

Sam Ravnborg July 22, 2022, 7:45 p.m. UTC | #1
Hi Krzysztof

On Fri, Jul 22, 2022 at 09:15:39PM +0200, Krzysztof Kozlowski wrote:
> The spi-cpha and spi-cpol properties are device specific and should be
> accepted only if device really needs them.  Drop them from common
> spi-peripheral-props.yaml schema, mention in few panel drivers which use
> themi

    "and include instead in the SPI controller bindings."

I cannot see you do this in the touched bindings.

So I cannot see how for example samsung,ld9040.yaml picks up
spi-controller.yaml and thus it no longer knows the spi-cpha and spi-cpol
properties.

Maybe I missed something?

	Sam
Krzysztof Kozlowski July 23, 2022, 6:10 p.m. UTC | #2
On 22/07/2022 21:45, Sam Ravnborg wrote:
> Hi Krzysztof
> 
> On Fri, Jul 22, 2022 at 09:15:39PM +0200, Krzysztof Kozlowski wrote:
>> The spi-cpha and spi-cpol properties are device specific and should be
>> accepted only if device really needs them.  Drop them from common
>> spi-peripheral-props.yaml schema, mention in few panel drivers which use
>> themi
> 
>     "and include instead in the SPI controller bindings."
> 
> I cannot see you do this in the touched bindings.

Yep, because you always have two schemas being in play. One is SPI
controller and other is the device (SPI slave).

> So I cannot see how for example samsung,ld9040.yaml picks up
> spi-controller.yaml and thus it no longer knows the spi-cpha and spi-cpol
> properties.

ld9040 is not spi-controller, but a SPI slave device, AFAIU. It will be
therefore a child of some SPI controller, thus the SPI controller
schema, which includes spi-controller.yaml, will validate the type of
spi-cpha/cpol properties.


Best regards,
Krzysztof
Rob Herring (Arm) July 25, 2022, 11:14 p.m. UTC | #3
On Fri, 22 Jul 2022 21:15:39 +0200, Krzysztof Kozlowski wrote:
> The spi-cpha and spi-cpol properties are device specific and should be
> accepted only if device really needs them.  Drop them from common
> spi-peripheral-props.yaml schema, mention in few panel drivers which use
> them and include instead in the SPI controller bindings.  The controller
> bindings will provide CPHA/CPOL type validation and one place for
> description.  Each device schema must list the properties if they are
> applicable.
> 
> Suggested-by: Jonathan Cameron <jic23@kernel.org>
> Suggested-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  .../bindings/display/panel/lgphilips,lb035q02.yaml    |  3 +++
>  .../bindings/display/panel/samsung,ld9040.yaml        |  3 +++
>  .../bindings/display/panel/sitronix,st7789v.yaml      |  3 +++
>  .../devicetree/bindings/display/panel/tpo,td.yaml     |  3 +++
>  .../devicetree/bindings/spi/spi-controller.yaml       | 11 +++++++++++
>  .../devicetree/bindings/spi/spi-peripheral-props.yaml | 10 ----------
>  6 files changed, 23 insertions(+), 10 deletions(-)
> 

Reviewed-by: Rob Herring <robh@kernel.org>

Unless Mark doesn't want to pick this up.
Jonathan Cameron July 31, 2022, 10:59 a.m. UTC | #4
On Fri, 22 Jul 2022 21:15:39 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> The spi-cpha and spi-cpol properties are device specific and should be
> accepted only if device really needs them.  Drop them from common
> spi-peripheral-props.yaml schema, mention in few panel drivers which use
> them and include instead in the SPI controller bindings.  The controller
> bindings will provide CPHA/CPOL type validation and one place for
> description.  Each device schema must list the properties if they are
> applicable.
> 
> Suggested-by: Jonathan Cameron <jic23@kernel.org>
> Suggested-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

This seems like a good solution to me.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> ---
>  .../bindings/display/panel/lgphilips,lb035q02.yaml    |  3 +++
>  .../bindings/display/panel/samsung,ld9040.yaml        |  3 +++
>  .../bindings/display/panel/sitronix,st7789v.yaml      |  3 +++
>  .../devicetree/bindings/display/panel/tpo,td.yaml     |  3 +++
>  .../devicetree/bindings/spi/spi-controller.yaml       | 11 +++++++++++
>  .../devicetree/bindings/spi/spi-peripheral-props.yaml | 10 ----------
>  6 files changed, 23 insertions(+), 10 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/lgphilips,lb035q02.yaml b/Documentation/devicetree/bindings/display/panel/lgphilips,lb035q02.yaml
> index 5e4e0e552c2f..628c4b898111 100644
> --- a/Documentation/devicetree/bindings/display/panel/lgphilips,lb035q02.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/lgphilips,lb035q02.yaml
> @@ -21,6 +21,9 @@ properties:
>    enable-gpios: true
>    port: true
>  
> +  spi-cpha: true
> +  spi-cpol: true
> +
>  required:
>    - compatible
>    - enable-gpios
> diff --git a/Documentation/devicetree/bindings/display/panel/samsung,ld9040.yaml b/Documentation/devicetree/bindings/display/panel/samsung,ld9040.yaml
> index d525165d6d63..c0fabeb38628 100644
> --- a/Documentation/devicetree/bindings/display/panel/samsung,ld9040.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/samsung,ld9040.yaml
> @@ -42,6 +42,9 @@ properties:
>    panel-height-mm:
>      description: physical panel height [mm]
>  
> +  spi-cpha: true
> +  spi-cpol: true
> +
>  required:
>    - compatible
>    - reg
> diff --git a/Documentation/devicetree/bindings/display/panel/sitronix,st7789v.yaml b/Documentation/devicetree/bindings/display/panel/sitronix,st7789v.yaml
> index 9e1d707c2ace..d984b59daa4a 100644
> --- a/Documentation/devicetree/bindings/display/panel/sitronix,st7789v.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/sitronix,st7789v.yaml
> @@ -23,6 +23,9 @@ properties:
>    backlight: true
>    port: true
>  
> +  spi-cpha: true
> +  spi-cpol: true
> +
>  required:
>    - compatible
>    - reg
> diff --git a/Documentation/devicetree/bindings/display/panel/tpo,td.yaml b/Documentation/devicetree/bindings/display/panel/tpo,td.yaml
> index f902a9d74141..e8c8ee8d7c88 100644
> --- a/Documentation/devicetree/bindings/display/panel/tpo,td.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/tpo,td.yaml
> @@ -28,6 +28,9 @@ properties:
>    backlight: true
>    port: true
>  
> +  spi-cpha: true
> +  spi-cpol: true
> +
>  required:
>    - compatible
>    - port
> diff --git a/Documentation/devicetree/bindings/spi/spi-controller.yaml b/Documentation/devicetree/bindings/spi/spi-controller.yaml
> index 678cee68b52a..655713fba7e2 100644
> --- a/Documentation/devicetree/bindings/spi/spi-controller.yaml
> +++ b/Documentation/devicetree/bindings/spi/spi-controller.yaml
> @@ -95,6 +95,17 @@ patternProperties:
>      type: object
>      $ref: spi-peripheral-props.yaml
>  
> +    properties:
> +      spi-cpha:
> +        $ref: /schemas/types.yaml#/definitions/flag
> +        description:
> +          The device requires shifted clock phase (CPHA) mode.
> +
> +      spi-cpol:
> +        $ref: /schemas/types.yaml#/definitions/flag
> +        description:
> +          The device requires inverse clock polarity (CPOL) mode.
> +
>      required:
>        - compatible
>        - reg
> diff --git a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
> index 5e32928c4fc3..2349f83c07f3 100644
> --- a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
> +++ b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
> @@ -34,16 +34,6 @@ properties:
>      description:
>        The device requires 3-wire mode.
>  
> -  spi-cpha:
> -    $ref: /schemas/types.yaml#/definitions/flag
> -    description:
> -      The device requires shifted clock phase (CPHA) mode.
> -
> -  spi-cpol:
> -    $ref: /schemas/types.yaml#/definitions/flag
> -    description:
> -      The device requires inverse clock polarity (CPOL) mode.
> -
>    spi-cs-high:
>      $ref: /schemas/types.yaml#/definitions/flag
>      description:
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/panel/lgphilips,lb035q02.yaml b/Documentation/devicetree/bindings/display/panel/lgphilips,lb035q02.yaml
index 5e4e0e552c2f..628c4b898111 100644
--- a/Documentation/devicetree/bindings/display/panel/lgphilips,lb035q02.yaml
+++ b/Documentation/devicetree/bindings/display/panel/lgphilips,lb035q02.yaml
@@ -21,6 +21,9 @@  properties:
   enable-gpios: true
   port: true
 
+  spi-cpha: true
+  spi-cpol: true
+
 required:
   - compatible
   - enable-gpios
diff --git a/Documentation/devicetree/bindings/display/panel/samsung,ld9040.yaml b/Documentation/devicetree/bindings/display/panel/samsung,ld9040.yaml
index d525165d6d63..c0fabeb38628 100644
--- a/Documentation/devicetree/bindings/display/panel/samsung,ld9040.yaml
+++ b/Documentation/devicetree/bindings/display/panel/samsung,ld9040.yaml
@@ -42,6 +42,9 @@  properties:
   panel-height-mm:
     description: physical panel height [mm]
 
+  spi-cpha: true
+  spi-cpol: true
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/display/panel/sitronix,st7789v.yaml b/Documentation/devicetree/bindings/display/panel/sitronix,st7789v.yaml
index 9e1d707c2ace..d984b59daa4a 100644
--- a/Documentation/devicetree/bindings/display/panel/sitronix,st7789v.yaml
+++ b/Documentation/devicetree/bindings/display/panel/sitronix,st7789v.yaml
@@ -23,6 +23,9 @@  properties:
   backlight: true
   port: true
 
+  spi-cpha: true
+  spi-cpol: true
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/display/panel/tpo,td.yaml b/Documentation/devicetree/bindings/display/panel/tpo,td.yaml
index f902a9d74141..e8c8ee8d7c88 100644
--- a/Documentation/devicetree/bindings/display/panel/tpo,td.yaml
+++ b/Documentation/devicetree/bindings/display/panel/tpo,td.yaml
@@ -28,6 +28,9 @@  properties:
   backlight: true
   port: true
 
+  spi-cpha: true
+  spi-cpol: true
+
 required:
   - compatible
   - port
diff --git a/Documentation/devicetree/bindings/spi/spi-controller.yaml b/Documentation/devicetree/bindings/spi/spi-controller.yaml
index 678cee68b52a..655713fba7e2 100644
--- a/Documentation/devicetree/bindings/spi/spi-controller.yaml
+++ b/Documentation/devicetree/bindings/spi/spi-controller.yaml
@@ -95,6 +95,17 @@  patternProperties:
     type: object
     $ref: spi-peripheral-props.yaml
 
+    properties:
+      spi-cpha:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description:
+          The device requires shifted clock phase (CPHA) mode.
+
+      spi-cpol:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description:
+          The device requires inverse clock polarity (CPOL) mode.
+
     required:
       - compatible
       - reg
diff --git a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
index 5e32928c4fc3..2349f83c07f3 100644
--- a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
+++ b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
@@ -34,16 +34,6 @@  properties:
     description:
       The device requires 3-wire mode.
 
-  spi-cpha:
-    $ref: /schemas/types.yaml#/definitions/flag
-    description:
-      The device requires shifted clock phase (CPHA) mode.
-
-  spi-cpol:
-    $ref: /schemas/types.yaml#/definitions/flag
-    description:
-      The device requires inverse clock polarity (CPOL) mode.
-
   spi-cs-high:
     $ref: /schemas/types.yaml#/definitions/flag
     description: