18a799590SStefan AgnerFreescale's NAND flash controller (NFC) 28a799590SStefan Agner 38a799590SStefan AgnerThis variant of the Freescale NAND flash controller (NFC) can be found on 48a799590SStefan AgnerVybrid (vf610), MPC5125, MCF54418 and Kinetis K70. 58a799590SStefan Agner 68a799590SStefan AgnerRequired properties: 78a799590SStefan Agner- compatible: Should be set to "fsl,vf610-nfc". 88a799590SStefan Agner- reg: address range of the NFC. 98a799590SStefan Agner- interrupts: interrupt of the NFC. 108a799590SStefan Agner- #address-cells: shall be set to 1. Encode the nand CS. 118a799590SStefan Agner- #size-cells : shall be set to 0. 128a799590SStefan Agner- assigned-clocks: main clock from the SoC, for Vybrid <&clks VF610_CLK_NFC>; 138a799590SStefan Agner- assigned-clock-rates: The NAND bus timing is derived from this clock 148a799590SStefan Agner rate and should not exceed maximum timing for any NAND memory chip 158a799590SStefan Agner in a board stuffing. Typical NAND memory timings derived from this 168a799590SStefan Agner clock are found in the SoC hardware reference manual. Furthermore, 178a799590SStefan Agner there might be restrictions on maximum rates when using hardware ECC. 188a799590SStefan Agner 198a799590SStefan Agner- #address-cells, #size-cells : Must be present if the device has sub-nodes 208a799590SStefan Agner representing partitions. 218a799590SStefan Agner 228a799590SStefan AgnerRequired children nodes: 238a799590SStefan AgnerChildren nodes represent the available nand chips. Currently the driver can 248a799590SStefan Agneronly handle one NAND chip. 258a799590SStefan Agner 268a799590SStefan AgnerRequired properties: 278a799590SStefan Agner- compatible: Should be set to "fsl,vf610-nfc-cs". 28*a5f2246fSKamal Dasu- nand-bus-width: see nand-controller.yaml 29*a5f2246fSKamal Dasu- nand-ecc-mode: see nand-controller.yaml 308a799590SStefan Agner 318a799590SStefan AgnerRequired properties for hardware ECC: 32*a5f2246fSKamal Dasu- nand-ecc-strength: supported strengths are 24 and 32 bit (see nand-controller.yaml) 338a799590SStefan Agner- nand-ecc-step-size: step size equals page size, currently only 2k pages are 348a799590SStefan Agner supported 35*a5f2246fSKamal Dasu- nand-on-flash-bbt: see nand-controller.yaml 368a799590SStefan Agner 378a799590SStefan AgnerExample: 388a799590SStefan Agner 398a799590SStefan Agner nfc: nand@400e0000 { 408a799590SStefan Agner compatible = "fsl,vf610-nfc"; 418a799590SStefan Agner #address-cells = <1>; 428a799590SStefan Agner #size-cells = <0>; 438a799590SStefan Agner reg = <0x400e0000 0x4000>; 448a799590SStefan Agner interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 458a799590SStefan Agner clocks = <&clks VF610_CLK_NFC>; 468a799590SStefan Agner clock-names = "nfc"; 478a799590SStefan Agner assigned-clocks = <&clks VF610_CLK_NFC>; 488a799590SStefan Agner assigned-clock-rates = <33000000>; 498a799590SStefan Agner 508a799590SStefan Agner nand@0 { 518a799590SStefan Agner compatible = "fsl,vf610-nfc-nandcs"; 528a799590SStefan Agner reg = <0>; 538a799590SStefan Agner nand-bus-width = <8>; 548a799590SStefan Agner nand-ecc-mode = "hw"; 558a799590SStefan Agner nand-ecc-strength = <32>; 568a799590SStefan Agner nand-ecc-step-size = <2048>; 578a799590SStefan Agner nand-on-flash-bbt; 588a799590SStefan Agner }; 598a799590SStefan Agner }; 60