18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mtd/gpmi-nand.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Freescale General-Purpose Media Interface (GPMI) binding 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Han Xu <han.xu@nxp.com> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciallOf: 138c2ecf20Sopenharmony_ci - $ref: "nand-controller.yaml" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cidescription: | 168c2ecf20Sopenharmony_ci The GPMI nand controller provides an interface to control the NAND 178c2ecf20Sopenharmony_ci flash chips. The device tree may optionally contain sub-nodes 188c2ecf20Sopenharmony_ci describing partitions of the address space. See partition.txt for 198c2ecf20Sopenharmony_ci more detail. 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciproperties: 228c2ecf20Sopenharmony_ci compatible: 238c2ecf20Sopenharmony_ci oneOf: 248c2ecf20Sopenharmony_ci - enum: 258c2ecf20Sopenharmony_ci - fsl,imx23-gpmi-nand 268c2ecf20Sopenharmony_ci - fsl,imx28-gpmi-nand 278c2ecf20Sopenharmony_ci - fsl,imx6q-gpmi-nand 288c2ecf20Sopenharmony_ci - fsl,imx6sx-gpmi-nand 298c2ecf20Sopenharmony_ci - fsl,imx7d-gpmi-nand 308c2ecf20Sopenharmony_ci - items: 318c2ecf20Sopenharmony_ci - enum: 328c2ecf20Sopenharmony_ci - fsl,imx8mm-gpmi-nand 338c2ecf20Sopenharmony_ci - fsl,imx8mn-gpmi-nand 348c2ecf20Sopenharmony_ci - const: fsl,imx7d-gpmi-nand 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci reg: 378c2ecf20Sopenharmony_ci items: 388c2ecf20Sopenharmony_ci - description: Address and length of gpmi block. 398c2ecf20Sopenharmony_ci - description: Address and length of bch block. 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci reg-names: 428c2ecf20Sopenharmony_ci items: 438c2ecf20Sopenharmony_ci - const: gpmi-nand 448c2ecf20Sopenharmony_ci - const: bch 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci interrupts: 478c2ecf20Sopenharmony_ci maxItems: 1 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci interrupt-names: 508c2ecf20Sopenharmony_ci const: bch 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci dmas: 538c2ecf20Sopenharmony_ci maxItems: 1 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci dma-names: 568c2ecf20Sopenharmony_ci const: rx-tx 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci clocks: 598c2ecf20Sopenharmony_ci minItems: 1 608c2ecf20Sopenharmony_ci maxItems: 5 618c2ecf20Sopenharmony_ci items: 628c2ecf20Sopenharmony_ci - description: SoC gpmi io clock 638c2ecf20Sopenharmony_ci - description: SoC gpmi apb clock 648c2ecf20Sopenharmony_ci - description: SoC gpmi bch clock 658c2ecf20Sopenharmony_ci - description: SoC gpmi bch apb clock 668c2ecf20Sopenharmony_ci - description: SoC per1 bch clock 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci clock-names: 698c2ecf20Sopenharmony_ci minItems: 1 708c2ecf20Sopenharmony_ci maxItems: 5 718c2ecf20Sopenharmony_ci items: 728c2ecf20Sopenharmony_ci - const: gpmi_io 738c2ecf20Sopenharmony_ci - const: gpmi_apb 748c2ecf20Sopenharmony_ci - const: gpmi_bch 758c2ecf20Sopenharmony_ci - const: gpmi_bch_apb 768c2ecf20Sopenharmony_ci - const: per1_bch 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci fsl,use-minimum-ecc: 798c2ecf20Sopenharmony_ci type: boolean 808c2ecf20Sopenharmony_ci description: | 818c2ecf20Sopenharmony_ci Protect this NAND flash with the minimum ECC strength required. 828c2ecf20Sopenharmony_ci The required ECC strength is automatically discoverable for some 838c2ecf20Sopenharmony_ci flash (e.g., according to the ONFI standard). However, note that 848c2ecf20Sopenharmony_ci if this strength is not discoverable or this property is not enabled, 858c2ecf20Sopenharmony_ci the software may chooses an implementation-defined ECC scheme. 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci fsl,no-blockmark-swap: 888c2ecf20Sopenharmony_ci type: boolean 898c2ecf20Sopenharmony_ci description: | 908c2ecf20Sopenharmony_ci Don't swap the bad block marker from the OOB area with the byte in 918c2ecf20Sopenharmony_ci the data area but rely on the flash based BBT for identifying bad blocks. 928c2ecf20Sopenharmony_ci NOTE: this is only valid in conjunction with 'nand-on-flash-bbt'. 938c2ecf20Sopenharmony_ci WARNING: on i.MX28 blockmark swapping cannot be disabled for the BootROM 948c2ecf20Sopenharmony_ci in the FCB. Thus, partitions written from Linux with this feature turned 958c2ecf20Sopenharmony_ci on may not be accessible by the BootROM code. 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_cirequired: 988c2ecf20Sopenharmony_ci - compatible 998c2ecf20Sopenharmony_ci - reg 1008c2ecf20Sopenharmony_ci - reg-names 1018c2ecf20Sopenharmony_ci - interrupts 1028c2ecf20Sopenharmony_ci - interrupt-names 1038c2ecf20Sopenharmony_ci - clocks 1048c2ecf20Sopenharmony_ci - clock-names 1058c2ecf20Sopenharmony_ci - dmas 1068c2ecf20Sopenharmony_ci - dma-names 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ciunevaluatedProperties: false 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ciexamples: 1118c2ecf20Sopenharmony_ci - | 1128c2ecf20Sopenharmony_ci nand-controller@8000c000 { 1138c2ecf20Sopenharmony_ci #address-cells = <1>; 1148c2ecf20Sopenharmony_ci #size-cells = <0>; 1158c2ecf20Sopenharmony_ci compatible = "fsl,imx28-gpmi-nand"; 1168c2ecf20Sopenharmony_ci reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>; 1178c2ecf20Sopenharmony_ci reg-names = "gpmi-nand", "bch"; 1188c2ecf20Sopenharmony_ci interrupts = <41>; 1198c2ecf20Sopenharmony_ci interrupt-names = "bch"; 1208c2ecf20Sopenharmony_ci clocks = <&clks 50>; 1218c2ecf20Sopenharmony_ci clock-names = "gpmi_io"; 1228c2ecf20Sopenharmony_ci dmas = <&dma_apbh 4>; 1238c2ecf20Sopenharmony_ci dma-names = "rx-tx"; 1248c2ecf20Sopenharmony_ci }; 125