]>
Commit | Line | Data |
---|---|---|
8a799590 SA |
1 | Freescale's NAND flash controller (NFC) |
2 | ||
3 | This variant of the Freescale NAND flash controller (NFC) can be found on | |
4 | Vybrid (vf610), MPC5125, MCF54418 and Kinetis K70. | |
5 | ||
6 | Required properties: | |
7 | - compatible: Should be set to "fsl,vf610-nfc". | |
8 | - reg: address range of the NFC. | |
9 | - interrupts: interrupt of the NFC. | |
10 | - #address-cells: shall be set to 1. Encode the nand CS. | |
11 | - #size-cells : shall be set to 0. | |
12 | - assigned-clocks: main clock from the SoC, for Vybrid <&clks VF610_CLK_NFC>; | |
13 | - assigned-clock-rates: The NAND bus timing is derived from this clock | |
14 | rate and should not exceed maximum timing for any NAND memory chip | |
15 | in a board stuffing. Typical NAND memory timings derived from this | |
16 | clock are found in the SoC hardware reference manual. Furthermore, | |
17 | there might be restrictions on maximum rates when using hardware ECC. | |
18 | ||
19 | - #address-cells, #size-cells : Must be present if the device has sub-nodes | |
20 | representing partitions. | |
21 | ||
22 | Required children nodes: | |
23 | Children nodes represent the available nand chips. Currently the driver can | |
24 | only handle one NAND chip. | |
25 | ||
26 | Required properties: | |
27 | - compatible: Should be set to "fsl,vf610-nfc-cs". | |
a5f2246f KD |
28 | - nand-bus-width: see nand-controller.yaml |
29 | - nand-ecc-mode: see nand-controller.yaml | |
8a799590 SA |
30 | |
31 | Required properties for hardware ECC: | |
a5f2246f | 32 | - nand-ecc-strength: supported strengths are 24 and 32 bit (see nand-controller.yaml) |
8a799590 SA |
33 | - nand-ecc-step-size: step size equals page size, currently only 2k pages are |
34 | supported | |
a5f2246f | 35 | - nand-on-flash-bbt: see nand-controller.yaml |
8a799590 SA |
36 | |
37 | Example: | |
38 | ||
39 | nfc: nand@400e0000 { | |
40 | compatible = "fsl,vf610-nfc"; | |
41 | #address-cells = <1>; | |
42 | #size-cells = <0>; | |
43 | reg = <0x400e0000 0x4000>; | |
44 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | |
45 | clocks = <&clks VF610_CLK_NFC>; | |
46 | clock-names = "nfc"; | |
47 | assigned-clocks = <&clks VF610_CLK_NFC>; | |
48 | assigned-clock-rates = <33000000>; | |
49 | ||
50 | nand@0 { | |
51 | compatible = "fsl,vf610-nfc-nandcs"; | |
52 | reg = <0>; | |
53 | nand-bus-width = <8>; | |
54 | nand-ecc-mode = "hw"; | |
55 | nand-ecc-strength = <32>; | |
56 | nand-ecc-step-size = <2048>; | |
57 | nand-on-flash-bbt; | |
58 | }; | |
59 | }; |