xref: /linux/Documentation/devicetree/bindings/mtd/jedec,spi-nor.yaml (revision a56cde41340ac4049fa6edac9e6cfbcd2804074e)
13ff9ee2aSRob Herring# SPDX-License-Identifier: GPL-2.0-only
23ff9ee2aSRob Herring%YAML 1.2
33ff9ee2aSRob Herring---
43ff9ee2aSRob Herring$id: http://devicetree.org/schemas/mtd/jedec,spi-nor.yaml#
53ff9ee2aSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
63ff9ee2aSRob Herring
73ff9ee2aSRob Herringtitle: SPI NOR flash ST M25Pxx (and similar) serial flash chips
83ff9ee2aSRob Herring
93ff9ee2aSRob Herringmaintainers:
103ff9ee2aSRob Herring  - Rob Herring <robh@kernel.org>
113ff9ee2aSRob Herring
1296d3af22SMichael WalleallOf:
1396d3af22SMichael Walle  - $ref: "mtd.yaml#"
14e9d7c323SPratyush Yadav  - $ref: /schemas/spi/spi-peripheral-props.yaml#
1596d3af22SMichael Walle
163ff9ee2aSRob Herringproperties:
173ff9ee2aSRob Herring  compatible:
183ff9ee2aSRob Herring    oneOf:
193ff9ee2aSRob Herring      - items:
203ff9ee2aSRob Herring          - pattern: "^((((micron|spansion|st),)?\
213ff9ee2aSRob Herring              (m25p(40|80|16|32|64|128)|\
223ff9ee2aSRob Herring              n25q(32b|064|128a11|128a13|256a|512a|164k)))|\
233ff9ee2aSRob Herring              atmel,at25df(321a|641|081a)|\
243ff9ee2aSRob Herring              everspin,mr25h(10|40|128|256)|\
253ff9ee2aSRob Herring              (mxicy|macronix),mx25l(4005a|1606e|6405d|8005|12805d|25635e)|\
263ff9ee2aSRob Herring              (mxicy|macronix),mx25u(4033|4035)|\
273ff9ee2aSRob Herring              (spansion,)?s25fl(128s|256s1|512s|008k|064k|164k)|\
283ff9ee2aSRob Herring              (sst|microchip),sst25vf(016b|032b|040b)|\
293ff9ee2aSRob Herring              (sst,)?sst26wf016b|\
303ff9ee2aSRob Herring              (sst,)?sst25wf(040b|080)|\
313ff9ee2aSRob Herring              winbond,w25x(80|32)|\
323ff9ee2aSRob Herring              (winbond,)?w25q(16|32(w|dw)?|64(dw)?|80bl|128(fw)?|256))$"
333ff9ee2aSRob Herring          - const: jedec,spi-nor
343ff9ee2aSRob Herring      - items:
353ff9ee2aSRob Herring          - enum:
363ff9ee2aSRob Herring              - issi,is25lp016d
373ff9ee2aSRob Herring              - micron,mt25qu02g
383ff9ee2aSRob Herring              - mxicy,mx25r1635f
393ff9ee2aSRob Herring              - mxicy,mx25u6435f
403ff9ee2aSRob Herring              - mxicy,mx25v8035f
413ff9ee2aSRob Herring              - spansion,s25sl12801
423ff9ee2aSRob Herring              - spansion,s25fs512s
433ff9ee2aSRob Herring          - const: jedec,spi-nor
443ff9ee2aSRob Herring      - const: jedec,spi-nor
453ff9ee2aSRob Herring    description:
463ff9ee2aSRob Herring      Must also include "jedec,spi-nor" for any SPI NOR flash that can be
473ff9ee2aSRob Herring      identified by the JEDEC READ ID opcode (0x9F).
483ff9ee2aSRob Herring
493ff9ee2aSRob Herring  reg:
50b252ada2SMiquel Raynal    minItems: 1
51b252ada2SMiquel Raynal    maxItems: 2
523ff9ee2aSRob Herring
533ff9ee2aSRob Herring  m25p,fast-read:
543ff9ee2aSRob Herring    type: boolean
553ff9ee2aSRob Herring    description:
563ff9ee2aSRob Herring      Use the "fast read" opcode to read data from the chip instead of the usual
573ff9ee2aSRob Herring      "read" opcode. This opcode is not supported by all chips and support for
583ff9ee2aSRob Herring      it can not be detected at runtime. Refer to your chips' datasheet to check
593ff9ee2aSRob Herring      if this is supported by your chip.
603ff9ee2aSRob Herring
613ff9ee2aSRob Herring  broken-flash-reset:
623ff9ee2aSRob Herring    type: boolean
633ff9ee2aSRob Herring    description:
643ff9ee2aSRob Herring      Some flash devices utilize stateful addressing modes (e.g., for 32-bit
653ff9ee2aSRob Herring      addressing) which need to be managed carefully by a system. Because these
663ff9ee2aSRob Herring      sorts of flash don't have a standardized software reset command, and
673ff9ee2aSRob Herring      because some systems don't toggle the flash RESET# pin upon system reset
683ff9ee2aSRob Herring      (if the pin even exists at all), there are systems which cannot reboot
693ff9ee2aSRob Herring      properly if the flash is left in the "wrong" state. This boolean flag can
703ff9ee2aSRob Herring      be used on such systems, to denote the absence of a reliable reset
713ff9ee2aSRob Herring      mechanism.
723ff9ee2aSRob Herring
737f2937efSSai Krishna Potthuri  reset-gpios:
747f2937efSSai Krishna Potthuri    description:
757f2937efSSai Krishna Potthuri      A GPIO line connected to the RESET (active low) signal of the device.
767f2937efSSai Krishna Potthuri      If "broken-flash-reset" is present then having this property does not
777f2937efSSai Krishna Potthuri      make any difference.
787f2937efSSai Krishna Potthuri
79*a56cde41SGeert Uytterhoeven  spi-cpol: true
80*a56cde41SGeert Uytterhoeven  spi-cpha: true
81*a56cde41SGeert Uytterhoeven
82*a56cde41SGeert Uytterhoevendependencies:
83*a56cde41SGeert Uytterhoeven  spi-cpol: [ spi-cpha ]
84*a56cde41SGeert Uytterhoeven  spi-cpha: [ spi-cpol ]
85*a56cde41SGeert Uytterhoeven
86e9d7c323SPratyush YadavunevaluatedProperties: false
873ff9ee2aSRob Herring
883ff9ee2aSRob Herringexamples:
893ff9ee2aSRob Herring  - |
907f2937efSSai Krishna Potthuri    #include <dt-bindings/gpio/gpio.h>
913ff9ee2aSRob Herring    spi {
923ff9ee2aSRob Herring        #address-cells = <1>;
933ff9ee2aSRob Herring        #size-cells = <0>;
943ff9ee2aSRob Herring
953ff9ee2aSRob Herring        flash@0 {
963ff9ee2aSRob Herring            compatible = "spansion,m25p80", "jedec,spi-nor";
973ff9ee2aSRob Herring            reg = <0>;
983ff9ee2aSRob Herring            spi-max-frequency = <40000000>;
993ff9ee2aSRob Herring            m25p,fast-read;
1007f2937efSSai Krishna Potthuri            reset-gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
1013ff9ee2aSRob Herring        };
1023ff9ee2aSRob Herring    };
1033ff9ee2aSRob Herring...
104