1 // SPDX-License-Identifier: GPL-2.0
3 * Device Tree Source for K2G SOC
5 * Copyright (C) 2016-2017 Texas Instruments Incorporated - http://www.ti.com/
8 #include <dt-bindings/interrupt-controller/arm-gic.h>
9 #include <dt-bindings/pinctrl/keystone.h>
10 #include <dt-bindings/gpio/gpio.h>
13 compatible = "ti,k2g","ti,keystone";
14 model = "Texas Instruments K2G SoC";
17 interrupt-parent = <&gic>;
36 compatible = "arm,cortex-a15";
42 gic: interrupt-controller@2561000 {
43 compatible = "arm,gic-400", "arm,cortex-a15-gic";
44 #interrupt-cells = <3>;
46 reg = <0x0 0x02561000 0x0 0x1000>,
47 <0x0 0x02562000 0x0 0x2000>,
48 <0x0 0x02564000 0x0 0x2000>,
49 <0x0 0x02566000 0x0 0x2000>;
50 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
51 IRQ_TYPE_LEVEL_HIGH)>;
55 compatible = "arm,armv7-timer";
58 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
60 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
62 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
64 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
68 compatible = "arm,cortex-a15-pmu";
69 interrupts = <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
76 compatible = "ti,keystone","simple-bus";
77 ranges = <0x0 0x0 0x0 0xc0000000>;
78 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;
80 msm_ram: msmram@c000000 {
81 compatible = "mmio-sram";
82 reg = <0x0c000000 0x100000>;
83 ranges = <0x0 0x0c000000 0x100000>;
88 reg = <0x000f7000 0x8000>;
92 k2g_pinctrl: pinmux@2621000 {
93 compatible = "pinctrl-single";
94 reg = <0x02621000 0x410>;
95 pinctrl-single,register-width = <32>;
96 pinctrl-single,function-mask = <0x001b0007>;
99 devctrl: device-state-control@2620000 {
100 compatible = "ti,keystone-devctrl", "syscon";
101 reg = <0x02620000 0x1000>;
104 uart0: serial@2530c00 {
105 compatible = "ti,da830-uart", "ns16550a";
106 current-speed = <115200>;
109 reg = <0x02530c00 0x100>;
110 interrupts = <GIC_SPI 164 IRQ_TYPE_EDGE_RISING>;
111 clocks = <&k2g_clks 0x2c 0>;
112 power-domains = <&k2g_pds 0x2c>;
116 uart1: serial@02531000 {
117 compatible = "ti,da830-uart", "ns16550a";
118 current-speed = <115200>;
121 reg = <0x02531000 0x100>;
122 interrupts = <GIC_SPI 165 IRQ_TYPE_EDGE_RISING>;
123 clocks = <&k2g_clks 0x2d 0>;
124 power-domains = <&k2g_pds 0x2d>;
128 uart2: serial@02531400 {
129 compatible = "ti,da830-uart", "ns16550a";
130 current-speed = <115200>;
133 reg = <0x02531400 0x100>;
134 interrupts = <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>;
135 clocks = <&k2g_clks 0x2e 0>;
136 power-domains = <&k2g_pds 0x2e>;
141 compatible = "ti,am4372-d_can", "ti,am3352-d_can";
142 reg = <0x0260B200 0x200>;
143 interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
145 power-domains = <&k2g_pds 0x0008>;
146 clocks = <&k2g_clks 0x0008 1>;
150 compatible = "ti,am4372-d_can", "ti,am3352-d_can";
151 reg = <0x0260B400 0x200>;
152 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
154 power-domains = <&k2g_pds 0x0009>;
155 clocks = <&k2g_clks 0x0009 1>;
159 compatible = "ti,keystone-i2c";
160 reg = <0x02530000 0x400>;
161 clocks = <&k2g_clks 0x003a 0>;
162 power-domains = <&k2g_pds 0x003a>;
163 interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
164 #address-cells = <1>;
170 compatible = "ti,keystone-i2c";
171 reg = <0x02530400 0x400>;
172 clocks = <&k2g_clks 0x003b 0>;
173 power-domains = <&k2g_pds 0x003b>;
174 interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
175 #address-cells = <1>;
181 compatible = "ti,keystone-i2c";
182 reg = <0x02530800 0x400>;
183 clocks = <&k2g_clks 0x003c 0>;
184 power-domains = <&k2g_pds 0x003c>;
185 interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
186 #address-cells = <1>;
191 kirq0: keystone_irq@26202a0 {
192 compatible = "ti,keystone-irq";
193 interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>;
194 interrupt-controller;
195 #interrupt-cells = <1>;
196 ti,syscon-dev = <&devctrl 0x2a0>;
199 dspgpio0: keystone_dsp_gpio@2620240 {
200 compatible = "ti,keystone-dsp-gpio";
203 gpio,syscon-dev = <&devctrl 0x240>;
207 compatible = "ti,k2g-dsp";
208 reg = <0x10800000 0x00100000>,
209 <0x10e00000 0x00008000>,
210 <0x10f00000 0x00008000>;
211 reg-names = "l2sram", "l1pram", "l1dram";
212 power-domains = <&k2g_pds 0x0046>;
213 ti,syscon-dev = <&devctrl 0x844>;
214 resets = <&k2g_reset 0x0046 0x1>;
215 interrupt-parent = <&kirq0>;
217 interrupt-names = "vring", "exception";
218 kick-gpios = <&dspgpio0 27 0>;
222 msgmgr: msgmgr@2a00000 {
223 compatible = "ti,k2g-message-manager";
225 reg-names = "queue_proxy_region",
226 "queue_state_debug_region";
227 reg = <0x02a00000 0x400000>, <0x028c3400 0x400>;
228 interrupt-names = "rx_005",
230 interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
231 <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
235 compatible = "ti,k2g-sci";
237 * In case of rare platforms that does not use k2g as
238 * system master, use /delete-property/
240 ti,system-reboot-controller;
241 mbox-names = "rx", "tx";
242 mboxes= <&msgmgr 5 2>,
244 reg-names = "debug_messages";
245 reg = <0x02921c00 0x400>;
247 k2g_pds: power-controller {
248 compatible = "ti,sci-pm-domain";
249 #power-domain-cells = <1>;
253 compatible = "ti,k2g-sci-clk";
257 k2g_reset: reset-controller {
258 compatible = "ti,sci-reset";
263 gpio0: gpio@2603000 {
264 compatible = "ti,k2g-gpio", "ti,keystone-gpio";
265 reg = <0x02603000 0x100>;
269 interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
270 <GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
271 <GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
272 <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
273 <GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
274 <GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
275 <GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
276 <GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
277 <GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
278 interrupt-controller;
279 #interrupt-cells = <2>;
281 ti,davinci-gpio-unbanked = <0>;
282 clocks = <&k2g_clks 0x001b 0x0>;
283 clock-names = "gpio";
286 gpio1: gpio@260a000 {
287 compatible = "ti,k2g-gpio", "ti,keystone-gpio";
288 reg = <0x0260a000 0x100>;
291 interrupts = <GIC_SPI 442 IRQ_TYPE_EDGE_RISING>,
292 <GIC_SPI 443 IRQ_TYPE_EDGE_RISING>,
293 <GIC_SPI 444 IRQ_TYPE_EDGE_RISING>,
294 <GIC_SPI 445 IRQ_TYPE_EDGE_RISING>,
295 <GIC_SPI 446 IRQ_TYPE_EDGE_RISING>;
296 interrupt-controller;
297 #interrupt-cells = <2>;
299 ti,davinci-gpio-unbanked = <0>;
300 clocks = <&k2g_clks 0x001c 0x0>;
301 clock-names = "gpio";
304 edma0: edma@2700000 {
305 compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc";
306 reg = <0x02700000 0x8000>;
307 reg-names = "edma3_cc";
308 interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>,
309 <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>,
310 <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
311 interrupt-names = "edma3_ccint", "emda3_mperr",
316 ti,tptcs = <&edma0_tptc0 7>, <&edma0_tptc1 0>;
318 ti,edma-memcpy-channels = <32 33 34 35>;
320 power-domains = <&k2g_pds 0x3f>;
323 edma0_tptc0: tptc@2760000 {
324 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
325 reg = <0x02760000 0x400>;
326 power-domains = <&k2g_pds 0x3f>;
329 edma0_tptc1: tptc@2768000 {
330 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
331 reg = <0x02768000 0x400>;
332 power-domains = <&k2g_pds 0x3f>;
335 edma1: edma@2728000 {
336 compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc";
337 reg = <0x02728000 0x8000>;
338 reg-names = "edma3_cc";
339 interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
340 <GIC_SPI 219 IRQ_TYPE_EDGE_RISING>,
341 <GIC_SPI 220 IRQ_TYPE_EDGE_RISING>;
342 interrupt-names = "edma3_ccint", "emda3_mperr",
347 ti,tptcs = <&edma1_tptc0 7>, <&edma1_tptc1 0>;
350 * memcpy is disabled, can be enabled with:
351 * ti,edma-memcpy-channels = <12 13 14 15>;
355 power-domains = <&k2g_pds 0x4f>;
358 edma1_tptc0: tptc@27b0000 {
359 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
360 reg = <0x027b0000 0x400>;
361 power-domains = <&k2g_pds 0x4f>;
364 edma1_tptc1: tptc@27b8000 {
365 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
366 reg = <0x027b8000 0x400>;
367 power-domains = <&k2g_pds 0x4f>;
371 compatible = "ti,k2g-hsmmc", "ti,omap4-hsmmc";
372 reg = <0x23000000 0x400>;
373 interrupts = <GIC_SPI 96 IRQ_TYPE_EDGE_RISING>;
374 dmas = <&edma1 24 0>, <&edma1 25 0>;
375 dma-names = "tx", "rx";
377 ti,needs-special-reset;
379 max-frequency = <96000000>;
380 power-domains = <&k2g_pds 0xb>;
381 clocks = <&k2g_clks 0xb 1>, <&k2g_clks 0xb 2>;
382 clock-names = "fck", "mmchsdb_fck";
387 compatible = "ti,k2g-hsmmc", "ti,omap4-hsmmc";
388 reg = <0x23100000 0x400>;
389 interrupts = <GIC_SPI 97 IRQ_TYPE_EDGE_RISING>;
390 dmas = <&edma1 26 0>, <&edma1 27 0>;
391 dma-names = "tx", "rx";
393 ti,needs-special-reset;
394 max-frequency = <96000000>;
395 power-domains = <&k2g_pds 0xc>;
396 clocks = <&k2g_clks 0xc 1>, <&k2g_clks 0xc 2>;
397 clock-names = "fck", "mmchsdb_fck";
401 compatible = "ti,k2g-qspi", "cdns,qspi-nor";
402 #address-cells = <1>;
404 reg = <0x02940000 0x1000>,
405 <0x24000000 0x4000000>;
406 interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
407 cdns,fifo-depth = <256>;
408 cdns,fifo-width = <4>;
409 cdns,trigger-address = <0x24000000>;
410 clocks = <&k2g_clks 0x43 0x0>;
411 power-domains = <&k2g_pds 0x43>;
415 mcasp0: mcasp@2340000 {
416 compatible = "ti,am33xx-mcasp-audio";
417 reg = <0x02340000 0x2000>,
419 reg-names = "mpu","dat";
420 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
421 <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
422 interrupt-names = "tx", "rx";
423 dmas = <&edma0 24 1>, <&edma0 25 1>;
424 dma-names = "tx", "rx";
425 power-domains = <&k2g_pds 0x4>;
426 clocks = <&k2g_clks 0x4 0>;
431 mcasp1: mcasp@2342000 {
432 compatible = "ti,am33xx-mcasp-audio";
433 reg = <0x02342000 0x2000>,
435 reg-names = "mpu","dat";
436 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
437 <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
438 interrupt-names = "tx", "rx";
439 dmas = <&edma1 48 1>, <&edma1 49 1>;
440 dma-names = "tx", "rx";
441 power-domains = <&k2g_pds 0x5>;
442 clocks = <&k2g_clks 0x5 0>;
447 mcasp2: mcasp@2344000 {
448 compatible = "ti,am33xx-mcasp-audio";
449 reg = <0x02344000 0x2000>,
451 reg-names = "mpu","dat";
452 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
453 <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
454 interrupt-names = "tx", "rx";
455 dmas = <&edma1 50 1>, <&edma1 51 1>;
456 dma-names = "tx", "rx";
457 power-domains = <&k2g_pds 0x6>;
458 clocks = <&k2g_clks 0x6 0>;
463 usb0_phy: usb-phy@0 {
464 compatible = "usb-nop-xceiv";
468 keystone_usb0: keystone-dwc3@2680000 {
469 compatible = "ti,keystone-dwc3";
470 #address-cells = <1>;
472 reg = <0x2680000 0x10000>;
473 interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>;
478 power-domains = <&k2g_pds 0x0016>;
481 compatible = "snps,dwc3";
482 reg = <0x2690000 0x10000>;
483 interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>;
484 maximum-speed = "high-speed";
486 usb-phy = <&usb0_phy>;
491 usb1_phy: usb-phy@1 {
492 compatible = "usb-nop-xceiv";
496 keystone_usb1: keystone-dwc3@2580000 {
497 compatible = "ti,keystone-dwc3";
498 #address-cells = <1>;
500 reg = <0x2580000 0x10000>;
501 interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
506 power-domains = <&k2g_pds 0x0017>;
509 compatible = "snps,dwc3";
510 reg = <0x2590000 0x10000>;
511 interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
512 maximum-speed = "high-speed";
514 usb-phy = <&usb1_phy>;
520 compatible = "ti,k2g-ecap", "ti,am3352-ecap";
522 reg = <0x021d1800 0x60>;
523 power-domains = <&k2g_pds 0x38>;
524 clocks = <&k2g_clks 0x38 0>;
530 compatible = "ti,k2g-ecap", "ti,am3352-ecap";
532 reg = <0x021d1c00 0x60>;
533 power-domains = <&k2g_pds 0x39>;
534 clocks = <&k2g_clks 0x39 0x0>;
540 compatible = "ti,keystone-spi";
541 reg = <0x21805400 0x200>;
543 ti,davinci-spi-intr-line = <0>;
544 interrupts = <GIC_SPI 64 IRQ_TYPE_EDGE_RISING>;
545 #address-cells = <1>;
547 power-domains = <&k2g_pds 0x0010>;
548 clocks = <&k2g_clks 0x0010 0>;
552 compatible = "ti,keystone-spi";
553 reg = <0x21805800 0x200>;
555 ti,davinci-spi-intr-line = <0>;
556 interrupts = <GIC_SPI 66 IRQ_TYPE_EDGE_RISING>;
557 #address-cells = <1>;
559 power-domains = <&k2g_pds 0x0011>;
560 clocks = <&k2g_clks 0x0011 0>;
564 compatible = "ti,keystone-spi";
565 reg = <0x21805C00 0x200>;
567 ti,davinci-spi-intr-line = <0>;
568 interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
569 #address-cells = <1>;
571 power-domains = <&k2g_pds 0x0012>;
572 clocks = <&k2g_clks 0x0012 0>;
576 compatible = "ti,keystone-spi";
577 reg = <0x21806000 0x200>;
579 ti,davinci-spi-intr-line = <0>;
580 interrupts = <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>;
581 #address-cells = <1>;
583 power-domains = <&k2g_pds 0x0013>;
584 clocks = <&k2g_clks 0x0013 0>;