diff mbox series

spi: dt-bindings: Move 'rx-sample-delay-ns' to spi-peripheral-props.yaml

Message ID 20220525210053.2488756-1-robh@kernel.org
State Accepted
Commit b658be56e867061a0d5496e837f350974ada5c89
Headers show
Series spi: dt-bindings: Move 'rx-sample-delay-ns' to spi-peripheral-props.yaml | expand

Commit Message

Rob Herring May 25, 2022, 9 p.m. UTC
SPI bus per device properties must be defined in spi-peripheral-props.yaml
for unevaluatedProperties checks to work correctly on device nodes.

This has the side effect of promoting 'rx-sample-delay-ns' to be a
common property, but functionally it's no different if it was defined in
a Synopsys specific schema file.

Signed-off-by: Rob Herring <robh@kernel.org>
---
 .../bindings/spi/snps,dw-apb-ssi.yaml          | 18 +++++++++---------
 .../bindings/spi/spi-peripheral-props.yaml     |  5 +++++
 2 files changed, 14 insertions(+), 9 deletions(-)

Comments

Rob Herring May 26, 2022, 1:54 p.m. UTC | #1
On Thu, May 26, 2022 at 11:16:42AM +0530, Pratyush Yadav wrote:
> Hi Rob,
> 
> On 25/05/22 04:00PM, Rob Herring wrote:
> > SPI bus per device properties must be defined in spi-peripheral-props.yaml
> > for unevaluatedProperties checks to work correctly on device nodes.
> > 
> > This has the side effect of promoting 'rx-sample-delay-ns' to be a
> > common property, but functionally it's no different if it was defined in
> > a Synopsys specific schema file.
> 
> Functionally it is no different, but does this property make sense for 
> other controllers? If not then I don't see why we should pollute the 
> common list with controller-specific ones. For one, this now no longer 
> makes it obvious that this property should only be used with the 
> Synopsys controller. And if you keep making small exceptions for other 
> controllers too, soon the common list will be full of controller 
> properties and it will be a mess finding out what belongs to who.

There's at least one other case already:

  cdns,read-delay:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Delay for read capture logic, in clock cycles.


Too many common properties is not a problem we have. Too many custom 
properties doing the same thing is the problem.

Rob
Serge Semin May 27, 2022, 11:32 a.m. UTC | #2
On Thu, May 26, 2022 at 08:54:04AM -0500, Rob Herring wrote:
> On Thu, May 26, 2022 at 11:16:42AM +0530, Pratyush Yadav wrote:
> > Hi Rob,
> > 
> > On 25/05/22 04:00PM, Rob Herring wrote:
> > > SPI bus per device properties must be defined in spi-peripheral-props.yaml
> > > for unevaluatedProperties checks to work correctly on device nodes.
> > > 
> > > This has the side effect of promoting 'rx-sample-delay-ns' to be a
> > > common property, but functionally it's no different if it was defined in
> > > a Synopsys specific schema file.
> > 
> > Functionally it is no different, but does this property make sense for 
> > other controllers? If not then I don't see why we should pollute the 
> > common list with controller-specific ones. For one, this now no longer 
> > makes it obvious that this property should only be used with the 
> > Synopsys controller. And if you keep making small exceptions for other 
> > controllers too, soon the common list will be full of controller 
> > properties and it will be a mess finding out what belongs to who.
> 

> There's at least one other case already:
> 
>   cdns,read-delay:
>     $ref: /schemas/types.yaml#/definitions/uint32
>     description:
>       Delay for read capture logic, in clock cycles.

What about creating the schemas hierarchy for the device-specific
properties as I already suggested in the other thread? Like this:

https://lore.kernel.org/linux-ide/20220527101057.b5z7ase6y4naoxvk@mobilestation

-Sergey

> 
> 
> Too many common properties is not a problem we have. Too many custom 
> properties doing the same thing is the problem.
> 
> Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
index d7e08b03e204..e25d44c218f2 100644
--- a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
+++ b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
@@ -124,9 +124,16 @@  properties:
 
   rx-sample-delay-ns:
     default: 0
-    description: Default value of the rx-sample-delay-ns property.
+    description: |
+      Default value of the rx-sample-delay-ns property.
       This value will be used if the property is not explicitly defined
-      for a SPI slave device. See below.
+      for a SPI slave device.
+
+      SPI Rx sample delay offset, unit is nanoseconds.
+      The delay from the default sample time before the actual sample of the
+      rxd input signal occurs. The "rx_sample_delay" is an optional feature
+      of the designware controller, and the upper limit is also subject to
+      controller configuration.
 
 patternProperties:
   "^.*@[0-9a-f]+$":
@@ -142,13 +149,6 @@  patternProperties:
       spi-tx-bus-width:
         const: 1
 
-      rx-sample-delay-ns:
-        description: SPI Rx sample delay offset, unit is nanoseconds.
-          The delay from the default sample time before the actual
-          sample of the rxd input signal occurs. The "rx_sample_delay"
-          is an optional feature of the designware controller, and the
-          upper limit is also subject to controller configuration.
-
 unevaluatedProperties: false
 
 required:
diff --git a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
index 5e32928c4fc3..6ffb74352bef 100644
--- a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
+++ b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
@@ -71,6 +71,11 @@  properties:
     description:
       Delay, in microseconds, after a read transfer.
 
+  rx-sample-delay-ns:
+    description: SPI Rx sample delay offset, unit is nanoseconds.
+      The delay from the default sample time before the actual
+      sample of the rxd input signal occurs.
+
   spi-tx-bus-width:
     description:
       Bus width to the SPI bus used for write transfers.