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