ifc.txt 2.4 KB

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