0001 # SPDX-License-Identifier: GPL-2.0-only
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mtd/jedec,spi-nor.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: SPI NOR flash ST M25Pxx (and similar) serial flash chips
0008
0009 maintainers:
0010 - Rob Herring <robh@kernel.org>
0011
0012 allOf:
0013 - $ref: "mtd.yaml#"
0014 - $ref: /schemas/spi/spi-peripheral-props.yaml#
0015
0016 properties:
0017 compatible:
0018 oneOf:
0019 - items:
0020 - pattern: "^((((micron|spansion|st),)?\
0021 (m25p(40|80|16|32|64|128)|\
0022 n25q(32b|064|128a11|128a13|256a|512a|164k)))|\
0023 atmel,at25df(321a|641|081a)|\
0024 everspin,mr25h(10|40|128|256)|\
0025 (mxicy|macronix),mx25l(4005a|1606e|6405d|8005|12805d|25635e)|\
0026 (mxicy|macronix),mx25u(4033|4035)|\
0027 (spansion,)?s25fl(128s|256s1|512s|008k|064k|164k)|\
0028 (sst|microchip),sst25vf(016b|032b|040b)|\
0029 (sst,)?sst26wf016b|\
0030 (sst,)?sst25wf(040b|080)|\
0031 winbond,w25x(80|32)|\
0032 (winbond,)?w25q(16|32(w|dw)?|64(dw)?|80bl|128(fw)?|256))$"
0033 - const: jedec,spi-nor
0034 - items:
0035 - enum:
0036 - issi,is25lp016d
0037 - micron,mt25qu02g
0038 - mxicy,mx25r1635f
0039 - mxicy,mx25u6435f
0040 - mxicy,mx25v8035f
0041 - spansion,s25sl12801
0042 - spansion,s25fs512s
0043 - const: jedec,spi-nor
0044 - const: jedec,spi-nor
0045 description:
0046 Must also include "jedec,spi-nor" for any SPI NOR flash that can be
0047 identified by the JEDEC READ ID opcode (0x9F).
0048
0049 reg:
0050 minItems: 1
0051 maxItems: 2
0052
0053 m25p,fast-read:
0054 type: boolean
0055 description:
0056 Use the "fast read" opcode to read data from the chip instead of the usual
0057 "read" opcode. This opcode is not supported by all chips and support for
0058 it can not be detected at runtime. Refer to your chips' datasheet to check
0059 if this is supported by your chip.
0060
0061 broken-flash-reset:
0062 type: boolean
0063 description:
0064 Some flash devices utilize stateful addressing modes (e.g., for 32-bit
0065 addressing) which need to be managed carefully by a system. Because these
0066 sorts of flash don't have a standardized software reset command, and
0067 because some systems don't toggle the flash RESET# pin upon system reset
0068 (if the pin even exists at all), there are systems which cannot reboot
0069 properly if the flash is left in the "wrong" state. This boolean flag can
0070 be used on such systems, to denote the absence of a reliable reset
0071 mechanism.
0072
0073 partitions:
0074 type: object
0075
0076 '#address-cells': true
0077 '#size-cells': true
0078
0079 patternProperties:
0080 # Note: use 'partitions' node for new users
0081 '^partition@':
0082 type: object
0083
0084 "^otp(-[0-9]+)?$":
0085 type: object
0086
0087 unevaluatedProperties: false
0088
0089 examples:
0090 - |
0091 spi {
0092 #address-cells = <1>;
0093 #size-cells = <0>;
0094
0095 flash@0 {
0096 compatible = "spansion,m25p80", "jedec,spi-nor";
0097 reg = <0>;
0098 spi-max-frequency = <40000000>;
0099 m25p,fast-read;
0100 };
0101 };
0102 ...