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