| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/mtd/ti,gpmc-nand.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Texas Instruments GPMC NAND Flash controller. |
| |
| maintainers: |
| - Tony Lindgren <tony@atomide.com> |
| - Roger Quadros <rogerq@kernel.org> |
| |
| description: |
| GPMC NAND controller/Flash is represented as a child of the |
| GPMC controller node. |
| |
| properties: |
| compatible: |
| items: |
| - enum: |
| - ti,am64-nand |
| - ti,omap2-nand |
| |
| reg: |
| maxItems: 1 |
| |
| interrupts: |
| items: |
| - description: Interrupt for fifoevent |
| - description: Interrupt for termcount |
| |
| "#address-cells": true |
| |
| "#size-cells": true |
| |
| ti,nand-ecc-opt: |
| description: Desired ECC algorithm |
| $ref: /schemas/types.yaml#/definitions/string |
| enum: [sw, ham1, bch4, bch8, bch16] |
| |
| ti,nand-xfer-type: |
| description: Data transfer method between controller and chip. |
| $ref: /schemas/types.yaml#/definitions/string |
| enum: [prefetch-polled, polled, prefetch-dma, prefetch-irq] |
| default: prefetch-polled |
| |
| ti,elm-id: |
| description: |
| phandle to the ELM (Error Location Module). |
| $ref: /schemas/types.yaml#/definitions/phandle |
| |
| nand-bus-width: |
| description: |
| Bus width to the NAND chip |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [8, 16] |
| default: 8 |
| |
| rb-gpios: |
| description: |
| GPIO connection to R/B signal from NAND chip |
| maxItems: 1 |
| |
| allOf: |
| - $ref: /schemas/memory-controllers/ti,gpmc-child.yaml |
| - $ref: mtd.yaml# |
| |
| required: |
| - compatible |
| - reg |
| - ti,nand-ecc-opt |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| #include <dt-bindings/gpio/gpio.h> |
| |
| gpmc: memory-controller@50000000 { |
| compatible = "ti,am3352-gpmc"; |
| dmas = <&edma 52 0>; |
| dma-names = "rxtx"; |
| clocks = <&l3s_gclk>; |
| clock-names = "fck"; |
| reg = <0x50000000 0x2000>; |
| interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; |
| gpmc,num-cs = <7>; |
| gpmc,num-waitpins = <2>; |
| #address-cells = <2>; |
| #size-cells = <1>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| |
| ranges = <0 0 0x08000000 0x01000000>; /* CS0 space. Min partition = 16MB */ |
| nand@0,0 { |
| compatible = "ti,omap2-nand"; |
| reg = <0 0 4>; /* device IO registers */ |
| interrupt-parent = <&gpmc>; |
| interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */ |
| <1 IRQ_TYPE_NONE>; /* termcount */ |
| ti,nand-xfer-type = "prefetch-dma"; |
| ti,nand-ecc-opt = "bch16"; |
| ti,elm-id = <&elm>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| /* NAND generic properties */ |
| nand-bus-width = <8>; |
| rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */ |
| |
| /* GPMC properties*/ |
| gpmc,device-width = <1>; |
| |
| partition@0 { |
| label = "NAND.SPL"; |
| reg = <0x00000000 0x00040000>; |
| }; |
| partition@1 { |
| label = "NAND.SPL.backup1"; |
| reg = <0x00040000 0x00040000>; |
| }; |
| }; |
| }; |