mirror of
https://github.com/torvalds/linux.git
synced 2026-04-20 15:53:59 -04:00
The Xilinx QSPI controller has two advanced modes which allow the controller to behave differently and consider two flashes as one single storage. One of these two modes is quite complex to support from a binding point of view and is the dual parallel memories. In this mode, each byte of data is stored in both devices: the even bits in one, the odd bits in the other. The split is automatically handled by the QSPI controller and is transparent for the user. The other mode is simpler to support, it is called dual stacked memories. The controller shares the same SPI bus but each of the devices contain half of the data. Once in this mode, the controller does not follow CS requests but instead internally wires the two CS levels with the value of the most significant address bit. Supporting these two modes will involve core changes which include the possibility of providing two CS for a single SPI device Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Acked-by: Rob Herring <robh@kernel.org> Reviewed-by: Pratyush Yadav <p.yadav@ti.com> Link: https://lore.kernel.org/r/20220126112608.955728-2-miquel.raynal@bootlin.com Signed-off-by: Mark Brown <broonie@kernel.org>
111 lines
3.2 KiB
YAML
111 lines
3.2 KiB
YAML
# SPDX-License-Identifier: GPL-2.0-only
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/mtd/jedec,spi-nor.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: SPI NOR flash ST M25Pxx (and similar) serial flash chips
|
|
|
|
maintainers:
|
|
- Rob Herring <robh@kernel.org>
|
|
|
|
allOf:
|
|
- $ref: "mtd.yaml#"
|
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- pattern: "^((((micron|spansion|st),)?\
|
|
(m25p(40|80|16|32|64|128)|\
|
|
n25q(32b|064|128a11|128a13|256a|512a|164k)))|\
|
|
atmel,at25df(321a|641|081a)|\
|
|
everspin,mr25h(10|40|128|256)|\
|
|
(mxicy|macronix),mx25l(4005a|1606e|6405d|8005|12805d|25635e)|\
|
|
(mxicy|macronix),mx25u(4033|4035)|\
|
|
(spansion,)?s25fl(128s|256s1|512s|008k|064k|164k)|\
|
|
(sst|microchip),sst25vf(016b|032b|040b)|\
|
|
(sst,)?sst26wf016b|\
|
|
(sst,)?sst25wf(040b|080)|\
|
|
winbond,w25x(80|32)|\
|
|
(winbond,)?w25q(16|32(w|dw)?|64(dw)?|80bl|128(fw)?|256))$"
|
|
- const: jedec,spi-nor
|
|
- items:
|
|
- enum:
|
|
- issi,is25lp016d
|
|
- micron,mt25qu02g
|
|
- mxicy,mx25r1635f
|
|
- mxicy,mx25u6435f
|
|
- mxicy,mx25v8035f
|
|
- spansion,s25sl12801
|
|
- spansion,s25fs512s
|
|
- const: jedec,spi-nor
|
|
- const: jedec,spi-nor
|
|
description:
|
|
Must also include "jedec,spi-nor" for any SPI NOR flash that can be
|
|
identified by the JEDEC READ ID opcode (0x9F).
|
|
|
|
reg:
|
|
minItems: 1
|
|
maxItems: 2
|
|
|
|
spi-max-frequency: true
|
|
spi-rx-bus-width: true
|
|
spi-tx-bus-width: true
|
|
|
|
m25p,fast-read:
|
|
type: boolean
|
|
description:
|
|
Use the "fast read" opcode to read data from the chip instead of the usual
|
|
"read" opcode. This opcode is not supported by all chips and support for
|
|
it can not be detected at runtime. Refer to your chips' datasheet to check
|
|
if this is supported by your chip.
|
|
|
|
broken-flash-reset:
|
|
type: boolean
|
|
description:
|
|
Some flash devices utilize stateful addressing modes (e.g., for 32-bit
|
|
addressing) which need to be managed carefully by a system. Because these
|
|
sorts of flash don't have a standardized software reset command, and
|
|
because some systems don't toggle the flash RESET# pin upon system reset
|
|
(if the pin even exists at all), there are systems which cannot reboot
|
|
properly if the flash is left in the "wrong" state. This boolean flag can
|
|
be used on such systems, to denote the absence of a reliable reset
|
|
mechanism.
|
|
|
|
label: true
|
|
|
|
partitions:
|
|
type: object
|
|
|
|
'#address-cells': true
|
|
'#size-cells': true
|
|
|
|
patternProperties:
|
|
# Note: use 'partitions' node for new users
|
|
'^partition@':
|
|
type: object
|
|
|
|
"^otp(-[0-9]+)?$":
|
|
type: object
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
spi {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
flash@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "spansion,m25p80", "jedec,spi-nor";
|
|
reg = <0>;
|
|
spi-max-frequency = <40000000>;
|
|
m25p,fast-read;
|
|
};
|
|
};
|
|
...
|