18c2ecf20Sopenharmony_ci* SPI NOR flash: ST M25Pxx (and similar) serial flash chips
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired properties:
48c2ecf20Sopenharmony_ci- #address-cells, #size-cells : Must be present if the device has sub-nodes
58c2ecf20Sopenharmony_ci  representing partitions.
68c2ecf20Sopenharmony_ci- compatible : May include a device-specific string consisting of the
78c2ecf20Sopenharmony_ci               manufacturer and name of the chip. A list of supported chip
88c2ecf20Sopenharmony_ci               names follows.
98c2ecf20Sopenharmony_ci               Must also include "jedec,spi-nor" for any SPI NOR flash that can
108c2ecf20Sopenharmony_ci               be identified by the JEDEC READ ID opcode (0x9F).
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci               Supported chip names:
138c2ecf20Sopenharmony_ci                 at25df321a
148c2ecf20Sopenharmony_ci                 at25df641
158c2ecf20Sopenharmony_ci                 at26df081a
168c2ecf20Sopenharmony_ci                 mr25h128
178c2ecf20Sopenharmony_ci                 mr25h256
188c2ecf20Sopenharmony_ci                 mr25h10
198c2ecf20Sopenharmony_ci                 mr25h40
208c2ecf20Sopenharmony_ci                 mx25l4005a
218c2ecf20Sopenharmony_ci                 mx25l1606e
228c2ecf20Sopenharmony_ci                 mx25l6405d
238c2ecf20Sopenharmony_ci                 mx25l12805d
248c2ecf20Sopenharmony_ci                 mx25l25635e
258c2ecf20Sopenharmony_ci                 n25q064
268c2ecf20Sopenharmony_ci                 n25q128a11
278c2ecf20Sopenharmony_ci                 n25q128a13
288c2ecf20Sopenharmony_ci                 n25q512a
298c2ecf20Sopenharmony_ci                 s25fl256s1
308c2ecf20Sopenharmony_ci                 s25fl512s
318c2ecf20Sopenharmony_ci                 s25sl12801
328c2ecf20Sopenharmony_ci                 s25fl008k
338c2ecf20Sopenharmony_ci                 s25fl064k
348c2ecf20Sopenharmony_ci                 sst25vf040b
358c2ecf20Sopenharmony_ci                 m25p40
368c2ecf20Sopenharmony_ci                 m25p80
378c2ecf20Sopenharmony_ci                 m25p16
388c2ecf20Sopenharmony_ci                 m25p32
398c2ecf20Sopenharmony_ci                 m25p64
408c2ecf20Sopenharmony_ci                 m25p128
418c2ecf20Sopenharmony_ci                 w25x80
428c2ecf20Sopenharmony_ci                 w25x32
438c2ecf20Sopenharmony_ci                 w25q32
448c2ecf20Sopenharmony_ci                 w25q64
458c2ecf20Sopenharmony_ci                 w25q32dw
468c2ecf20Sopenharmony_ci                 w25q80bl
478c2ecf20Sopenharmony_ci                 w25q128
488c2ecf20Sopenharmony_ci                 w25q256
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci               The following chip names have been used historically to
518c2ecf20Sopenharmony_ci               designate quirky versions of flash chips that do not support the
528c2ecf20Sopenharmony_ci               JEDEC READ ID opcode (0x9F):
538c2ecf20Sopenharmony_ci                 m25p05-nonjedec
548c2ecf20Sopenharmony_ci                 m25p10-nonjedec
558c2ecf20Sopenharmony_ci                 m25p20-nonjedec
568c2ecf20Sopenharmony_ci                 m25p40-nonjedec
578c2ecf20Sopenharmony_ci                 m25p80-nonjedec
588c2ecf20Sopenharmony_ci                 m25p16-nonjedec
598c2ecf20Sopenharmony_ci                 m25p32-nonjedec
608c2ecf20Sopenharmony_ci                 m25p64-nonjedec
618c2ecf20Sopenharmony_ci                 m25p128-nonjedec
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci- reg : Chip-Select number
648c2ecf20Sopenharmony_ci- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciOptional properties:
678c2ecf20Sopenharmony_ci- m25p,fast-read : Use the "fast read" opcode to read data from the chip instead
688c2ecf20Sopenharmony_ci                   of the usual "read" opcode. This opcode is not supported by
698c2ecf20Sopenharmony_ci                   all chips and support for it can not be detected at runtime.
708c2ecf20Sopenharmony_ci                   Refer to your chips' datasheet to check if this is supported
718c2ecf20Sopenharmony_ci                   by your chip.
728c2ecf20Sopenharmony_ci- broken-flash-reset : Some flash devices utilize stateful addressing modes
738c2ecf20Sopenharmony_ci		   (e.g., for 32-bit addressing) which need to be managed
748c2ecf20Sopenharmony_ci		   carefully by a system. Because these sorts of flash don't
758c2ecf20Sopenharmony_ci		   have a standardized software reset command, and because some
768c2ecf20Sopenharmony_ci		   systems don't toggle the flash RESET# pin upon system reset
778c2ecf20Sopenharmony_ci		   (if the pin even exists at all), there are systems which
788c2ecf20Sopenharmony_ci		   cannot reboot properly if the flash is left in the "wrong"
798c2ecf20Sopenharmony_ci		   state. This boolean flag can be used on such systems, to
808c2ecf20Sopenharmony_ci		   denote the absence of a reliable reset mechanism.
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciExample:
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	flash: m25p80@0 {
858c2ecf20Sopenharmony_ci		#address-cells = <1>;
868c2ecf20Sopenharmony_ci		#size-cells = <1>;
878c2ecf20Sopenharmony_ci		compatible = "spansion,m25p80", "jedec,spi-nor";
888c2ecf20Sopenharmony_ci		reg = <0>;
898c2ecf20Sopenharmony_ci		spi-max-frequency = <40000000>;
908c2ecf20Sopenharmony_ci		m25p,fast-read;
918c2ecf20Sopenharmony_ci	};
92