| * Ingenic JZ4780 NAND/external memory controller (NEMC) |
| |
| This file documents the device tree bindings for the NEMC external memory |
| controller in Ingenic JZ4780 |
| |
| Required properties: |
| - compatible: Should be set to one of: |
| "ingenic,jz4780-nemc" (JZ4780) |
| - reg: Should specify the NEMC controller registers location and length. |
| - clocks: Clock for the NEMC controller. |
| - #address-cells: Must be set to 2. |
| - #size-cells: Must be set to 1. |
| - ranges: A set of ranges for each bank describing the physical memory layout. |
| Each should specify the following 4 integer values: |
| |
| <cs number> 0 <physical address of mapping> <size of mapping> |
| |
| Each child of the NEMC node describes a device connected to the NEMC. |
| |
| Required child node properties: |
| - reg: Should contain at least one register specifier, given in the following |
| format: |
| |
| <cs number> <offset> <size> |
| |
| Multiple registers can be specified across multiple banks. This is needed, |
| for example, for packaged NAND devices with multiple dies. Such devices |
| should be grouped into a single node. |
| |
| Optional child node properties: |
| - ingenic,nemc-bus-width: Specifies the bus width in bits. Defaults to 8 bits. |
| - ingenic,nemc-tAS: Address setup time in nanoseconds. |
| - ingenic,nemc-tAH: Address hold time in nanoseconds. |
| - ingenic,nemc-tBP: Burst pitch time in nanoseconds. |
| - ingenic,nemc-tAW: Access wait time in nanoseconds. |
| - ingenic,nemc-tSTRV: Static memory recovery time in nanoseconds. |
| |
| If a child node references multiple banks in its "reg" property, the same value |
| for all optional parameters will be configured for all banks. If any optional |
| parameters are omitted, they will be left unchanged from whatever they are |
| configured to when the NEMC device is probed (which may be the reset value as |
| given in the hardware reference manual, or a value configured by the boot |
| loader). |
| |
| Example (NEMC node with a NAND child device attached at CS1): |
| |
| nemc: nemc@13410000 { |
| compatible = "ingenic,jz4780-nemc"; |
| reg = <0x13410000 0x10000>; |
| |
| #address-cells = <2>; |
| #size-cells = <1>; |
| |
| ranges = <1 0 0x1b000000 0x1000000 |
| 2 0 0x1a000000 0x1000000 |
| 3 0 0x19000000 0x1000000 |
| 4 0 0x18000000 0x1000000 |
| 5 0 0x17000000 0x1000000 |
| 6 0 0x16000000 0x1000000>; |
| |
| clocks = <&cgu JZ4780_CLK_NEMC>; |
| |
| nand: nand@1 { |
| compatible = "ingenic,jz4780-nand"; |
| reg = <1 0 0x1000000>; |
| |
| ingenic,nemc-tAS = <10>; |
| ingenic,nemc-tAH = <5>; |
| ingenic,nemc-tBP = <10>; |
| ingenic,nemc-tAW = <15>; |
| ingenic,nemc-tSTRV = <100>; |
| |
| ... |
| }; |
| }; |