76 lines
3 KiB
Plaintext
76 lines
3 KiB
Plaintext
|
* Freescale General-Purpose Media Interface (GPMI)
|
||
|
|
||
|
The GPMI nand controller provides an interface to control the
|
||
|
NAND flash chips.
|
||
|
|
||
|
Required properties:
|
||
|
- compatible : should be "fsl,<chip>-gpmi-nand", chip can be:
|
||
|
* imx23
|
||
|
* imx28
|
||
|
* imx6q
|
||
|
* imx6sx
|
||
|
* imx7d
|
||
|
- reg : should contain registers location and length for gpmi and bch.
|
||
|
- reg-names: Should contain the reg names "gpmi-nand" and "bch"
|
||
|
- interrupts : BCH interrupt number.
|
||
|
- interrupt-names : Should be "bch".
|
||
|
- dmas: DMA specifier, consisting of a phandle to DMA controller node
|
||
|
and GPMI DMA channel ID.
|
||
|
Refer to dma.txt and fsl-mxs-dma.txt for details.
|
||
|
- dma-names: Must be "rx-tx".
|
||
|
- clocks : clocks phandle and clock specifier corresponding to each clock
|
||
|
specified in clock-names.
|
||
|
- clock-names : The "gpmi_io" clock is always required. Which clocks are
|
||
|
exactly required depends on chip:
|
||
|
* imx23/imx28 : "gpmi_io"
|
||
|
* imx6q/sx : "gpmi_io", "gpmi_apb", "gpmi_bch", "gpmi_bch_apb", "per1_bch"
|
||
|
* imx7d : "gpmi_io", "gpmi_bch_apb"
|
||
|
|
||
|
Optional properties:
|
||
|
- nand-on-flash-bbt: boolean to enable on flash bbt option if not
|
||
|
present false
|
||
|
- fsl,use-minimum-ecc: Protect this NAND flash with the minimum ECC
|
||
|
strength required. The required ECC strength is
|
||
|
automatically discoverable for some flash
|
||
|
(e.g., according to the ONFI standard).
|
||
|
However, note that if this strength is not
|
||
|
discoverable or this property is not enabled,
|
||
|
the software may chooses an implementation-defined
|
||
|
ECC scheme.
|
||
|
- fsl,no-blockmark-swap: Don't swap the bad block marker from the OOB
|
||
|
area with the byte in the data area but rely on the
|
||
|
flash based BBT for identifying bad blocks.
|
||
|
NOTE: this is only valid in conjunction with
|
||
|
'nand-on-flash-bbt'.
|
||
|
WARNING: on i.MX28 blockmark swapping cannot be
|
||
|
disabled for the BootROM in the FCB. Thus,
|
||
|
partitions written from Linux with this feature
|
||
|
turned on may not be accessible by the BootROM
|
||
|
code.
|
||
|
- nand-ecc-strength: integer representing the number of bits to correct
|
||
|
per ECC step. Needs to be a multiple of 2.
|
||
|
- nand-ecc-step-size: integer representing the number of data bytes
|
||
|
that are covered by a single ECC step. The driver
|
||
|
supports 512 and 1024.
|
||
|
|
||
|
The device tree may optionally contain sub-nodes describing partitions of the
|
||
|
address space. See partition.txt for more detail.
|
||
|
|
||
|
Examples:
|
||
|
|
||
|
gpmi-nand@8000c000 {
|
||
|
compatible = "fsl,imx28-gpmi-nand";
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
reg = <0x8000c000 2000>, <0x8000a000 2000>;
|
||
|
reg-names = "gpmi-nand", "bch";
|
||
|
interrupts = <41>;
|
||
|
interrupt-names = "bch";
|
||
|
dmas = <&dma_apbh 4>;
|
||
|
dma-names = "rx-tx";
|
||
|
|
||
|
partition@0 {
|
||
|
...
|
||
|
};
|
||
|
};
|