94f19d0762
Convert dt-binding spi-fsl-dspi.txt to yaml format. Use part Vladimir Oltean's work at of https://lore.kernel.org/linux-spi/20221111224651.577729-1-vladimir.oltean@nxp.com/ Additional changes during convert: - compatible string "fsl,ls1028a-dspi" can be followed by fsl,ls1021a-v1.0-dspi. - Change "dspi0@4002c000" to "spi@4002c000" in example. - Reorder properties in example. - Use GIC include in example. - Deprecated fsl,spi-cs-sck-delay and fsl,spi-sck-cs-delay by use common SPI property. - Use compatible string 'jedec,spi-nor' in example. - Split peripheral part to fsl,dspi-peripheral-props.yaml. - Remove 'interrupts' and 'pinctrl' from required list. - Update 'bus-num' description. - Update 'spi-num-chipselects' description by add "cs-gpios don't count against this number". - Remove 'big-endian' description. Co-developed-by: Kuldeep Singh <kuldeep.singh@nxp.com> Signed-off-by: Kuldeep Singh <kuldeep.singh@nxp.com> Co-developed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Frank Li <Frank.Li@nxp.com> Reviewed-by: Vladimir Oltean <olteanv@gmail.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20240624-ls_qspi-v4-2-3d1c6f5005bf@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
130 lines
4.3 KiB
YAML
130 lines
4.3 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/spi/spi-peripheral-props.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Peripheral-specific properties for a SPI bus.
|
|
|
|
description:
|
|
Many SPI controllers need to add properties to peripheral devices. They could
|
|
be common properties like spi-max-frequency, spi-cpha, etc. or they could be
|
|
controller specific like delay in clock or data lines, etc. These properties
|
|
need to be defined in the peripheral node because they are per-peripheral and
|
|
there can be multiple peripherals attached to a controller. All those
|
|
properties are listed here. The controller specific properties should go in
|
|
their own separate schema that should be referenced from here.
|
|
|
|
maintainers:
|
|
- Mark Brown <broonie@kernel.org>
|
|
|
|
properties:
|
|
reg:
|
|
minItems: 1
|
|
maxItems: 256
|
|
items:
|
|
items:
|
|
- minimum: 0
|
|
maximum: 256
|
|
description:
|
|
Chip select used by the device.
|
|
|
|
spi-cs-high:
|
|
$ref: /schemas/types.yaml#/definitions/flag
|
|
description:
|
|
The device requires the chip select active high.
|
|
|
|
spi-lsb-first:
|
|
$ref: /schemas/types.yaml#/definitions/flag
|
|
description:
|
|
The device requires the LSB first mode.
|
|
|
|
spi-max-frequency:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description:
|
|
Maximum SPI clocking speed of the device in Hz.
|
|
|
|
spi-cs-setup-delay-ns:
|
|
description:
|
|
Delay in nanoseconds to be introduced by the controller after CS is
|
|
asserted.
|
|
|
|
spi-cs-hold-delay-ns:
|
|
description:
|
|
Delay in nanoseconds to be introduced by the controller before CS is
|
|
de-asserted.
|
|
|
|
spi-cs-inactive-delay-ns:
|
|
description:
|
|
Delay in nanoseconds to be introduced by the controller after CS is
|
|
de-asserted.
|
|
|
|
spi-rx-bus-width:
|
|
description:
|
|
Bus width to the SPI bus used for read transfers.
|
|
If 0 is provided, then no RX will be possible on this device.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 4, 8]
|
|
default: 1
|
|
|
|
spi-rx-delay-us:
|
|
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.
|
|
If 0 is provided, then no TX will be possible on this device.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 4, 8]
|
|
default: 1
|
|
|
|
spi-tx-delay-us:
|
|
description:
|
|
Delay, in microseconds, after a write transfer.
|
|
|
|
stacked-memories:
|
|
description: Several SPI memories can be wired in stacked mode.
|
|
This basically means that either a device features several chip
|
|
selects, or that different devices must be seen as a single
|
|
bigger chip. This basically doubles (or more) the total address
|
|
space with only a single additional wire, while still needing
|
|
to repeat the commands when crossing a chip boundary. The size of
|
|
each chip should be provided as members of the array.
|
|
$ref: /schemas/types.yaml#/definitions/uint64-array
|
|
minItems: 2
|
|
maxItems: 4
|
|
|
|
parallel-memories:
|
|
description: Several SPI memories can be wired in parallel mode.
|
|
The devices are physically on a different buses but will always
|
|
act synchronously as each data word is spread across the
|
|
different memories (eg. even bits are stored in one memory, odd
|
|
bits in the other). This basically doubles the address space and
|
|
the throughput while greatly complexifying the wiring because as
|
|
many busses as devices must be wired. The size of each chip should
|
|
be provided as members of the array.
|
|
$ref: /schemas/types.yaml#/definitions/uint64-array
|
|
minItems: 2
|
|
maxItems: 4
|
|
|
|
st,spi-midi-ns:
|
|
description: |
|
|
Only for STM32H7, (Master Inter-Data Idleness) minimum time
|
|
delay in nanoseconds inserted between two consecutive data frames.
|
|
|
|
# The controller specific properties go here.
|
|
allOf:
|
|
- $ref: arm,pl022-peripheral-props.yaml#
|
|
- $ref: cdns,qspi-nor-peripheral-props.yaml#
|
|
- $ref: fsl,dspi-peripheral-props.yaml#
|
|
- $ref: samsung,spi-peripheral-props.yaml#
|
|
- $ref: nvidia,tegra210-quad-peripheral-props.yaml#
|
|
|
|
additionalProperties: true
|