17 Commits

Author SHA1 Message Date
Rob Herring
0fc57bf1b2
spi: dt-bindings: st,stm32-spi: Move "st,spi-midi-ns" to spi-peripheral-props.yaml
In order to validate SPI peripherals, SPI controller-specific child node
properties need to be in a separate schema, spi-peripheral-props.yaml,
which SPI peripheral schemas reference. As there is just a single
property in this case, just add it to spi-peripheral-props.yaml directly.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230914190049.1853136-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-09-25 16:27:47 +02:00
Rob Herring
b0ef97ac89
spi: dt-bindings: arm,pl022: Move child node properties to separate schema
In order to validate SPI peripherals, SPI controller-specific child node
properties need to be in a separate schema, spi-peripheral-props.yaml,
which SPI peripheral schemas reference. Move the arm,pl022 child
properties to their own schema file and add a $ref in
spi-peripheral-props.yaml.

Signed-off-by: Rob Herring <robh@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20230914190033.1852600-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-09-15 13:15:36 +01:00
Janne Grunau
34f89f238c
spi: dt-bindings: Add hold/inactive CS delay peripheral properties
These two properties complete the bindings for the Linux spi_device cs
model, which includes cs_setup, cs_hold and cs_inactive delay values.

Signed-off-by: Janne Grunau <j@jannau.net>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
Link: https://lore.kernel.org/r/20230113102309.18308-3-marcan@marcan.st
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-01-13 12:31:50 +00:00
Hector Martin
38892ea4ce
spi: dt-bindings: Rename spi-cs-setup-ns to spi-cs-setup-delay-ns
Other delay values follow the delay-ns naming convention, so unify the
newly introduced spi-cs-setup-ns property for consistency.

Also fix a typo while we're here.

Fixes: f6c911f3308c ("spi: dt-bindings: Introduce spi-cs-setup-ns property")
Signed-off-by: Hector Martin <marcan@marcan.st>
Link: https://lore.kernel.org/r/20230104093631.15611-2-marcan@marcan.st
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-01-05 16:07:08 +00:00
Tudor Ambarus
f6c911f330
spi: dt-bindings: Introduce spi-cs-setup-ns property
SPI NOR flashes have specific cs-setup time requirements without which
they can't work at frequencies close to their maximum supported frequency,
as they miss the first bits of the instruction command. Unrecognized
commands are ignored, thus the flash will be unresponsive. Introduce the
spi-cs-setup-ns property to allow spi devices to specify their cs setup
time.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Link: https://lore.kernel.org/r/20221117105249.115649-2-tudor.ambarus@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-11-18 11:57:08 +00:00
Krzysztof Kozlowski
41f53a6544
spi/panel: dt-bindings: drop 3-wire from common properties
The spi-3wire property is device specific and should be accepted only if
device really needs them.  Drop it from common spi-peripheral-props.yaml
schema, mention in few panel drivers which use it and include instead in
the SPI controller bindings.  The controller bindings will provide
spi-3wire type validation and one place for description.  Each device
schema must list the property if it is applicable.

The Samsung S6E63M0 panel uses also spi-cpha/cpol properties on at least
one board (ste-ux500-samsung-janice/dts), so add also these to the
panel's bindings.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220810131311.428645-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-08-15 12:18:43 +01:00
Krzysztof Kozlowski
2fd92c7b8f
spi: dt-bindings: Drop Pratyush Yadav
Emails to Pratyush Yadav bounce ("550 Invalid recipient").  Generic SPI
properties should be maintained by subsystem maintainer (Mark).  Add
recent contributor Vaishnav Achath to the Cadence SPI bindings.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220811063826.7620-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-08-11 18:41:45 +01:00
Krzysztof Kozlowski
233363aba7
spi/panel: dt-bindings: drop CPHA and CPOL from common properties
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>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220722191539.90641-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-07-26 12:17:23 +01:00
Krishna Yarlagadda
e23917822d
spi: dt-bindings: split peripheral prods
Move peripheral properties for Tegra QSPI controller to
nvidia,tegra210-quad-peripheral-props.yaml and add reference
to spi-peripheral-props.yaml file.

