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 |
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
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 --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.
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(-)