Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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,imx-weim.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: i.MX Wireless External Interface Module (WEIM)
8
9maintainers:
10 - Shawn Guo <shawnguo@kernel.org>
11 - Sascha Hauer <s.hauer@pengutronix.de>
12
13description:
14 The term "wireless" does not imply that the WEIM is literally an interface
15 without wires. It simply means that this module was originally designed for
16 wireless and mobile applications that use low-power technology. The actual
17 devices are instantiated from the child nodes of a WEIM node.
18
19properties:
20 $nodename:
21 pattern: "^memory-controller@[0-9a-f]+$"
22
23 compatible:
24 oneOf:
25 - enum:
26 - fsl,imx1-weim
27 - fsl,imx27-weim
28 - fsl,imx50-weim
29 - fsl,imx51-weim
30 - fsl,imx6q-weim
31 - items:
32 - enum:
33 - fsl,imx31-weim
34 - fsl,imx35-weim
35 - const: fsl,imx27-weim
36 - items:
37 - enum:
38 - fsl,imx6sx-weim
39 - fsl,imx6ul-weim
40 - const: fsl,imx6q-weim
41
42 "#address-cells":
43 const: 2
44
45 "#size-cells":
46 const: 1
47
48 reg:
49 maxItems: 1
50
51 clocks:
52 maxItems: 1
53
54 interrupts:
55 maxItems: 1
56
57 ranges: true
58
59 fsl,weim-cs-gpr:
60 $ref: /schemas/types.yaml#/definitions/phandle
61 description: |
62 Phandle to the system General Purpose Register controller that contains
63 WEIM CS GPR register, e.g. IOMUXC_GPR1 on i.MX6Q. IOMUXC_GPR1[11:0]
64 should be set up as one of the following 4 possible values depending on
65 the CS space configuration.
66
67 IOMUXC_GPR1[11:0] CS0 CS1 CS2 CS3
68 ---------------------------------------------
69 05 128M 0M 0M 0M
70 033 64M 64M 0M 0M
71 0113 64M 32M 32M 0M
72 01111 32M 32M 32M 32M
73
74 In case that the property is absent, the reset value or what bootloader
75 sets up in IOMUXC_GPR1[11:0] will be used.
76
77 fsl,burst-clk-enable:
78 type: boolean
79 description:
80 The presence of this property indicates that the weim bus should operate
81 in Burst Clock Mode.
82
83 fsl,continuous-burst-clk:
84 type: boolean
85 description:
86 Make Burst Clock to output continuous clock. Without this option Burst
87 Clock will output clock only when necessary.
88
89patternProperties:
90 "^.*@[0-7],[0-9a-f]+$":
91 type: object
92 description: Devices attached to chip selects are represented as subnodes.
93 $ref: fsl,imx-weim-peripherals.yaml
94 additionalProperties: true
95 required:
96 - fsl,weim-cs-timing
97
98required:
99 - compatible
100 - reg
101 - clocks
102 - "#address-cells"
103 - "#size-cells"
104 - ranges
105
106allOf:
107 - if:
108 properties:
109 compatible:
110 not:
111 contains:
112 enum:
113 - fsl,imx50-weim
114 - fsl,imx6q-weim
115 then:
116 properties:
117 fsl,weim-cs-gpr: false
118 fsl,burst-clk-enable: false
119 - if:
120 not:
121 required:
122 - fsl,burst-clk-enable
123 then:
124 properties:
125 fsl,continuous-burst-clk: false
126 - if:
127 properties:
128 compatible:
129 contains:
130 const: fsl,imx1-weim
131 then:
132 patternProperties:
133 "^.*@[0-7],[0-9a-f]+$":
134 properties:
135 fsl,weim-cs-timing:
136 items:
137 - description: CSxU
138 - description: CSxL
139 - if:
140 properties:
141 compatible:
142 contains:
143 enum:
144 - fsl,imx27-weim
145 - fsl,imx31-weim
146 - fsl,imx35-weim
147 then:
148 patternProperties:
149 "^.*@[0-7],[0-9a-f]+$":
150 properties:
151 fsl,weim-cs-timing:
152 items:
153 - description: CSCRxU
154 - description: CSCRxL
155 - description: CSCRxA
156 - if:
157 properties:
158 compatible:
159 contains:
160 enum:
161 - fsl,imx50-weim
162 - fsl,imx51-weim
163 - fsl,imx6q-weim
164 - fsl,imx6sx-weim
165 - fsl,imx6ul-weim
166 then:
167 patternProperties:
168 "^.*@[0-7],[0-9a-f]+$":
169 properties:
170 fsl,weim-cs-timing:
171 items:
172 - description: CSxGCR1
173 - description: CSxGCR2
174 - description: CSxRCR1
175 - description: CSxRCR2
176 - description: CSxWCR1
177 - description: CSxWCR2
178
179additionalProperties: false
180
181examples:
182 - |
183 memory-controller@21b8000 {
184 compatible = "fsl,imx6q-weim";
185 reg = <0x021b8000 0x4000>;
186 clocks = <&clks 196>;
187 #address-cells = <2>;
188 #size-cells = <1>;
189 ranges = <0 0 0x08000000 0x08000000>;
190 fsl,weim-cs-gpr = <&gpr>;
191
192 flash@0,0 {
193 compatible = "cfi-flash";
194 reg = <0 0 0x02000000>;
195 #address-cells = <1>;
196 #size-cells = <1>;
197 bank-width = <2>;
198 fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000
199 0x0000c000 0x1404a38e 0x00000000>;
200 };
201 };