Merge tag 'block-5.14-2021-08-07' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / mtd / jedec,spi-nor.yaml
1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/mtd/jedec,spi-nor.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: SPI NOR flash ST M25Pxx (and similar) serial flash chips
8
9 maintainers:
10   - Rob Herring <robh@kernel.org>
11
12 allOf:
13   - $ref: "mtd.yaml#"
14
15 properties:
16   compatible:
17     oneOf:
18       - items:
19           - pattern: "^((((micron|spansion|st),)?\
20               (m25p(40|80|16|32|64|128)|\
21               n25q(32b|064|128a11|128a13|256a|512a|164k)))|\
22               atmel,at25df(321a|641|081a)|\
23               everspin,mr25h(10|40|128|256)|\
24               (mxicy|macronix),mx25l(4005a|1606e|6405d|8005|12805d|25635e)|\
25               (mxicy|macronix),mx25u(4033|4035)|\
26               (spansion,)?s25fl(128s|256s1|512s|008k|064k|164k)|\
27               (sst|microchip),sst25vf(016b|032b|040b)|\
28               (sst,)?sst26wf016b|\
29               (sst,)?sst25wf(040b|080)|\
30               winbond,w25x(80|32)|\
31               (winbond,)?w25q(16|32(w|dw)?|64(dw)?|80bl|128(fw)?|256))$"
32           - const: jedec,spi-nor
33       - items:
34           - enum:
35               - issi,is25lp016d
36               - micron,mt25qu02g
37               - mxicy,mx25r1635f
38               - mxicy,mx25u6435f
39               - mxicy,mx25v8035f
40               - spansion,s25sl12801
41               - spansion,s25fs512s
42           - const: jedec,spi-nor
43       - const: jedec,spi-nor
44     description:
45       Must also include "jedec,spi-nor" for any SPI NOR flash that can be
46       identified by the JEDEC READ ID opcode (0x9F).
47
48   reg:
49     maxItems: 1
50
51   spi-max-frequency: true
52   spi-rx-bus-width: true
53   spi-tx-bus-width: true
54
55   m25p,fast-read:
56     type: boolean
57     description:
58       Use the "fast read" opcode to read data from the chip instead of the usual
59       "read" opcode. This opcode is not supported by all chips and support for
60       it can not be detected at runtime. Refer to your chips' datasheet to check
61       if this is supported by your chip.
62
63   broken-flash-reset:
64     type: boolean
65     description:
66       Some flash devices utilize stateful addressing modes (e.g., for 32-bit
67       addressing) which need to be managed carefully by a system. Because these
68       sorts of flash don't have a standardized software reset command, and
69       because some systems don't toggle the flash RESET# pin upon system reset
70       (if the pin even exists at all), there are systems which cannot reboot
71       properly if the flash is left in the "wrong" state. This boolean flag can
72       be used on such systems, to denote the absence of a reliable reset
73       mechanism.
74
75   label: true
76
77   partitions:
78     type: object
79
80   '#address-cells': true
81   '#size-cells': true
82
83 patternProperties:
84   # Note: use 'partitions' node for new users
85   '^partition@':
86     type: object
87
88   "^otp(-[0-9]+)?$":
89     type: object
90
91 additionalProperties: false
92
93 examples:
94   - |
95     spi {
96         #address-cells = <1>;
97         #size-cells = <0>;
98
99         flash@0 {
100             #address-cells = <1>;
101             #size-cells = <1>;
102             compatible = "spansion,m25p80", "jedec,spi-nor";
103             reg = <0>;
104             spi-max-frequency = <40000000>;
105             m25p,fast-read;
106         };
107     };
108 ...