xref: /freebsd/sys/contrib/device-tree/Bindings/mtd/jedec,spi-nor.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* SPI NOR flash: ST M25Pxx (and similar) serial flash chips
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- #address-cells, #size-cells : Must be present if the device has sub-nodes
5*c66ec88fSEmmanuel Vadot  representing partitions.
6*c66ec88fSEmmanuel Vadot- compatible : May include a device-specific string consisting of the
7*c66ec88fSEmmanuel Vadot               manufacturer and name of the chip. A list of supported chip
8*c66ec88fSEmmanuel Vadot               names follows.
9*c66ec88fSEmmanuel Vadot               Must also include "jedec,spi-nor" for any SPI NOR flash that can
10*c66ec88fSEmmanuel Vadot               be identified by the JEDEC READ ID opcode (0x9F).
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel Vadot               Supported chip names:
13*c66ec88fSEmmanuel Vadot                 at25df321a
14*c66ec88fSEmmanuel Vadot                 at25df641
15*c66ec88fSEmmanuel Vadot                 at26df081a
16*c66ec88fSEmmanuel Vadot                 mr25h128
17*c66ec88fSEmmanuel Vadot                 mr25h256
18*c66ec88fSEmmanuel Vadot                 mr25h10
19*c66ec88fSEmmanuel Vadot                 mr25h40
20*c66ec88fSEmmanuel Vadot                 mx25l4005a
21*c66ec88fSEmmanuel Vadot                 mx25l1606e
22*c66ec88fSEmmanuel Vadot                 mx25l6405d
23*c66ec88fSEmmanuel Vadot                 mx25l12805d
24*c66ec88fSEmmanuel Vadot                 mx25l25635e
25*c66ec88fSEmmanuel Vadot                 n25q064
26*c66ec88fSEmmanuel Vadot                 n25q128a11
27*c66ec88fSEmmanuel Vadot                 n25q128a13
28*c66ec88fSEmmanuel Vadot                 n25q512a
29*c66ec88fSEmmanuel Vadot                 s25fl256s1
30*c66ec88fSEmmanuel Vadot                 s25fl512s
31*c66ec88fSEmmanuel Vadot                 s25sl12801
32*c66ec88fSEmmanuel Vadot                 s25fl008k
33*c66ec88fSEmmanuel Vadot                 s25fl064k
34*c66ec88fSEmmanuel Vadot                 sst25vf040b
35*c66ec88fSEmmanuel Vadot                 m25p40
36*c66ec88fSEmmanuel Vadot                 m25p80
37*c66ec88fSEmmanuel Vadot                 m25p16
38*c66ec88fSEmmanuel Vadot                 m25p32
39*c66ec88fSEmmanuel Vadot                 m25p64
40*c66ec88fSEmmanuel Vadot                 m25p128
41*c66ec88fSEmmanuel Vadot                 w25x80
42*c66ec88fSEmmanuel Vadot                 w25x32
43*c66ec88fSEmmanuel Vadot                 w25q32
44*c66ec88fSEmmanuel Vadot                 w25q64
45*c66ec88fSEmmanuel Vadot                 w25q32dw
46*c66ec88fSEmmanuel Vadot                 w25q80bl
47*c66ec88fSEmmanuel Vadot                 w25q128
48*c66ec88fSEmmanuel Vadot                 w25q256
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel Vadot               The following chip names have been used historically to
51*c66ec88fSEmmanuel Vadot               designate quirky versions of flash chips that do not support the
52*c66ec88fSEmmanuel Vadot               JEDEC READ ID opcode (0x9F):
53*c66ec88fSEmmanuel Vadot                 m25p05-nonjedec
54*c66ec88fSEmmanuel Vadot                 m25p10-nonjedec
55*c66ec88fSEmmanuel Vadot                 m25p20-nonjedec
56*c66ec88fSEmmanuel Vadot                 m25p40-nonjedec
57*c66ec88fSEmmanuel Vadot                 m25p80-nonjedec
58*c66ec88fSEmmanuel Vadot                 m25p16-nonjedec
59*c66ec88fSEmmanuel Vadot                 m25p32-nonjedec
60*c66ec88fSEmmanuel Vadot                 m25p64-nonjedec
61*c66ec88fSEmmanuel Vadot                 m25p128-nonjedec
62*c66ec88fSEmmanuel Vadot
63*c66ec88fSEmmanuel Vadot- reg : Chip-Select number
64*c66ec88fSEmmanuel Vadot- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at
65*c66ec88fSEmmanuel Vadot
66*c66ec88fSEmmanuel VadotOptional properties:
67*c66ec88fSEmmanuel Vadot- m25p,fast-read : Use the "fast read" opcode to read data from the chip instead
68*c66ec88fSEmmanuel Vadot                   of the usual "read" opcode. This opcode is not supported by
69*c66ec88fSEmmanuel Vadot                   all chips and support for it can not be detected at runtime.
70*c66ec88fSEmmanuel Vadot                   Refer to your chips' datasheet to check if this is supported
71*c66ec88fSEmmanuel Vadot                   by your chip.
72*c66ec88fSEmmanuel Vadot- broken-flash-reset : Some flash devices utilize stateful addressing modes
73*c66ec88fSEmmanuel Vadot		   (e.g., for 32-bit addressing) which need to be managed
74*c66ec88fSEmmanuel Vadot		   carefully by a system. Because these sorts of flash don't
75*c66ec88fSEmmanuel Vadot		   have a standardized software reset command, and because some
76*c66ec88fSEmmanuel Vadot		   systems don't toggle the flash RESET# pin upon system reset
77*c66ec88fSEmmanuel Vadot		   (if the pin even exists at all), there are systems which
78*c66ec88fSEmmanuel Vadot		   cannot reboot properly if the flash is left in the "wrong"
79*c66ec88fSEmmanuel Vadot		   state. This boolean flag can be used on such systems, to
80*c66ec88fSEmmanuel Vadot		   denote the absence of a reliable reset mechanism.
81*c66ec88fSEmmanuel Vadot
82*c66ec88fSEmmanuel VadotExample:
83*c66ec88fSEmmanuel Vadot
84*c66ec88fSEmmanuel Vadot	flash: m25p80@0 {
85*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
86*c66ec88fSEmmanuel Vadot		#size-cells = <1>;
87*c66ec88fSEmmanuel Vadot		compatible = "spansion,m25p80", "jedec,spi-nor";
88*c66ec88fSEmmanuel Vadot		reg = <0>;
89*c66ec88fSEmmanuel Vadot		spi-max-frequency = <40000000>;
90*c66ec88fSEmmanuel Vadot		m25p,fast-read;
91*c66ec88fSEmmanuel Vadot	};
92