Signed-off-by: Krishna Yarlagadda <kyarlagadda@nvidia.com>
Link: https://lore.kernel.org/r/20220607114659.54314-3-kyarlagadda@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-13 13:28:30 +01:00
Rob Herring
b658be56e8
spi: dt-bindings: Move 'rx-sample-delay-ns' to spi-peripheral-props.yaml
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>
Link: https://lore.kernel.org/r/20220525210053.2488756-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-06 12:41:29 +01:00
Mark Brown
87fee8d091
spi: Tesla FSD support
Merge series from Alim Akhtar:

This series adds support for the SPI controller in the Tesla FSD SoC,
also pulling in:

   git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git ib-mfd-spi-dt-v5.18

from the MFD tree which has dependencies for the DT bindings.
2022-03-08 20:07:09 +00:00
Krzysztof Kozlowski
0ff4827ed6 spi: dt-bindings: samsung: Convert to dtschema
Convert the Samsung SoC (S3C24xx, S3C64xx, S5Pv210, Exynos) SPI
controller bindings to DT schema format.

The conversion also drops requirement from providing controller-data and
its data for each of SPI peripheral device nodes.  The dtschema cannot
express this and the requirement is being relaxed in the driver now.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Acked-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20220124082347.32747-2-krzysztof.kozlowski@canonical.com
2022-03-07 12:55:14 +00:00
Mark Brown
f89504300e
spi: Stacked/parallel memories bindings
Merge series from Miquel Raynal <miquel.raynal@bootlin.com>:

DT bindings for stacked and parallel flash/memory devices.

base-commit: e783362eb54cd99b2cac8b3a9aeac942e6f6ac07
2022-02-21 15:22:33 +00:00
Miquel Raynal
e2edd1b64f
spi: dt-bindings: Describe stacked/parallel memories modes
Describe two new memories modes:
- A stacked mode when the bus is common but the address space extended
  with an additinals wires.
- A parallel mode with parallel busses accessing parallel flashes where
  the data is spread.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Acked-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220126112608.955728-3-miquel.raynal@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-02-21 13:24:59 +00:00
Rob Herring
60b1e97140
spi: dt-bindings: Fix 'reg' child node schema
The schema for SPI child nodes' 'reg' property is not complete. 'reg' is
a matrix of cells. The schema needs to define both the number of 'reg'
entries and constraints on each entry.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220126231326.1636199-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-01-28 13:05:21 +00:00
Pratyush Yadav
b6bdc6e043
spi: dt-bindings: cdns,qspi-nor: Move peripheral-specific properties out
The spi-peripheral-props.yaml schema contains peripheral-specific
properties for SPI controllers that should be present in the peripheral
node. Move peripheral-specific properties to a separate file and refer
to it in spi-peripheral-props.yaml.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20211109181911.2251-3-p.yadav@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2021-12-01 14:15:46 +00:00
Pratyush Yadav
8762b07c95
spi: dt-bindings: add schema listing peripheral-specific properties
Many SPI controllers need to add properties to peripheral devices. This
could be the delay in clock or data lines, etc. These properties are
controller specific but need to be defined in the peripheral node
because they are per-peripheral and there can be multiple peripherals
attached to a controller.

If these properties are not added to the peripheral binding, then the
dtbs check emits a warning. But these properties do not make much sense
in the peripheral binding because they are controller-specific and they
will just pollute every peripheral binding. So this binding is added to
collect all such properties from all such controllers. Peripheral
bindings should simply refer to this binding and they should be rid of
the warnings.

There are some limitations with this approach. Firstly, there is no way
to specify required properties. The schema contains properties for all
controllers and there is no way to know which controller is being used.
Secondly, there is no way to restrict additional properties. Since this
schema will be used with an allOf operator, additionalProperties needs
to be true. In addition, the peripheral schema will have to set
unevaluatedProperties: false.

Despite these limitations, this appears to be the best solution to this
problem that doesn't involve modifying existing tools or schema specs.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20211109181911.2251-2-p.yadav@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2021-12-01 14:15:45 +00:00