blob: 7e6a584ac6f0b52882a87eec7994c90383c62297 [file] [log] [blame]
Tom Rini6bb92fc2024-05-20 09:54:58 -06001// SPDX-License-Identifier: GPL-2.0-only OR MIT
Tom Rini53633a82024-02-29 12:33:36 -05002/*
Tom Rini6bb92fc2024-05-20 09:54:58 -06003 * Copyright (C) 2020-2024 Texas Instruments Incorporated - https://www.ti.com/
Tom Rini53633a82024-02-29 12:33:36 -05004 */
5
6/dts-v1/;
7
Tom Rini6bb92fc2024-05-20 09:54:58 -06008#include <dt-bindings/gpio/gpio.h>
9
Tom Rini53633a82024-02-29 12:33:36 -050010#include "k3-j7200.dtsi"
11
12/ {
13 memory@80000000 {
14 device_type = "memory";
15 /* 4G RAM */
16 reg = <0x00 0x80000000 0x00 0x80000000>,
17 <0x08 0x80000000 0x00 0x80000000>;
18 };
19
20 reserved_memory: reserved-memory {
21 #address-cells = <2>;
22 #size-cells = <2>;
23 ranges;
24
25 secure_ddr: optee@9e800000 {
26 reg = <0x00 0x9e800000 0x00 0x01800000>;
27 alignment = <0x1000>;
28 no-map;
29 };
30
31 mcu_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
32 compatible = "shared-dma-pool";
33 reg = <0x00 0xa0000000 0x00 0x100000>;
34 no-map;
35 };
36
37 mcu_r5fss0_core0_memory_region: r5f-memory@a0100000 {
38 compatible = "shared-dma-pool";
39 reg = <0x00 0xa0100000 0x00 0xf00000>;
40 no-map;
41 };
42
43 mcu_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
44 compatible = "shared-dma-pool";
45 reg = <0x00 0xa1000000 0x00 0x100000>;
46 no-map;
47 };
48
49 mcu_r5fss0_core1_memory_region: r5f-memory@a1100000 {
50 compatible = "shared-dma-pool";
51 reg = <0x00 0xa1100000 0x00 0xf00000>;
52 no-map;
53 };
54
55 main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a2000000 {
56 compatible = "shared-dma-pool";
57 reg = <0x00 0xa2000000 0x00 0x100000>;
58 no-map;
59 };
60
61 main_r5fss0_core0_memory_region: r5f-memory@a2100000 {
62 compatible = "shared-dma-pool";
63 reg = <0x00 0xa2100000 0x00 0xf00000>;
64 no-map;
65 };
66
67 main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a3000000 {
68 compatible = "shared-dma-pool";
69 reg = <0x00 0xa3000000 0x00 0x100000>;
70 no-map;
71 };
72
73 main_r5fss0_core1_memory_region: r5f-memory@a3100000 {
74 compatible = "shared-dma-pool";
75 reg = <0x00 0xa3100000 0x00 0xf00000>;
76 no-map;
77 };
78
79 rtos_ipc_memory_region: ipc-memories@a4000000 {
80 reg = <0x00 0xa4000000 0x00 0x00800000>;
81 alignment = <0x1000>;
82 no-map;
83 };
84 };
Tom Rini6bb92fc2024-05-20 09:54:58 -060085
86 mux0: mux-controller {
87 compatible = "gpio-mux";
88 #mux-state-cells = <1>;
89 mux-gpios = <&exp_som 1 GPIO_ACTIVE_HIGH>;
90 };
91
92 mux1: mux-controller {
93 compatible = "gpio-mux";
94 #mux-state-cells = <1>;
95 mux-gpios = <&exp_som 2 GPIO_ACTIVE_HIGH>;
96 };
97
98 transceiver0: can-phy0 {
99 /* standby pin has been grounded by default */
100 compatible = "ti,tcan1042";
101 #phy-cells = <0>;
102 max-bitrate = <5000000>;
103 };
Tom Rini53633a82024-02-29 12:33:36 -0500104};
105
106&wkup_pmx0 {
107 mcu_fss0_hpb0_pins_default: mcu-fss0-hpb0-default-pins {
108 pinctrl-single,pins = <
109 J721E_WKUP_IOPAD(0x0, PIN_OUTPUT, 1) /* (B6) MCU_OSPI0_CLK.MCU_HYPERBUS0_CK */
110 J721E_WKUP_IOPAD(0x4, PIN_OUTPUT, 1) /* (C8) MCU_OSPI0_LBCLKO.MCU_HYPERBUS0_CKn */
111 J721E_WKUP_IOPAD(0x2c, PIN_OUTPUT, 1) /* (D6) MCU_OSPI0_CSn0.MCU_HYPERBUS0_CSn0 */
112 J721E_WKUP_IOPAD(0x30, PIN_OUTPUT, 1) /* (D7) MCU_OSPI0_CSn1.MCU_HYPERBUS0_RESETn */
113 J721E_WKUP_IOPAD(0x8, PIN_INPUT, 1) /* (B7) MCU_OSPI0_DQS.MCU_HYPERBUS0_RWDS */
114 J721E_WKUP_IOPAD(0xc, PIN_INPUT, 1) /* (D8) MCU_OSPI0_D0.MCU_HYPERBUS0_DQ0 */
115 J721E_WKUP_IOPAD(0x10, PIN_INPUT, 1) /* (C7) MCU_OSPI0_D1.MCU_HYPERBUS0_DQ1 */
116 J721E_WKUP_IOPAD(0x14, PIN_INPUT, 1) /* (C5) MCU_OSPI0_D2.MCU_HYPERBUS0_DQ2 */
117 J721E_WKUP_IOPAD(0x18, PIN_INPUT, 1) /* (A5) MCU_OSPI0_D3.MCU_HYPERBUS0_DQ3 */
118 J721E_WKUP_IOPAD(0x1c, PIN_INPUT, 1) /* (A6) MCU_OSPI0_D4.MCU_HYPERBUS0_DQ4 */
119 J721E_WKUP_IOPAD(0x20, PIN_INPUT, 1) /* (B8) MCU_OSPI0_D5.MCU_HYPERBUS0_DQ5 */
120 J721E_WKUP_IOPAD(0x24, PIN_INPUT, 1) /* (A8) MCU_OSPI0_D6.MCU_HYPERBUS0_DQ6 */
121 J721E_WKUP_IOPAD(0x28, PIN_INPUT, 1) /* (A7) MCU_OSPI0_D7.MCU_HYPERBUS0_DQ7 */
122 >;
123 };
124
125 mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-default-pins {
126 pinctrl-single,pins = <
127 J721E_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* MCU_OSPI0_CLK */
128 J721E_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0) /* MCU_OSPI0_CSn0 */
129 J721E_WKUP_IOPAD(0x000c, PIN_INPUT, 0) /* MCU_OSPI0_D0 */
130 J721E_WKUP_IOPAD(0x0010, PIN_INPUT, 0) /* MCU_OSPI0_D1 */
131 J721E_WKUP_IOPAD(0x0014, PIN_INPUT, 0) /* MCU_OSPI0_D2 */
132 J721E_WKUP_IOPAD(0x0018, PIN_INPUT, 0) /* MCU_OSPI0_D3 */
133 J721E_WKUP_IOPAD(0x001c, PIN_INPUT, 0) /* MCU_OSPI0_D4 */
134 J721E_WKUP_IOPAD(0x0020, PIN_INPUT, 0) /* MCU_OSPI0_D5 */
135 J721E_WKUP_IOPAD(0x0024, PIN_INPUT, 0) /* MCU_OSPI0_D6 */
136 J721E_WKUP_IOPAD(0x0028, PIN_INPUT, 0) /* MCU_OSPI0_D7 */
137 J721E_WKUP_IOPAD(0x0008, PIN_INPUT, 0) /* MCU_OSPI0_DQS */
138 >;
139 };
140};
141
142&wkup_pmx2 {
143 wkup_i2c0_pins_default: wkup-i2c0-default-pins {
144 pinctrl-single,pins = <
145 J721E_WKUP_IOPAD(0x98, PIN_INPUT_PULLUP, 0) /* (F20) WKUP_I2C0_SCL */
146 J721E_WKUP_IOPAD(0x9c, PIN_INPUT_PULLUP, 0) /* (H21) WKUP_I2C0_SDA */
147 >;
148 };
149};
150
Tom Rini93743d22024-04-01 09:08:13 -0400151&wkup_pmx3 {
152 pmic_irq_pins_default: pmic-irq-default-pins {
153 pinctrl-single,pins = <
154 J721E_WKUP_IOPAD(0x01c, PIN_INPUT, 7) /* (E18) WKUP_GPIO0_84 */
155 >;
156 };
157};
158
Tom Rini53633a82024-02-29 12:33:36 -0500159&main_pmx0 {
160 main_i2c0_pins_default: main-i2c0-default-pins {
161 pinctrl-single,pins = <
162 J721E_IOPAD(0xd4, PIN_INPUT_PULLUP, 0) /* (V3) I2C0_SCL */
163 J721E_IOPAD(0xd8, PIN_INPUT_PULLUP, 0) /* (W2) I2C0_SDA */
164 >;
165 };
Tom Rini6bb92fc2024-05-20 09:54:58 -0600166
167 main_mcan0_pins_default: main-mcan0-default-pins {
168 pinctrl-single,pins = <
169 J721E_IOPAD(0x24, PIN_INPUT, 0) /* (V20) MCAN0_RX */
170 J721E_IOPAD(0x20, PIN_OUTPUT, 0) /* (V18) MCAN0_TX */
171 >;
172 };
Tom Rini53633a82024-02-29 12:33:36 -0500173};
174
175&hbmc {
176 /* OSPI and HBMC are muxed inside FSS, Bootloader will enable
177 * appropriate node based on board detection
178 */
179 status = "disabled";
180 pinctrl-names = "default";
181 pinctrl-0 = <&mcu_fss0_hpb0_pins_default>;
182 ranges = <0x00 0x00 0x05 0x00000000 0x4000000>, /* 64MB Flash on CS0 */
183 <0x01 0x00 0x05 0x04000000 0x800000>; /* 8MB RAM on CS1 */
184
185 flash@0,0 {
186 compatible = "cypress,hyperflash", "cfi-flash";
187 reg = <0x00 0x00 0x4000000>;
188
189 partitions {
190 compatible = "fixed-partitions";
191 #address-cells = <1>;
192 #size-cells = <1>;
193
194 partition@0 {
195 label = "hbmc.tiboot3";
196 reg = <0x0 0x100000>;
197 };
198
199 partition@100000 {
200 label = "hbmc.tispl";
201 reg = <0x100000 0x200000>;
202 };
203
204 partition@300000 {
205 label = "hbmc.u-boot";
206 reg = <0x300000 0x400000>;
207 };
208
209 partition@700000 {
210 label = "hbmc.env";
211 reg = <0x700000 0x40000>;
212 };
213
214 partition@800000 {
215 label = "hbmc.rootfs";
216 reg = <0x800000 0x3800000>;
217 };
218 };
219 };
220};
221
222&mailbox0_cluster0 {
223 status = "okay";
224 interrupts = <436>;
225
226 mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 {
227 ti,mbox-rx = <0 0 0>;
228 ti,mbox-tx = <1 0 0>;
229 };
230
231 mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 {
232 ti,mbox-rx = <2 0 0>;
233 ti,mbox-tx = <3 0 0>;
234 };
235};
236
237&mailbox0_cluster1 {
238 status = "okay";
239 interrupts = <432>;
240
241 mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
242 ti,mbox-rx = <0 0 0>;
243 ti,mbox-tx = <1 0 0>;
244 };
245
246 mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
247 ti,mbox-rx = <2 0 0>;
248 ti,mbox-tx = <3 0 0>;
249 };
250};
251
252&mcu_r5fss0_core0 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600253 mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
Tom Rini53633a82024-02-29 12:33:36 -0500254 memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
255 <&mcu_r5fss0_core0_memory_region>;
256};
257
258&mcu_r5fss0_core1 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600259 mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core1>;
Tom Rini53633a82024-02-29 12:33:36 -0500260 memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
261 <&mcu_r5fss0_core1_memory_region>;
262};
263
264&main_r5fss0_core0 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600265 mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
Tom Rini53633a82024-02-29 12:33:36 -0500266 memory-region = <&main_r5fss0_core0_dma_memory_region>,
267 <&main_r5fss0_core0_memory_region>;
268};
269
270&main_r5fss0_core1 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600271 mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core1>;
Tom Rini53633a82024-02-29 12:33:36 -0500272 memory-region = <&main_r5fss0_core1_dma_memory_region>,
273 <&main_r5fss0_core1_memory_region>;
274};
275
276&main_i2c0 {
277 pinctrl-names = "default";
278 pinctrl-0 = <&main_i2c0_pins_default>;
279 clock-frequency = <400000>;
280
281 exp_som: gpio@21 {
282 compatible = "ti,tca6408";
283 reg = <0x21>;
284 gpio-controller;
285 #gpio-cells = <2>;
286 gpio-line-names = "USB2.0_MUX_SEL", "CANUART_MUX1_SEL0",
287 "CANUART_MUX2_SEL0", "CANUART_MUX_SEL1",
288 "UART/LIN_MUX_SEL", "TRC_D17/AUDIO_REFCLK_SEL",
289 "GPIO_LIN_EN", "CAN_STB";
290 };
291};
292
293&wkup_i2c0 {
294 status = "okay";
295 pinctrl-names = "default";
296 pinctrl-0 = <&wkup_i2c0_pins_default>;
297 clock-frequency = <400000>;
298
299 eeprom@50 {
300 compatible = "atmel,24c256";
301 reg = <0x50>;
302 };
Tom Rini93743d22024-04-01 09:08:13 -0400303
304 tps659414: pmic@48 {
305 compatible = "ti,tps6594-q1";
306 reg = <0x48>;
307 system-power-controller;
308 pinctrl-names = "default";
309 pinctrl-0 = <&pmic_irq_pins_default>;
310 interrupt-parent = <&wkup_gpio0>;
311 interrupts = <84 IRQ_TYPE_EDGE_FALLING>;
312 gpio-controller;
313 #gpio-cells = <2>;
314 ti,primary-pmic;
315 buck1-supply = <&vsys_3v3>;
316 buck2-supply = <&vsys_3v3>;
317 buck3-supply = <&vsys_3v3>;
318 buck4-supply = <&vsys_3v3>;
319 buck5-supply = <&vsys_3v3>;
320 ldo1-supply = <&vsys_3v3>;
321 ldo2-supply = <&vsys_3v3>;
322 ldo3-supply = <&vsys_3v3>;
323 ldo4-supply = <&vsys_3v3>;
324
325 regulators {
326 bucka1: buck1 {
327 regulator-name = "vda_mcu_1v8";
328 regulator-min-microvolt = <1800000>;
329 regulator-max-microvolt = <1800000>;
330 regulator-boot-on;
331 regulator-always-on;
332 };
333
334 bucka2: buck2 {
335 regulator-name = "vdd_mcuio_1v8";
336 regulator-min-microvolt = <1800000>;
337 regulator-max-microvolt = <1800000>;
338 regulator-boot-on;
339 regulator-always-on;
340 };
341
342 bucka3: buck3 {
343 regulator-name = "vdd_mcu_0v85";
344 regulator-min-microvolt = <850000>;
345 regulator-max-microvolt = <850000>;
346 regulator-boot-on;
347 regulator-always-on;
348 };
349
350 bucka4: buck4 {
351 regulator-name = "vdd_ddr_1v1";
352 regulator-min-microvolt = <1100000>;
353 regulator-max-microvolt = <1100000>;
354 regulator-boot-on;
355 regulator-always-on;
356 };
357
358 bucka5: buck5 {
359 regulator-name = "vdd_phyio_1v8";
360 regulator-min-microvolt = <1800000>;
361 regulator-max-microvolt = <1800000>;
362 regulator-boot-on;
363 regulator-always-on;
364 };
365
366 ldoa1: ldo1 {
367 regulator-name = "vdd1_lpddr4_1v8";
368 regulator-min-microvolt = <1800000>;
369 regulator-max-microvolt = <1800000>;
370 regulator-boot-on;
371 regulator-always-on;
372 };
373
374 ldoa2: ldo2 {
375 regulator-name = "vda_dll_0v8";
376 regulator-min-microvolt = <800000>;
377 regulator-max-microvolt = <800000>;
378 regulator-boot-on;
379 regulator-always-on;
380 };
381
382 ldoa3: ldo3 {
383 regulator-name = "vdd_wk_0v8";
384 regulator-min-microvolt = <800000>;
385 regulator-max-microvolt = <800000>;
386 regulator-boot-on;
387 regulator-always-on;
388 };
389
390 ldoa4: ldo4 {
391 regulator-name = "vda_pll_1v8";
392 regulator-min-microvolt = <1800000>;
393 regulator-max-microvolt = <1800000>;
394 regulator-boot-on;
395 regulator-always-on;
396 };
397 };
398 };
399
400 lp876441: pmic@4c {
401 compatible = "ti,lp8764-q1";
402 reg = <0x4c>;
403 system-power-controller;
404 interrupt-parent = <&wkup_gpio0>;
405 interrupts = <84 IRQ_TYPE_EDGE_FALLING>;
406 gpio-controller;
407 #gpio-cells = <2>;
408 buck1-supply = <&vsys_3v3>;
409 buck2-supply = <&vsys_3v3>;
410 buck3-supply = <&vsys_3v3>;
411 buck4-supply = <&vsys_3v3>;
412
413 regulators: regulators {
414 buckb1: buck1 {
415 regulator-name = "vdd_cpu_avs";
416 regulator-min-microvolt = <600000>;
417 regulator-max-microvolt = <900000>;
418 regulator-always-on;
419 regulator-boot-on;
420 bootph-pre-ram;
421 };
422
423 buckb2: buck2 {
424 regulator-name = "vdd_ram_0v85";
425 regulator-min-microvolt = <850000>;
426 regulator-max-microvolt = <850000>;
427 regulator-boot-on;
428 regulator-always-on;
429 };
430
431 buckb3: buck3 {
432 regulator-name = "vdd_core_0v85";
433 regulator-min-microvolt = <850000>;
434 regulator-max-microvolt = <850000>;
435 regulator-boot-on;
436 regulator-always-on;
437 };
438
439 buckb4: buck4 {
440 regulator-name = "vdd_io_1v8";
441 regulator-min-microvolt = <1800000>;
442 regulator-max-microvolt = <1800000>;
443 regulator-boot-on;
444 regulator-always-on;
445 };
446 };
447 };
Tom Rini53633a82024-02-29 12:33:36 -0500448};
449
450&ospi0 {
451 status = "okay";
452 pinctrl-names = "default";
453 pinctrl-0 = <&mcu_fss0_ospi0_pins_default>;
454
455 flash@0 {
456 compatible = "jedec,spi-nor";
457 reg = <0x0>;
458 spi-tx-bus-width = <8>;
459 spi-rx-bus-width = <8>;
460 spi-max-frequency = <25000000>;
461 cdns,tshsl-ns = <60>;
462 cdns,tsd2d-ns = <60>;
463 cdns,tchsh-ns = <60>;
464 cdns,tslch-ns = <60>;
465 cdns,read-delay = <4>;
466
467 partitions {
468 compatible = "fixed-partitions";
469 #address-cells = <1>;
470 #size-cells = <1>;
471
472 partition@0 {
473 label = "ospi.tiboot3";
474 reg = <0x0 0x100000>;
475 };
476
477 partition@100000 {
478 label = "ospi.tispl";
479 reg = <0x100000 0x200000>;
480 };
481
482 partition@300000 {
483 label = "ospi.u-boot";
484 reg = <0x300000 0x400000>;
485 };
486
487 partition@700000 {
488 label = "ospi.env";
489 reg = <0x700000 0x40000>;
490 };
491
492 partition@740000 {
493 label = "ospi.env.backup";
494 reg = <0x740000 0x40000>;
495 };
496
497 partition@800000 {
498 label = "ospi.rootfs";
499 reg = <0x800000 0x37c0000>;
500 };
501
502 partition@3fc0000 {
503 label = "ospi.phypattern";
504 reg = <0x3fc0000 0x40000>;
505 };
506 };
507 };
508};
Tom Rini6bb92fc2024-05-20 09:54:58 -0600509
510&main_mcan0 {
511 status = "okay";
512 pinctrl-0 = <&main_mcan0_pins_default>;
513 pinctrl-names = "default";
514 phys = <&transceiver0>;
515};