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