xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mtd/vf610-nfc.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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