fsl,ifc.yaml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/memory-controllers/fsl/fsl,ifc.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: FSL/NXP Integrated Flash Controller
  7. maintainers:
  8. - Shawn Guo <shawnguo@kernel.org>
  9. description: |
  10. NXP's integrated flash controller (IFC) is an advanced version of the
  11. enhanced local bus controller which includes similar programming and signal
  12. interfaces with an extended feature set. The IFC provides access to multiple
  13. external memory types, such as NAND flash (SLC and MLC), NOR flash, EPROM,
  14. SRAM and other memories where address and data are shared on a bus.
  15. properties:
  16. $nodename:
  17. pattern: "^memory-controller@[0-9a-f]+$"
  18. compatible:
  19. const: fsl,ifc
  20. "#address-cells":
  21. enum: [2, 3]
  22. description: |
  23. Should be either two or three. The first cell is the chipselect
  24. number, and the remaining cells are the offset into the chipselect.
  25. "#size-cells":
  26. enum: [1, 2]
  27. description: |
  28. Either one or two, depending on how large each chipselect can be.
  29. reg:
  30. maxItems: 1
  31. interrupts:
  32. minItems: 1
  33. maxItems: 2
  34. description: |
  35. IFC may have one or two interrupts. If two interrupt specifiers are
  36. present, the first is the "common" interrupt (CM_EVTER_STAT), and the
  37. second is the NAND interrupt (NAND_EVTER_STAT). If there is only one,
  38. that interrupt reports both types of event.
  39. little-endian:
  40. type: boolean
  41. description: |
  42. If this property is absent, the big-endian mode will be in use as default
  43. for registers.
  44. ranges:
  45. description: |
  46. Each range corresponds to a single chipselect, and covers the entire
  47. access window as configured.
  48. patternProperties:
  49. "^.*@[a-f0-9]+(,[a-f0-9]+)+$":
  50. type: object
  51. description: |
  52. Child device nodes describe the devices connected to IFC such as NOR (e.g.
  53. cfi-flash) and NAND (fsl,ifc-nand). There might be board specific devices
  54. like FPGAs, CPLDs, etc.
  55. required:
  56. - compatible
  57. - reg
  58. required:
  59. - compatible
  60. - reg
  61. - interrupts
  62. additionalProperties: false
  63. examples:
  64. - |
  65. soc {
  66. #address-cells = <2>;
  67. #size-cells = <2>;
  68. memory-controller@ffe1e000 {
  69. compatible = "fsl,ifc";
  70. #address-cells = <2>;
  71. #size-cells = <1>;
  72. reg = <0x0 0xffe1e000 0 0x2000>;
  73. interrupts = <16 2 19 2>;
  74. little-endian;
  75. /* NOR, NAND Flashes and CPLD on board */
  76. ranges = <0x0 0x0 0x0 0xee000000 0x02000000>,
  77. <0x1 0x0 0x0 0xffa00000 0x00010000>,
  78. <0x3 0x0 0x0 0xffb00000 0x00020000>;
  79. flash@0,0 {
  80. #address-cells = <1>;
  81. #size-cells = <1>;
  82. compatible = "cfi-flash";
  83. reg = <0x0 0x0 0x2000000>;
  84. bank-width = <2>;
  85. device-width = <1>;
  86. partition@0 {
  87. /* 32MB for user data */
  88. reg = <0x0 0x02000000>;
  89. label = "NOR Data";
  90. };
  91. };
  92. };
  93. };