Message ID | 20220722191539.90641-2-krzysztof.kozlowski@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dt-bindings: spi/display/panel: drop SPI CPHA and CPOL | expand |
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
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
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.
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 --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:
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(-)