xref: /freebsd/sys/contrib/device-tree/Bindings/memory-controllers/fsl/ifc.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotIntegrated Flash Controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotProperties:
4*c66ec88fSEmmanuel Vadot- name : Should be ifc
5*c66ec88fSEmmanuel Vadot- compatible : should contain "fsl,ifc". The version of the integrated
6*c66ec88fSEmmanuel Vadot               flash controller can be found in the IFC_REV register at
7*c66ec88fSEmmanuel Vadot               offset zero.
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot- #address-cells : Should be either two or three.  The first cell is the
10*c66ec88fSEmmanuel Vadot                   chipselect number, and the remaining cells are the
11*c66ec88fSEmmanuel Vadot                   offset into the chipselect.
12*c66ec88fSEmmanuel Vadot- #size-cells : Either one or two, depending on how large each chipselect
13*c66ec88fSEmmanuel Vadot                can be.
14*c66ec88fSEmmanuel Vadot- reg : Offset and length of the register set for the device
15*c66ec88fSEmmanuel Vadot- interrupts: IFC may have one or two interrupts.  If two interrupt
16*c66ec88fSEmmanuel Vadot              specifiers are present, the first is the "common"
17*c66ec88fSEmmanuel Vadot              interrupt (CM_EVTER_STAT), and the second is the NAND
18*c66ec88fSEmmanuel Vadot              interrupt (NAND_EVTER_STAT).  If there is only one,
19*c66ec88fSEmmanuel Vadot              that interrupt reports both types of event.
20*c66ec88fSEmmanuel Vadot
21*c66ec88fSEmmanuel Vadot- little-endian : If this property is absent, the big-endian mode will
22*c66ec88fSEmmanuel Vadot                  be in use as default for registers.
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel Vadot- ranges : Each range corresponds to a single chipselect, and covers
25*c66ec88fSEmmanuel Vadot           the entire access window as configured.
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel VadotChild device nodes describe the devices connected to IFC such as NOR (e.g.
28*c66ec88fSEmmanuel Vadotcfi-flash) and NAND (fsl,ifc-nand). There might be board specific devices
29*c66ec88fSEmmanuel Vadotlike FPGAs, CPLDs, etc.
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel VadotExample:
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel Vadot	ifc@ffe1e000 {
34*c66ec88fSEmmanuel Vadot		compatible = "fsl,ifc", "simple-bus";
35*c66ec88fSEmmanuel Vadot		#address-cells = <2>;
36*c66ec88fSEmmanuel Vadot		#size-cells = <1>;
37*c66ec88fSEmmanuel Vadot		reg = <0x0 0xffe1e000 0 0x2000>;
38*c66ec88fSEmmanuel Vadot		interrupts = <16 2 19 2>;
39*c66ec88fSEmmanuel Vadot		little-endian;
40*c66ec88fSEmmanuel Vadot
41*c66ec88fSEmmanuel Vadot		/* NOR, NAND Flashes and CPLD on board */
42*c66ec88fSEmmanuel Vadot		ranges = <0x0 0x0 0x0 0xee000000 0x02000000
43*c66ec88fSEmmanuel Vadot			  0x1 0x0 0x0 0xffa00000 0x00010000
44*c66ec88fSEmmanuel Vadot			  0x3 0x0 0x0 0xffb00000 0x00020000>;
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel Vadot		flash@0,0 {
47*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
48*c66ec88fSEmmanuel Vadot			#size-cells = <1>;
49*c66ec88fSEmmanuel Vadot			compatible = "cfi-flash";
50*c66ec88fSEmmanuel Vadot			reg = <0x0 0x0 0x2000000>;
51*c66ec88fSEmmanuel Vadot			bank-width = <2>;
52*c66ec88fSEmmanuel Vadot			device-width = <1>;
53*c66ec88fSEmmanuel Vadot
54*c66ec88fSEmmanuel Vadot			partition@0 {
55*c66ec88fSEmmanuel Vadot				/* 32MB for user data */
56*c66ec88fSEmmanuel Vadot				reg = <0x0 0x02000000>;
57*c66ec88fSEmmanuel Vadot				label = "NOR Data";
58*c66ec88fSEmmanuel Vadot			};
59*c66ec88fSEmmanuel Vadot		};
60*c66ec88fSEmmanuel Vadot
61*c66ec88fSEmmanuel Vadot		flash@1,0 {
62*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
63*c66ec88fSEmmanuel Vadot			#size-cells = <1>;
64*c66ec88fSEmmanuel Vadot			compatible = "fsl,ifc-nand";
65*c66ec88fSEmmanuel Vadot			reg = <0x1 0x0 0x10000>;
66*c66ec88fSEmmanuel Vadot
67*c66ec88fSEmmanuel Vadot			partition@0 {
68*c66ec88fSEmmanuel Vadot				/* This location must not be altered  */
69*c66ec88fSEmmanuel Vadot				/* 1MB for u-boot Bootloader Image */
70*c66ec88fSEmmanuel Vadot				reg = <0x0 0x00100000>;
71*c66ec88fSEmmanuel Vadot				label = "NAND U-Boot Image";
72*c66ec88fSEmmanuel Vadot				read-only;
73*c66ec88fSEmmanuel Vadot			};
74*c66ec88fSEmmanuel Vadot		};
75*c66ec88fSEmmanuel Vadot
76*c66ec88fSEmmanuel Vadot		cpld@3,0 {
77*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
78*c66ec88fSEmmanuel Vadot			#size-cells = <1>;
79*c66ec88fSEmmanuel Vadot			compatible = "fsl,p1010rdb-cpld";
80*c66ec88fSEmmanuel Vadot			reg = <0x3 0x0 0x000001f>;
81*c66ec88fSEmmanuel Vadot		};
82*c66ec88fSEmmanuel Vadot	};
83