xref: /linux/Documentation/devicetree/bindings/memory-controllers/fsl/fsl,ifc.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
1985ede63SLi Yang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2985ede63SLi Yang%YAML 1.2
3985ede63SLi Yang---
4985ede63SLi Yang$id: http://devicetree.org/schemas/memory-controllers/fsl/fsl,ifc.yaml#
5985ede63SLi Yang$schema: http://devicetree.org/meta-schemas/core.yaml#
6985ede63SLi Yang
7985ede63SLi Yangtitle: FSL/NXP Integrated Flash Controller
8985ede63SLi Yang
9985ede63SLi Yangmaintainers:
10815cc771SMichael Walle  - Shawn Guo <shawnguo@kernel.org>
11985ede63SLi Yang
12985ede63SLi Yangdescription: |
13985ede63SLi Yang  NXP's integrated flash controller (IFC) is an advanced version of the
14985ede63SLi Yang  enhanced local bus controller which includes similar programming and signal
15985ede63SLi Yang  interfaces with an extended feature set. The IFC provides access to multiple
16985ede63SLi Yang  external memory types, such as NAND flash (SLC and MLC), NOR flash, EPROM,
17985ede63SLi Yang  SRAM and other memories where address and data are shared on a bus.
18985ede63SLi Yang
19985ede63SLi Yangproperties:
20985ede63SLi Yang  $nodename:
21985ede63SLi Yang    pattern: "^memory-controller@[0-9a-f]+$"
22985ede63SLi Yang
23985ede63SLi Yang  compatible:
24985ede63SLi Yang    const: fsl,ifc
25985ede63SLi Yang
26985ede63SLi Yang  "#address-cells":
27985ede63SLi Yang    enum: [2, 3]
28985ede63SLi Yang    description: |
29985ede63SLi Yang      Should be either two or three.  The first cell is the chipselect
30985ede63SLi Yang      number, and the remaining cells are the offset into the chipselect.
31985ede63SLi Yang
32985ede63SLi Yang  "#size-cells":
33985ede63SLi Yang    enum: [1, 2]
34985ede63SLi Yang    description: |
35985ede63SLi Yang      Either one or two, depending on how large each chipselect can be.
36985ede63SLi Yang
37985ede63SLi Yang  reg:
38985ede63SLi Yang    maxItems: 1
39985ede63SLi Yang
40985ede63SLi Yang  interrupts:
41985ede63SLi Yang    minItems: 1
42985ede63SLi Yang    maxItems: 2
43985ede63SLi Yang    description: |
44985ede63SLi Yang      IFC may have one or two interrupts.  If two interrupt specifiers are
45985ede63SLi Yang      present, the first is the "common" interrupt (CM_EVTER_STAT), and the
46985ede63SLi Yang      second is the NAND interrupt (NAND_EVTER_STAT).  If there is only one,
47985ede63SLi Yang      that interrupt reports both types of event.
48985ede63SLi Yang
49985ede63SLi Yang  little-endian:
50985ede63SLi Yang    type: boolean
51985ede63SLi Yang    description: |
52985ede63SLi Yang      If this property is absent, the big-endian mode will be in use as default
53985ede63SLi Yang      for registers.
54985ede63SLi Yang
55985ede63SLi Yang  ranges:
56985ede63SLi Yang    description: |
57985ede63SLi Yang      Each range corresponds to a single chipselect, and covers the entire
58985ede63SLi Yang      access window as configured.
59985ede63SLi Yang
60985ede63SLi YangpatternProperties:
61*89e66845SFrank Li  "^nand@[a-f0-9]+(,[a-f0-9]+)+$":
62985ede63SLi Yang    type: object
63*89e66845SFrank Li    properties:
64*89e66845SFrank Li      compatible:
65*89e66845SFrank Li        const: fsl,ifc-nand
66*89e66845SFrank Li
67*89e66845SFrank Li      reg:
68*89e66845SFrank Li        maxItems: 1
69*89e66845SFrank Li
70*89e66845SFrank Li      "#address-cells":
71*89e66845SFrank Li        const: 1
72*89e66845SFrank Li
73*89e66845SFrank Li      "#size-cells":
74*89e66845SFrank Li        const: 1
75*89e66845SFrank Li
76*89e66845SFrank Li    patternProperties:
77*89e66845SFrank Li      "^partition@[0-9a-f]+":
78*89e66845SFrank Li        $ref: /schemas/mtd/partitions/partition.yaml#
79*89e66845SFrank Li        deprecated: true
80985ede63SLi Yang
81985ede63SLi Yang    required:
82985ede63SLi Yang      - compatible
83985ede63SLi Yang      - reg
84985ede63SLi Yang
85*89e66845SFrank Li    additionalProperties: false
86*89e66845SFrank Li
87*89e66845SFrank Li  "(flash|fpga|board-control|cpld)@[a-f0-9]+(,[a-f0-9]+)+$":
88*89e66845SFrank Li    type: object
89*89e66845SFrank Li    oneOf:
90*89e66845SFrank Li      - $ref: /schemas/board/fsl,fpga-qixis.yaml#
91*89e66845SFrank Li      - $ref: /schemas/mtd/mtd-physmap.yaml#
92*89e66845SFrank Li    unevaluatedProperties: false
93*89e66845SFrank Li
94985ede63SLi Yangrequired:
95985ede63SLi Yang  - compatible
96985ede63SLi Yang  - reg
97985ede63SLi Yang  - interrupts
98985ede63SLi Yang
99985ede63SLi YangadditionalProperties: false
100985ede63SLi Yang
101985ede63SLi Yangexamples:
102985ede63SLi Yang  - |
103985ede63SLi Yang    soc {
104985ede63SLi Yang        #address-cells = <2>;
105985ede63SLi Yang        #size-cells = <2>;
106985ede63SLi Yang
107985ede63SLi Yang        memory-controller@ffe1e000 {
108985ede63SLi Yang            compatible = "fsl,ifc";
109985ede63SLi Yang            #address-cells = <2>;
110985ede63SLi Yang            #size-cells = <1>;
111985ede63SLi Yang            reg = <0x0 0xffe1e000 0 0x2000>;
112985ede63SLi Yang            interrupts = <16 2 19 2>;
113985ede63SLi Yang            little-endian;
114985ede63SLi Yang
115985ede63SLi Yang            /* NOR, NAND Flashes and CPLD on board */
116985ede63SLi Yang            ranges = <0x0 0x0 0x0 0xee000000 0x02000000>,
117985ede63SLi Yang                     <0x1 0x0 0x0 0xffa00000 0x00010000>,
118985ede63SLi Yang                     <0x3 0x0 0x0 0xffb00000 0x00020000>;
119985ede63SLi Yang
120985ede63SLi Yang            flash@0,0 {
121985ede63SLi Yang                #address-cells = <1>;
122985ede63SLi Yang                #size-cells = <1>;
123985ede63SLi Yang                compatible = "cfi-flash";
124985ede63SLi Yang                reg = <0x0 0x0 0x2000000>;
125985ede63SLi Yang                bank-width = <2>;
126985ede63SLi Yang                device-width = <1>;
127985ede63SLi Yang
128985ede63SLi Yang                partition@0 {
129985ede63SLi Yang                    /* 32MB for user data */
130985ede63SLi Yang                    reg = <0x0 0x02000000>;
131985ede63SLi Yang                    label = "NOR Data";
132985ede63SLi Yang                };
133985ede63SLi Yang            };
134985ede63SLi Yang        };
135985ede63SLi Yang    };
136