blob: bb7102cae89910a0de63335e038e2b445df84679 [file] [log] [blame]
Frank Li94967342015-05-19 02:45:04 +08001/*
2 * Copyright 2015 Freescale Semiconductor, Inc.
Stefan Agnera67970a2016-06-26 01:47:53 -07003 * Copyright 2016 Toradex AG
Frank Li94967342015-05-19 02:45:04 +08004 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44#include <dt-bindings/clock/imx7d-clock.h>
45#include <dt-bindings/gpio/gpio.h>
Stefan Agner1e886a12016-06-26 01:47:54 -070046#include <dt-bindings/input/input.h>
Frank Li94967342015-05-19 02:45:04 +080047#include <dt-bindings/interrupt-controller/arm-gic.h>
48#include "imx7d-pinfunc.h"
49#include "skeleton.dtsi"
50
51/ {
52 aliases {
53 gpio0 = &gpio1;
54 gpio1 = &gpio2;
55 gpio2 = &gpio3;
56 gpio3 = &gpio4;
57 gpio4 = &gpio5;
58 gpio5 = &gpio6;
59 gpio6 = &gpio7;
60 i2c0 = &i2c1;
61 i2c1 = &i2c2;
62 i2c2 = &i2c3;
63 i2c3 = &i2c4;
64 mmc0 = &usdhc1;
65 mmc1 = &usdhc2;
66 mmc2 = &usdhc3;
67 serial0 = &uart1;
68 serial1 = &uart2;
69 serial2 = &uart3;
70 serial3 = &uart4;
71 serial4 = &uart5;
72 serial5 = &uart6;
73 serial6 = &uart7;
Diego Dortab754af32016-06-22 16:37:07 -030074 spi0 = &ecspi1;
75 spi1 = &ecspi2;
76 spi2 = &ecspi3;
77 spi3 = &ecspi4;
Frank Li94967342015-05-19 02:45:04 +080078 };
79
80 cpus {
81 #address-cells = <1>;
82 #size-cells = <0>;
83
84 cpu0: cpu@0 {
85 compatible = "arm,cortex-a7";
86 device_type = "cpu";
87 reg = <0>;
Stefan Agner1c4e2a12016-08-11 17:11:07 -070088 clock-frequency = <792000000>;
Frank Li94967342015-05-19 02:45:04 +080089 clock-latency = <61036>; /* two CLK32 periods */
Bai Ping698e2ac2015-11-24 18:25:15 +080090 clocks = <&clks IMX7D_CLK_ARM>;
Frank Li94967342015-05-19 02:45:04 +080091 };
Frank Li94967342015-05-19 02:45:04 +080092 };
93
Frank Li94967342015-05-19 02:45:04 +080094 ckil: clock-cki {
95 compatible = "fixed-clock";
96 #clock-cells = <0>;
97 clock-frequency = <32768>;
98 clock-output-names = "ckil";
99 };
100
101 osc: clock-osc {
102 compatible = "fixed-clock";
103 #clock-cells = <0>;
104 clock-frequency = <24000000>;
105 clock-output-names = "osc";
106 };
107
108 soc {
109 #address-cells = <1>;
110 #size-cells = <1>;
111 compatible = "simple-bus";
112 interrupt-parent = <&intc>;
113 ranges;
114
Stefan Agner974a3ab2016-07-25 23:42:35 -0700115 funnel@30041000 {
116 compatible = "arm,coresight-funnel", "arm,primecell";
117 reg = <0x30041000 0x1000>;
118 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
119 clock-names = "apb_pclk";
120
121 ca_funnel_ports: ports {
122 #address-cells = <1>;
123 #size-cells = <0>;
124
125 /* funnel input ports */
126 port@0 {
127 reg = <0>;
128 ca_funnel_in_port0: endpoint {
129 slave-mode;
130 remote-endpoint = <&etm0_out_port>;
131 };
132 };
133
134 /* funnel output port */
135 port@2 {
136 reg = <0>;
137 ca_funnel_out_port0: endpoint {
138 remote-endpoint = <&hugo_funnel_in_port0>;
139 };
140 };
141
142 /* the other input ports are not connect to anything */
143 };
144 };
145
146 etm@3007c000 {
147 compatible = "arm,coresight-etm3x", "arm,primecell";
148 reg = <0x3007c000 0x1000>;
149 cpu = <&cpu0>;
150 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
151 clock-names = "apb_pclk";
152
153 port {
154 etm0_out_port: endpoint {
155 remote-endpoint = <&ca_funnel_in_port0>;
156 };
157 };
158 };
159
160 funnel@30083000 {
161 compatible = "arm,coresight-funnel", "arm,primecell";
162 reg = <0x30083000 0x1000>;
163 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
164 clock-names = "apb_pclk";
165
166 ports {
167 #address-cells = <1>;
168 #size-cells = <0>;
169
170 /* funnel input ports */
171 port@0 {
172 reg = <0>;
173 hugo_funnel_in_port0: endpoint {
174 slave-mode;
175 remote-endpoint = <&ca_funnel_out_port0>;
176 };
177 };
178
179 port@1 {
180 reg = <1>;
181 hugo_funnel_in_port1: endpoint {
182 slave-mode; /* M4 input */
183 };
184 };
185
186 port@2 {
187 reg = <0>;
188 hugo_funnel_out_port0: endpoint {
189 remote-endpoint = <&etf_in_port>;
190 };
191 };
192
193 /* the other input ports are not connect to anything */
194 };
195 };
196
197 etf@30084000 {
198 compatible = "arm,coresight-tmc", "arm,primecell";
199 reg = <0x30084000 0x1000>;
200 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
201 clock-names = "apb_pclk";
202
203 ports {
204 #address-cells = <1>;
205 #size-cells = <0>;
206
207 port@0 {
208 reg = <0>;
209 etf_in_port: endpoint {
210 slave-mode;
211 remote-endpoint = <&hugo_funnel_out_port0>;
212 };
213 };
214
215 port@1 {
216 reg = <0>;
217 etf_out_port: endpoint {
218 remote-endpoint = <&replicator_in_port0>;
219 };
220 };
221 };
222 };
223
224 etr@30086000 {
225 compatible = "arm,coresight-tmc", "arm,primecell";
226 reg = <0x30086000 0x1000>;
227 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
228 clock-names = "apb_pclk";
229
230 port {
231 etr_in_port: endpoint {
232 slave-mode;
233 remote-endpoint = <&replicator_out_port1>;
234 };
235 };
236 };
237
238 tpiu@30087000 {
239 compatible = "arm,coresight-tpiu", "arm,primecell";
240 reg = <0x30087000 0x1000>;
241 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
242 clock-names = "apb_pclk";
243
244 port {
245 tpiu_in_port: endpoint {
246 slave-mode;
247 remote-endpoint = <&replicator_out_port1>;
248 };
249 };
250 };
251
252 replicator {
253 /*
254 * non-configurable replicators don't show up on the
255 * AMBA bus. As such no need to add "arm,primecell"
256 */
257 compatible = "arm,coresight-replicator";
258
259 ports {
260 #address-cells = <1>;
261 #size-cells = <0>;
262
263 /* replicator output ports */
264 port@0 {
265 reg = <0>;
266 replicator_out_port0: endpoint {
267 remote-endpoint = <&tpiu_in_port>;
268 };
269 };
270
271 port@1 {
272 reg = <1>;
273 replicator_out_port1: endpoint {
274 remote-endpoint = <&etr_in_port>;
275 };
276 };
277
278 /* replicator input port */
279 port@2 {
280 reg = <0>;
281 replicator_in_port0: endpoint {
282 slave-mode;
283 remote-endpoint = <&etf_out_port>;
284 };
285 };
286 };
287 };
288
289 intc: interrupt-controller@31001000 {
290 compatible = "arm,cortex-a7-gic";
Stefan Agnerb28c9bf2016-07-25 23:42:36 -0700291 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
Stefan Agner974a3ab2016-07-25 23:42:35 -0700292 #interrupt-cells = <3>;
293 interrupt-controller;
294 reg = <0x31001000 0x1000>,
Stefan Agnerb28c9bf2016-07-25 23:42:36 -0700295 <0x31002000 0x2000>,
Stefan Agner974a3ab2016-07-25 23:42:35 -0700296 <0x31004000 0x2000>,
297 <0x31006000 0x2000>;
298 };
299
300 timer {
301 compatible = "arm,armv7-timer";
302 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
303 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
304 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
305 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
306 };
307
Frank Li94967342015-05-19 02:45:04 +0800308 aips1: aips-bus@30000000 {
309 compatible = "fsl,aips-bus", "simple-bus";
310 #address-cells = <1>;
311 #size-cells = <1>;
312 reg = <0x30000000 0x400000>;
313 ranges;
314
315 gpio1: gpio@30200000 {
316 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
317 reg = <0x30200000 0x10000>;
318 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* GPIO1_INT15_0 */
319 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; /* GPIO1_INT31_16 */
320 gpio-controller;
321 #gpio-cells = <2>;
322 interrupt-controller;
323 #interrupt-cells = <2>;
324 };
325
326 gpio2: gpio@30210000 {
327 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
328 reg = <0x30210000 0x10000>;
329 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
330 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
331 gpio-controller;
332 #gpio-cells = <2>;
333 interrupt-controller;
334 #interrupt-cells = <2>;
335 };
336
337 gpio3: gpio@30220000 {
338 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
339 reg = <0x30220000 0x10000>;
340 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
341 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
342 gpio-controller;
343 #gpio-cells = <2>;
344 interrupt-controller;
345 #interrupt-cells = <2>;
346 };
347
348 gpio4: gpio@30230000 {
349 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
350 reg = <0x30230000 0x10000>;
351 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
352 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
353 gpio-controller;
354 #gpio-cells = <2>;
355 interrupt-controller;
356 #interrupt-cells = <2>;
357 };
358
359 gpio5: gpio@30240000 {
360 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
361 reg = <0x30240000 0x10000>;
362 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
363 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
364 gpio-controller;
365 #gpio-cells = <2>;
366 interrupt-controller;
367 #interrupt-cells = <2>;
368 };
369
370 gpio6: gpio@30250000 {
371 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
372 reg = <0x30250000 0x10000>;
373 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
374 <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
375 gpio-controller;
376 #gpio-cells = <2>;
377 interrupt-controller;
378 #interrupt-cells = <2>;
379 };
380
381 gpio7: gpio@30260000 {
382 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
383 reg = <0x30260000 0x10000>;
384 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
385 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
386 gpio-controller;
387 #gpio-cells = <2>;
388 interrupt-controller;
389 #interrupt-cells = <2>;
390 };
391
Frank Li6f5f9bc2015-05-29 03:40:57 +0800392 wdog1: wdog@30280000 {
393 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
394 reg = <0x30280000 0x10000>;
395 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
396 clocks = <&clks IMX7D_WDOG1_ROOT_CLK>;
397 };
398
399 wdog2: wdog@30290000 {
400 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
401 reg = <0x30290000 0x10000>;
402 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
403 clocks = <&clks IMX7D_WDOG2_ROOT_CLK>;
404 status = "disabled";
405 };
406
407 wdog3: wdog@302a0000 {
408 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
409 reg = <0x302a0000 0x10000>;
410 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
411 clocks = <&clks IMX7D_WDOG3_ROOT_CLK>;
412 status = "disabled";
413 };
414
415 wdog4: wdog@302b0000 {
416 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
417 reg = <0x302b0000 0x10000>;
418 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
419 clocks = <&clks IMX7D_WDOG4_ROOT_CLK>;
420 status = "disabled";
421 };
422
Adrian Alonso149c08e2015-09-25 16:05:57 -0500423 iomuxc_lpsr: iomuxc-lpsr@302c0000 {
424 compatible = "fsl,imx7d-iomuxc-lpsr";
425 reg = <0x302c0000 0x10000>;
426 fsl,input-sel = <&iomuxc>;
427 };
428
Frank Li94967342015-05-19 02:45:04 +0800429 gpt1: gpt@302d0000 {
430 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
431 reg = <0x302d0000 0x10000>;
432 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
433 clocks = <&clks IMX7D_CLK_DUMMY>,
434 <&clks IMX7D_GPT1_ROOT_CLK>;
435 clock-names = "ipg", "per";
436 };
437
438 gpt2: gpt@302e0000 {
439 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
440 reg = <0x302e0000 0x10000>;
441 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
442 clocks = <&clks IMX7D_CLK_DUMMY>,
443 <&clks IMX7D_GPT2_ROOT_CLK>;
444 clock-names = "ipg", "per";
445 status = "disabled";
446 };
447
448 gpt3: gpt@302f0000 {
449 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
450 reg = <0x302f0000 0x10000>;
451 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
452 clocks = <&clks IMX7D_CLK_DUMMY>,
453 <&clks IMX7D_GPT3_ROOT_CLK>;
454 clock-names = "ipg", "per";
455 status = "disabled";
456 };
457
458 gpt4: gpt@30300000 {
459 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
460 reg = <0x30300000 0x10000>;
461 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
462 clocks = <&clks IMX7D_CLK_DUMMY>,
463 <&clks IMX7D_GPT4_ROOT_CLK>;
464 clock-names = "ipg", "per";
465 status = "disabled";
466 };
467
468 iomuxc: iomuxc@30330000 {
469 compatible = "fsl,imx7d-iomuxc";
470 reg = <0x30330000 0x10000>;
471 };
472
473 gpr: iomuxc-gpr@30340000 {
474 compatible = "fsl,imx7d-iomuxc-gpr", "syscon";
475 reg = <0x30340000 0x10000>;
476 };
477
478 ocotp: ocotp-ctrl@30350000 {
479 compatible = "syscon";
480 reg = <0x30350000 0x10000>;
481 clocks = <&clks IMX7D_CLK_DUMMY>;
482 status = "disabled";
483 };
484
485 anatop: anatop@30360000 {
486 compatible = "fsl,imx7d-anatop", "fsl,imx6q-anatop",
487 "syscon", "simple-bus";
488 reg = <0x30360000 0x10000>;
489 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
490 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
491
Fabio Estevam298701ec2016-05-03 10:57:31 -0300492 reg_1p0d: regulator-vdd1p0d {
Frank Li94967342015-05-19 02:45:04 +0800493 compatible = "fsl,anatop-regulator";
494 regulator-name = "vdd1p0d";
495 regulator-min-microvolt = <800000>;
496 regulator-max-microvolt = <1200000>;
497 anatop-reg-offset = <0x210>;
498 anatop-vol-bit-shift = <8>;
499 anatop-vol-bit-width = <5>;
500 anatop-min-bit-val = <8>;
501 anatop-min-voltage = <800000>;
502 anatop-max-voltage = <1200000>;
503 anatop-enable-bit = <31>;
504 };
505 };
506
507 snvs: snvs@30370000 {
Frank Liabb9f252015-07-29 01:50:00 +0800508 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
509 reg = <0x30370000 0x10000>;
Frank Li94967342015-05-19 02:45:04 +0800510
Frank Liabb9f252015-07-29 01:50:00 +0800511 snvs_rtc: snvs-rtc-lp {
Frank Li94967342015-05-19 02:45:04 +0800512 compatible = "fsl,sec-v4.0-mon-rtc-lp";
Frank Liabb9f252015-07-29 01:50:00 +0800513 regmap = <&snvs>;
514 offset = <0x34>;
Frank Li94967342015-05-19 02:45:04 +0800515 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
516 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
517 };
Frank Liabb9f252015-07-29 01:50:00 +0800518
519 snvs_poweroff: snvs-poweroff {
520 compatible = "syscon-poweroff";
521 regmap = <&snvs>;
522 offset = <0x38>;
523 mask = <0x60>;
524 };
525
526 snvs_pwrkey: snvs-powerkey {
527 compatible = "fsl,sec-v4.0-pwrkey";
528 regmap = <&snvs>;
529 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
530 linux,keycode = <KEY_POWER>;
531 wakeup-source;
532 };
Frank Li94967342015-05-19 02:45:04 +0800533 };
534
535 clks: ccm@30380000 {
536 compatible = "fsl,imx7d-ccm";
537 reg = <0x30380000 0x10000>;
538 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
539 <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
540 #clock-cells = <1>;
541 clocks = <&ckil>, <&osc>;
542 clock-names = "ckil", "osc";
543 };
544
545 src: src@30390000 {
546 compatible = "fsl,imx7d-src", "fsl,imx51-src", "syscon";
547 reg = <0x30390000 0x10000>;
548 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
549 #reset-cells = <1>;
550 };
551 };
552
Fabio Estevam208c9fe2015-09-02 15:16:20 -0300553 aips2: aips-bus@30400000 {
554 compatible = "fsl,aips-bus", "simple-bus";
555 #address-cells = <1>;
556 #size-cells = <1>;
557 reg = <0x30400000 0x400000>;
558 ranges;
559
Haibo Chena3d19f22015-12-08 18:26:22 +0800560 adc1: adc@30610000 {
561 compatible = "fsl,imx7d-adc";
562 reg = <0x30610000 0x10000>;
563 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
564 clocks = <&clks IMX7D_ADC_ROOT_CLK>;
565 clock-names = "adc";
566 status = "disabled";
567 };
568
569 adc2: adc@30620000 {
570 compatible = "fsl,imx7d-adc";
571 reg = <0x30620000 0x10000>;
572 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
573 clocks = <&clks IMX7D_ADC_ROOT_CLK>;
574 clock-names = "adc";
575 status = "disabled";
576 };
577
Diego Dortab754af32016-06-22 16:37:07 -0300578 ecspi4: ecspi@30630000 {
579 #address-cells = <1>;
580 #size-cells = <0>;
581 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
582 reg = <0x30630000 0x10000>;
583 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
584 clocks = <&clks IMX7D_ECSPI4_ROOT_CLK>,
585 <&clks IMX7D_ECSPI4_ROOT_CLK>;
586 clock-names = "ipg", "per";
587 status = "disabled";
588 };
589
Fabio Estevam208c9fe2015-09-02 15:16:20 -0300590 pwm1: pwm@30660000 {
591 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
592 reg = <0x30660000 0x10000>;
593 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
594 clocks = <&clks IMX7D_PWM1_ROOT_CLK>,
595 <&clks IMX7D_PWM1_ROOT_CLK>;
596 clock-names = "ipg", "per";
597 #pwm-cells = <2>;
598 status = "disabled";
599 };
600
601 pwm2: pwm@30670000 {
602 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
603 reg = <0x30670000 0x10000>;
604 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
605 clocks = <&clks IMX7D_PWM2_ROOT_CLK>,
606 <&clks IMX7D_PWM2_ROOT_CLK>;
607 clock-names = "ipg", "per";
608 #pwm-cells = <2>;
609 status = "disabled";
610 };
611
612 pwm3: pwm@30680000 {
613 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
614 reg = <0x30680000 0x10000>;
615 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
616 clocks = <&clks IMX7D_PWM3_ROOT_CLK>,
617 <&clks IMX7D_PWM3_ROOT_CLK>;
618 clock-names = "ipg", "per";
619 #pwm-cells = <2>;
620 status = "disabled";
621 };
622
623 pwm4: pwm@30690000 {
624 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
625 reg = <0x30690000 0x10000>;
626 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
627 clocks = <&clks IMX7D_PWM4_ROOT_CLK>,
628 <&clks IMX7D_PWM4_ROOT_CLK>;
629 clock-names = "ipg", "per";
630 #pwm-cells = <2>;
631 status = "disabled";
632 };
Gary Bissone8ed73f2016-04-02 18:25:43 +0200633
634 lcdif: lcdif@30730000 {
635 compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
636 reg = <0x30730000 0x10000>;
637 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
638 clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
639 <&clks IMX7D_CLK_DUMMY>,
640 <&clks IMX7D_CLK_DUMMY>;
641 clock-names = "pix", "axi", "disp_axi";
642 status = "disabled";
643 };
Fabio Estevam208c9fe2015-09-02 15:16:20 -0300644 };
645
Frank Li94967342015-05-19 02:45:04 +0800646 aips3: aips-bus@30800000 {
647 compatible = "fsl,aips-bus", "simple-bus";
648 #address-cells = <1>;
649 #size-cells = <1>;
650 reg = <0x30800000 0x400000>;
651 ranges;
652
Diego Dortab754af32016-06-22 16:37:07 -0300653 ecspi1: ecspi@30820000 {
654 #address-cells = <1>;
655 #size-cells = <0>;
656 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
657 reg = <0x30820000 0x10000>;
658 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
659 clocks = <&clks IMX7D_ECSPI1_ROOT_CLK>,
660 <&clks IMX7D_ECSPI1_ROOT_CLK>;
661 clock-names = "ipg", "per";
662 status = "disabled";
663 };
664
665 ecspi2: ecspi@30830000 {
666 #address-cells = <1>;
667 #size-cells = <0>;
668 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
669 reg = <0x30830000 0x10000>;
670 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
671 clocks = <&clks IMX7D_ECSPI2_ROOT_CLK>,
672 <&clks IMX7D_ECSPI2_ROOT_CLK>;
673 clock-names = "ipg", "per";
674 status = "disabled";
675 };
676
677 ecspi3: ecspi@30840000 {
678 #address-cells = <1>;
679 #size-cells = <0>;
680 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
681 reg = <0x30840000 0x10000>;
682 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
683 clocks = <&clks IMX7D_ECSPI3_ROOT_CLK>,
684 <&clks IMX7D_ECSPI3_ROOT_CLK>;
685 clock-names = "ipg", "per";
686 status = "disabled";
687 };
688
Frank Li94967342015-05-19 02:45:04 +0800689 uart1: serial@30860000 {
690 compatible = "fsl,imx7d-uart",
691 "fsl,imx6q-uart";
692 reg = <0x30860000 0x10000>;
693 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
694 clocks = <&clks IMX7D_UART1_ROOT_CLK>,
695 <&clks IMX7D_UART1_ROOT_CLK>;
696 clock-names = "ipg", "per";
697 status = "disabled";
698 };
699
Fabio Estevam178b2d02015-09-24 16:18:12 -0300700 uart2: serial@30890000 {
Frank Li94967342015-05-19 02:45:04 +0800701 compatible = "fsl,imx7d-uart",
702 "fsl,imx6q-uart";
Fabio Estevam178b2d02015-09-24 16:18:12 -0300703 reg = <0x30890000 0x10000>;
Frank Li94967342015-05-19 02:45:04 +0800704 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
705 clocks = <&clks IMX7D_UART2_ROOT_CLK>,
706 <&clks IMX7D_UART2_ROOT_CLK>;
707 clock-names = "ipg", "per";
708 status = "disabled";
709 };
710
711 uart3: serial@30880000 {
712 compatible = "fsl,imx7d-uart",
713 "fsl,imx6q-uart";
714 reg = <0x30880000 0x10000>;
715 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
716 clocks = <&clks IMX7D_UART3_ROOT_CLK>,
717 <&clks IMX7D_UART3_ROOT_CLK>;
718 clock-names = "ipg", "per";
719 status = "disabled";
720 };
721
Fabio Estevam7310f072016-08-10 13:00:27 -0300722 sai1: sai@308a0000 {
723 #sound-dai-cells = <0>;
724 compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai";
725 reg = <0x308a0000 0x10000>;
726 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
727 clocks = <&clks IMX7D_SAI1_IPG_CLK>,
728 <&clks IMX7D_SAI1_ROOT_CLK>,
729 <&clks IMX7D_CLK_DUMMY>,
730 <&clks IMX7D_CLK_DUMMY>;
731 clock-names = "bus", "mclk1", "mclk2", "mclk3";
732 dma-names = "rx", "tx";
733 dmas = <&sdma 8 24 0>, <&sdma 9 24 0>;
734 status = "disabled";
735 };
736
737 sai2: sai@308b0000 {
738 #sound-dai-cells = <0>;
739 compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai";
740 reg = <0x308b0000 0x10000>;
741 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
742 clocks = <&clks IMX7D_SAI2_IPG_CLK>,
743 <&clks IMX7D_SAI2_ROOT_CLK>,
744 <&clks IMX7D_CLK_DUMMY>,
745 <&clks IMX7D_CLK_DUMMY>;
746 clock-names = "bus", "mclk1", "mclk2", "mclk3";
747 dma-names = "rx", "tx";
748 dmas = <&sdma 10 24 0>, <&sdma 11 24 0>;
749 status = "disabled";
750 };
751
752 sai3: sai@308c0000 {
753 #sound-dai-cells = <0>;
754 compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai";
755 reg = <0x308c0000 0x10000>;
756 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
757 clocks = <&clks IMX7D_SAI3_IPG_CLK>,
758 <&clks IMX7D_SAI3_ROOT_CLK>,
759 <&clks IMX7D_CLK_DUMMY>,
760 <&clks IMX7D_CLK_DUMMY>;
761 clock-names = "bus", "mclk1", "mclk2", "mclk3";
762 dma-names = "rx", "tx";
763 dmas = <&sdma 12 24 0>, <&sdma 13 24 0>;
764 status = "disabled";
765 };
766
Gary Bissonc1474012016-04-02 18:25:44 +0200767 flexcan1: can@30a00000 {
768 compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
769 reg = <0x30a00000 0x10000>;
770 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
771 clocks = <&clks IMX7D_CLK_DUMMY>,
772 <&clks IMX7D_CAN1_ROOT_CLK>;
773 clock-names = "ipg", "per";
774 status = "disabled";
775 };
776
777 flexcan2: can@30a10000 {
778 compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
779 reg = <0x30a10000 0x10000>;
780 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
781 clocks = <&clks IMX7D_CLK_DUMMY>,
782 <&clks IMX7D_CAN2_ROOT_CLK>;
783 clock-names = "ipg", "per";
784 status = "disabled";
785 };
786
Frank Li94967342015-05-19 02:45:04 +0800787 i2c1: i2c@30a20000 {
788 #address-cells = <1>;
789 #size-cells = <0>;
790 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
791 reg = <0x30a20000 0x10000>;
792 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
793 clocks = <&clks IMX7D_I2C1_ROOT_CLK>;
794 status = "disabled";
795 };
796
797 i2c2: i2c@30a30000 {
798 #address-cells = <1>;
799 #size-cells = <0>;
800 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
801 reg = <0x30a30000 0x10000>;
802 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
803 clocks = <&clks IMX7D_I2C2_ROOT_CLK>;
804 status = "disabled";
805 };
806
807 i2c3: i2c@30a40000 {
808 #address-cells = <1>;
809 #size-cells = <0>;
810 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
811 reg = <0x30a40000 0x10000>;
812 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
813 clocks = <&clks IMX7D_I2C3_ROOT_CLK>;
814 status = "disabled";
815 };
816
817 i2c4: i2c@30a50000 {
818 #address-cells = <1>;
819 #size-cells = <0>;
820 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
821 reg = <0x30a50000 0x10000>;
822 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
823 clocks = <&clks IMX7D_I2C4_ROOT_CLK>;
824 status = "disabled";
825 };
826
827 uart4: serial@30a60000 {
828 compatible = "fsl,imx7d-uart",
829 "fsl,imx6q-uart";
830 reg = <0x30a60000 0x10000>;
831 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
832 clocks = <&clks IMX7D_UART4_ROOT_CLK>,
833 <&clks IMX7D_UART4_ROOT_CLK>;
834 clock-names = "ipg", "per";
835 status = "disabled";
836 };
837
838 uart5: serial@30a70000 {
839 compatible = "fsl,imx7d-uart",
840 "fsl,imx6q-uart";
841 reg = <0x30a70000 0x10000>;
842 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
843 clocks = <&clks IMX7D_UART5_ROOT_CLK>,
844 <&clks IMX7D_UART5_ROOT_CLK>;
845 clock-names = "ipg", "per";
846 status = "disabled";
847 };
848
849 uart6: serial@30a80000 {
850 compatible = "fsl,imx7d-uart",
851 "fsl,imx6q-uart";
852 reg = <0x30a80000 0x10000>;
853 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
854 clocks = <&clks IMX7D_UART6_ROOT_CLK>,
855 <&clks IMX7D_UART6_ROOT_CLK>;
856 clock-names = "ipg", "per";
857 status = "disabled";
858 };
859
860 uart7: serial@30a90000 {
861 compatible = "fsl,imx7d-uart",
862 "fsl,imx6q-uart";
863 reg = <0x30a90000 0x10000>;
864 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
865 clocks = <&clks IMX7D_UART7_ROOT_CLK>,
866 <&clks IMX7D_UART7_ROOT_CLK>;
867 clock-names = "ipg", "per";
868 status = "disabled";
869 };
870
Fabio Estevam60f5a222015-09-07 22:57:11 -0300871 usbotg1: usb@30b10000 {
872 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
873 reg = <0x30b10000 0x200>;
874 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
875 clocks = <&clks IMX7D_USB_CTRL_CLK>;
876 fsl,usbphy = <&usbphynop1>;
877 fsl,usbmisc = <&usbmisc1 0>;
878 phy-clkgate-delay-us = <400>;
879 status = "disabled";
880 };
881
Fabio Estevam60f5a222015-09-07 22:57:11 -0300882 usbh: usb@30b30000 {
883 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
884 reg = <0x30b30000 0x200>;
885 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
886 clocks = <&clks IMX7D_USB_CTRL_CLK>;
887 fsl,usbphy = <&usbphynop3>;
888 fsl,usbmisc = <&usbmisc3 0>;
889 phy_type = "hsic";
890 dr_mode = "host";
891 phy-clkgate-delay-us = <400>;
892 status = "disabled";
893 };
894
895 usbmisc1: usbmisc@30b10200 {
896 #index-cells = <1>;
897 compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
898 reg = <0x30b10200 0x200>;
899 };
900
Fabio Estevam60f5a222015-09-07 22:57:11 -0300901 usbmisc3: usbmisc@30b30200 {
902 #index-cells = <1>;
903 compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
904 reg = <0x30b30200 0x200>;
905 };
906
907 usbphynop1: usbphynop1 {
908 compatible = "usb-nop-xceiv";
909 clocks = <&clks IMX7D_USB_PHY1_CLK>;
910 clock-names = "main_clk";
911 };
912
Fabio Estevam60f5a222015-09-07 22:57:11 -0300913 usbphynop3: usbphynop3 {
914 compatible = "usb-nop-xceiv";
915 clocks = <&clks IMX7D_USB_HSIC_ROOT_CLK>;
916 clock-names = "main_clk";
917 };
918
Frank Li94967342015-05-19 02:45:04 +0800919 usdhc1: usdhc@30b40000 {
920 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
921 reg = <0x30b40000 0x10000>;
922 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
923 clocks = <&clks IMX7D_CLK_DUMMY>,
924 <&clks IMX7D_CLK_DUMMY>,
925 <&clks IMX7D_USDHC1_ROOT_CLK>;
926 clock-names = "ipg", "ahb", "per";
927 bus-width = <4>;
928 status = "disabled";
929 };
930
931 usdhc2: usdhc@30b50000 {
932 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
933 reg = <0x30b50000 0x10000>;
934 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
935 clocks = <&clks IMX7D_CLK_DUMMY>,
936 <&clks IMX7D_CLK_DUMMY>,
937 <&clks IMX7D_USDHC2_ROOT_CLK>;
938 clock-names = "ipg", "ahb", "per";
939 bus-width = <4>;
940 status = "disabled";
941 };
942
943 usdhc3: usdhc@30b60000 {
944 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
945 reg = <0x30b60000 0x10000>;
946 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
947 clocks = <&clks IMX7D_CLK_DUMMY>,
948 <&clks IMX7D_CLK_DUMMY>,
949 <&clks IMX7D_USDHC3_ROOT_CLK>;
950 clock-names = "ipg", "ahb", "per";
951 bus-width = <4>;
952 status = "disabled";
953 };
Fugang Duan0f629212015-09-07 10:55:01 +0800954
Fabio Estevam2f5ac9b2016-08-10 13:00:28 -0300955 sdma: sdma@30bd0000 {
956 compatible = "fsl,imx7d-sdma", "fsl,imx35-sdma";
957 reg = <0x30bd0000 0x10000>;
958 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
959 clocks = <&clks IMX7D_SDMA_CORE_CLK>,
960 <&clks IMX7D_AHB_CHANNEL_ROOT_CLK>;
961 clock-names = "ipg", "ahb";
962 #dma-cells = <3>;
963 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
964 };
965
Fugang Duan0f629212015-09-07 10:55:01 +0800966 fec1: ethernet@30be0000 {
967 compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
968 reg = <0x30be0000 0x10000>;
969 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
970 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
971 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
972 clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
973 <&clks IMX7D_ENET_AXI_ROOT_CLK>,
974 <&clks IMX7D_ENET1_TIME_ROOT_CLK>,
975 <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
976 <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
977 clock-names = "ipg", "ahb", "ptp",
978 "enet_clk_ref", "enet_out";
979 fsl,num-tx-queues=<3>;
980 fsl,num-rx-queues=<3>;
981 status = "disabled";
982 };
Frank Li94967342015-05-19 02:45:04 +0800983 };
984 };
985};