Lines Matching +full:tx0 +full:- +full:0

1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (C) 2023 Josua Mayer <josua@solid-run.com>
7 #include <dt-bindings/net/ti-dp83869.h>
11 compatible = "solidrun,am642-sr-som", "ti,am642";
24 stdout-path = "serial2:115200n8";
29 compatible = "ti,am642-icssg-prueth";
30 pinctrl-names = "default";
31 pinctrl-0 = <&pru_rgmii1_default_pins>, <&pru_rgmii2_default_pins>;
35 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
36 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
37 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
38 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
39 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
40 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
43 ti,pruss-gp-mux-sel = <2>, <2>, <2>, <2>, <2>, <2>;
45 ti,mii-g-rt = <&icssg1_mii_g_rt>;
46 ti,mii-rt = <&icssg1_mii_rt>;
50 * Configure icssg interrupt controller to map pru-internal
51 * interrupts 8/9 via channels 0/1 to host interrupts 0/1.
54 * Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml
56 interrupt-parent = <&icssg1_intc>;
57 interrupts = <24 0 2>, <25 1 3>;
58 interrupt-names = "tx_ts0", "tx_ts1";
60 dmas = <&main_pktdma 0xc200 15>, /* egress slice 0 */
61 <&main_pktdma 0xc201 15>, /* egress slice 0 */
62 <&main_pktdma 0xc202 15>, /* egress slice 0 */
63 <&main_pktdma 0xc203 15>, /* egress slice 0 */
64 <&main_pktdma 0xc204 15>, /* egress slice 1 */
65 <&main_pktdma 0xc205 15>, /* egress slice 1 */
66 <&main_pktdma 0xc206 15>, /* egress slice 1 */
67 <&main_pktdma 0xc207 15>, /* egress slice 1 */
68 <&main_pktdma 0x4200 15>, /* ingress slice 0 */
69 <&main_pktdma 0x4201 15>; /* ingress slice 1 */
70 dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
71 "tx1-0", "tx1-1", "tx1-2", "tx1-3",
74 ethernet-ports {
75 #address-cells = <1>;
76 #size-cells = <0>;
78 icssg1_emac0: port@0 {
79 reg = <0>;
80 ti,syscon-rgmii-delay = <&main_conf 0x4110>;
82 local-mac-address = [00 00 00 00 00 00];
83 phy-handle = <&ethernet_phy2>;
84 phy-mode = "rgmii-id";
89 ti,syscon-rgmii-delay = <&main_conf 0x4114>;
91 local-mac-address = [00 00 00 00 00 00];
92 phy-handle = <&ethernet_phy1>;
93 phy-mode = "rgmii-id";
99 * - Bank 1 @ 0x080000000-0x0FFFFFFFF: max. 2GB in 32-bit address space
100 * - Bank 2 @ 0x880000000-0x9FFFFFFFF: max. 6GB in 64-bit address space
103 reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
104 <0x00000008 0x80000000 0x00000001 0x80000000>;
108 reserved-memory {
109 #address-cells = <2>;
110 #size-cells = <2>;
114 reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
115 no-map;
118 main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
119 compatible = "shared-dma-pool";
120 reg = <0x00 0xa0000000 0x00 0x100000>;
121 no-map;
124 main_r5fss0_core0_memory_region: r5f-memory@a0100000 {
125 compatible = "shared-dma-pool";
126 reg = <0x00 0xa0100000 0x00 0xf00000>;
127 no-map;
130 main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
131 compatible = "shared-dma-pool";
132 reg = <0x00 0xa1000000 0x00 0x100000>;
133 no-map;
136 main_r5fss0_core1_memory_region: r5f-memory@a1100000 {
137 compatible = "shared-dma-pool";
138 reg = <0x00 0xa1100000 0x00 0xf00000>;
139 no-map;
142 main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 {
143 compatible = "shared-dma-pool";
144 reg = <0x00 0xa2000000 0x00 0x100000>;
145 no-map;
148 main_r5fss1_core0_memory_region: r5f-memory@a2100000 {
149 compatible = "shared-dma-pool";
150 reg = <0x00 0xa2100000 0x00 0xf00000>;
151 no-map;
154 main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 {
155 compatible = "shared-dma-pool";
156 reg = <0x00 0xa3000000 0x00 0x100000>;
157 no-map;
160 main_r5fss1_core1_memory_region: r5f-memory@a3100000 {
161 compatible = "shared-dma-pool";
162 reg = <0x00 0xa3100000 0x00 0xf00000>;
163 no-map;
167 vdd_mmc0: regulator-vdd-mmc0 {
168 compatible = "regulator-fixed";
169 regulator-name = "vdd-mmc0";
170 regulator-min-microvolt = <1800000>;
171 regulator-max-microvolt = <1800000>;
172 regulator-always-on;
173 regulator-boot-on;
178 pinctrl-names = "default";
179 pinctrl-0 = <&rgmii1_default_pins>;
184 pinctrl-names = "default";
185 pinctrl-0 = <&mdio0_default_pins>;
188 ethernet_phy0: ethernet-phy@0 {
189 compatible = "ethernet-phy-id2000.a0f1";
190 reg = <0>;
191 pinctrl-names = "default";
192 pinctrl-0 = <&ethernet_phy0_default_pins>;
193 ti,clk-output-sel = <DP83869_CLK_O_SEL_REF_CLK>;
194 ti,op-mode = <DP83869_RGMII_COPPER_ETHERNET>;
196 * Disable interrupts because ISR never clears 0x0040
198 * interrupt-parent = <&main_gpio1>;
202 * Disable HW Reset because clock signal is daisy-chained
204 * reset-gpios = <&main_gpio0 84 GPIO_ACTIVE_LOW>;
205 * reset-assert-us = <1>;
206 * reset-deassert-us = <30>;
212 phy-mode = "rgmii-id";
213 phy-handle = <&ethernet_phy0>;
218 pinctrl-names = "default";
219 pinctrl-0 = <&pru1_mdio0_default_pins>;
222 ethernet_phy1: ethernet-phy@3 {
223 compatible = "ethernet-phy-id2000.a0f1";
225 pinctrl-names = "default";
226 pinctrl-0 = <&ethernet_phy1_default_pins>;
227 ti,clk-output-sel = <DP83869_CLK_O_SEL_REF_CLK>;
228 ti,op-mode = <DP83869_RGMII_COPPER_ETHERNET>;
230 * Disable interrupts because ISR never clears 0x0040
232 * interrupt-parent = <&main_gpio1>;
236 * Disable HW Reset because clock signal is daisy-chained
238 * reset-gpios = <&main_gpio0 20 GPIO_ACTIVE_LOW>;
239 * reset-assert-us = <1>;
240 * reset-deassert-us = <30>;
244 ethernet_phy2: ethernet-phy@f {
245 compatible = "ethernet-phy-id2000.a0f1";
246 reg = <0xf>;
247 pinctrl-names = "default";
248 pinctrl-0 = <&ethernet_phy2_default_pins>;
249 ti,op-mode = <DP83869_RGMII_COPPER_ETHERNET>;
251 * Disable interrupts because ISR never clears 0x0040
253 * interrupt-parent = <&main_gpio1>;
257 * Disable HW Reset because clock signal is daisy-chained
259 * reset-gpios = <&main_gpio0 52 GPIO_ACTIVE_LOW>;
260 * reset-assert-us = <1>;
261 * reset-deassert-us = <30>;
269 mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
270 ti,mbox-rx = <0 0 2>;
271 ti,mbox-tx = <1 0 2>;
274 mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
275 ti,mbox-rx = <2 0 2>;
276 ti,mbox-tx = <3 0 2>;
283 mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
284 ti,mbox-rx = <0 0 2>;
285 ti,mbox-tx = <1 0 2>;
288 mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 {
289 ti,mbox-rx = <2 0 2>;
290 ti,mbox-tx = <3 0 2>;
295 pinctrl-names = "default";
296 pinctrl-0 = <&main_i2c0_default_pins>;
301 reg = <0x50>;
308 pinctrl-names = "default";
309 pinctrl-0 = <&ethernet_phy_default_pins>;
311 ethernet_phy_default_pins: ethernet-phy-default-pins {
312 pinctrl-single,pins = <
313 /* interrupt / power-down, external pull-up on SoM */
314 AM64X_IOPAD(0x0278, PIN_INPUT, 7) /* EXTINTn.GPIO1_70 */
318 ethernet_phy0_default_pins: ethernet-phy0-default-pins {
319 pinctrl-single,pins = <
321 AM64X_IOPAD(0x0154, PIN_OUTPUT, 7) /* PRG1_PRU1_GPO19.GPIO0_84 */
323 AM64X_IOPAD(0x0274, PIN_OUTPUT, 5) /* EXT_REFCLK1.CLKOUT0 */
327 ethernet_phy1_default_pins: ethernet-phy1-default-pins {
328 pinctrl-single,pins = <
330 AM64X_IOPAD(0x0150, PIN_OUTPUT, 7) /* PRG1_PRU1_GPO18.GPIO0_20 */
331 /* led0, external pull-down on SoM */
332 AM64X_IOPAD(0x0128, PIN_INPUT, 7) /* PRG1_PRU1_GPO8.GPIO0_73 */
334 AM64X_IOPAD(0x011c, PIN_INPUT, 7) /* PRG1_PRU1_GPO5.GPIO0_70 */
338 ethernet_phy2_default_pins: ethernet-phy2-default-pins {
339 pinctrl-single,pins = <
341 AM64X_IOPAD(0x00d4, PIN_OUTPUT, 7) /* PRG1_PRU0_GPO7.GPIO0_52 */
342 /* led0, external pull-down on SoM */
343 AM64X_IOPAD(0x00d8, PIN_INPUT, 7) /* PRG1_PRU0_GPO8.GPIO0_53 */
345 AM64X_IOPAD(0x00cc, PIN_INPUT, 7) /* PRG1_PRU0_GPO5.GPIO0_50 */
349 main_i2c0_default_pins: main-i2c0-default-pins {
350 pinctrl-single,pins = <
351 /* external pull-up on SoM */
352 AM64X_IOPAD(0x0260, PIN_INPUT, 0) /* I2C0_SCL.I2C0_SCL */
353 AM64X_IOPAD(0x0264, PIN_INPUT, 0) /* I2C0_SDA.I2C0_SDA */
358 * main_mmc0_default_pins: main-mmc0-default-pins
361 * MMC0_CLK: no padconfig, external pull-up on SoM
370 * MMC0_DS: no padconfig, external pull-down on SoM
373 main_mmc1_default_pins: main-mmc1-default-pins {
374 pinctrl-single,pins = <
375 AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
376 AM64X_IOPAD(0x028c, PIN_INPUT, 0) /* MMC1_CLK.MMC1_CLK */
377 AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* MMC1_DAT0.MMC1_DAT0 */
378 AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* MMC1_DAT1.MMC1_DAT1 */
379 AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* MMC1_DAT2.MMC1_DAT2 */
380 AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* MMC1_DAT3.MMC1_DAT3 */
381 /* external pull-down on SoM & Carrier */
382 AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* MMC1_SDCD.MMC1_SDCD */
383 AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* MMC1_CLKLB: clock loopback */
387 main_uart0_default_pins: main-uart0-default-pins {
388 pinctrl-single,pins = <
389 AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* UART0_RXD.UART0_RXD */
390 AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* UART0_TXD.UART0_TXD */
394 mdio0_default_pins: mdio0-default-pins {
395 pinctrl-single,pins = <
396 AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* PRG0_PRU1_GPO19.MDIO0_MDC */
397 AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* PRG0_PRU1_GPO18.MDIO0_MDIO */
401 ospi0_default_pins: ospi0-default-pins {
402 pinctrl-single,pins = <
403 /* external pull-down on SoM */
404 AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* OSPI0_CLK.OSPI0_CLK */
405 AM64X_IOPAD(0x0008, PIN_OUTPUT, 0) /* OSPI0_DQS.OSPI0_DQS */
406 /* external pull-up on SoM */
407 AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* OSPI0_CSn0.OSPI0_CSn0 */
408 AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* OSPI0_D0.OSPI0_D0 */
409 AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* OSPI0_D1.OSPI0_D1 */
410 AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* OSPI0_D2.OSPI0_D2 */
411 AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* OSPI0_D3.OSPI0_D3 */
412 AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* OSPI0_D4.OSPI0_D4 */
413 AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* OSPI0_D5.OSPI0_D5 */
414 AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* OSPI0_D6.OSPI0_D6 */
415 AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* OSPI0_D7.OSPI0_D7 */
419 ospi0_flash0_default_pins: ospi0-flash0-default-pins {
420 pinctrl-single,pins = <
421 AM64X_IOPAD(0x0034, PIN_OUTPUT, 7) /* OSPI0_CSn2.GPIO0_13 */
422 AM64X_IOPAD(0x0038, PIN_INPUT, 7) /* OSPI0_CSn3.GPIO0_14 */
426 pru1_mdio0_default_pins: pru1-mdio0-default-pins {
427 pinctrl-single,pins = <
428 AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* PRG1_MDIO0_MDC.PRG1_MDIO0_MDC */
429 AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* PRG1_MDIO0_MDIO.PRG1_MDIO0_MDIO */
433 pru_rgmii1_default_pins: pru-rgmii1-default-pins {
434 pinctrl-single,pins = <
435 AM64X_IOPAD(0x00b8, PIN_INPUT, 2) /* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
436 AM64X_IOPAD(0x00bc, PIN_INPUT, 2) /* (U8) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */
437 AM64X_IOPAD(0x00c0, PIN_INPUT, 2) /* (W8) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */
438 AM64X_IOPAD(0x00c4, PIN_INPUT, 2) /* (V8) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */
439 AM64X_IOPAD(0x00d0, PIN_INPUT, 2) /* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
440 AM64X_IOPAD(0x00c8, PIN_INPUT, 2) /* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
441 AM64X_IOPAD(0x00e4, PIN_OUTPUT, 2) /* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */
442 AM64X_IOPAD(0x00e8, PIN_OUTPUT, 2) /* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */
443 AM64X_IOPAD(0x00ec, PIN_OUTPUT, 2) /* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */
444 AM64X_IOPAD(0x00f0, PIN_OUTPUT, 2) /* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */
445 AM64X_IOPAD(0x00f8, PIN_INPUT, 2) /* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
446 AM64X_IOPAD(0x00f4, PIN_OUTPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
450 pru_rgmii2_default_pins: pru-rgmii2-default-pins {
451 pinctrl-single,pins = <
452 AM64X_IOPAD(0x0108, PIN_INPUT, 2) /* PRG1_PRU1_GPO0.RGMII2_RD0 */
453 AM64X_IOPAD(0x010c, PIN_INPUT, 2) /* PRG1_PRU1_GPO1.RGMII2_RD1 */
454 AM64X_IOPAD(0x0110, PIN_INPUT, 2) /* PRG1_PRU1_GPO2.RGMII2_RD2 */
455 AM64X_IOPAD(0x0114, PIN_INPUT, 2) /* PRG1_PRU1_GPO3.RGMII2_RD3 */
456 AM64X_IOPAD(0x0120, PIN_INPUT, 2) /* PRG1_PRU1_GPO6.RGMII2_RXC */
457 AM64X_IOPAD(0x0118, PIN_INPUT, 2) /* PRG1_PRU1_GPO4.RGMII2_RX_CTL */
458 AM64X_IOPAD(0x0134, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO11.RGMII2_TD0 */
459 AM64X_IOPAD(0x0138, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO12.RGMII2_TD1 */
460 AM64X_IOPAD(0x013c, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO13.RGMII2_TD2 */
461 AM64X_IOPAD(0x0140, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO14.RGMII2_TD3 */
462 AM64X_IOPAD(0x0148, PIN_INPUT, 2) /* PRG1_PRU1_GPO16.RGMII2_TXC */
463 AM64X_IOPAD(0x0144, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO15.RGMII2_TX_CTL */
467 rgmii1_default_pins: rgmii1-default-pins {
468 pinctrl-single,pins = <
469 AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* PRG0_PRU1_GPO7.RGMII1_RD0 */
470 AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* PRG0_PRU1_GPO9.RGMII1_RD1 */
471 AM64X_IOPAD(0x01d8, PIN_INPUT, 4) /* PRG0_PRU1_GPO10.RGMII1_RD2 */
472 AM64X_IOPAD(0x01f4, PIN_INPUT, 4) /* PRG0_PRU1_GPO17.RGMII1_RD3 */
473 AM64X_IOPAD(0x0188, PIN_INPUT, 4) /* PRG0_PRU0_GPO10.RGMII1_RXC */
474 AM64X_IOPAD(0x0184, PIN_INPUT, 4) /* PRG0_PRU0_GPO9.RGMII1_RX_CTL */
475 AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO7.RGMII1_TD0 */
476 AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO9.RGMII1_TD1 */
477 AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO10.RGMII1_TD2 */
478 AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO17.RGMII1_TD3 */
479 AM64X_IOPAD(0x00e0, PIN_INPUT, 4) /* PRG1_PRU0_GPO10.RGMII1_TXC */
480 AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* PRG1_PRU0_GPO9.RGMII1_TX_CTL */
484 usb0_default_pins: usb0-default-pins {
485 pinctrl-single,pins = <
486 AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* USB0_DRVVBUS.USB0_DRVVBUS */
493 memory-region = <&main_r5fss0_core0_dma_memory_region>,
499 memory-region = <&main_r5fss0_core1_dma_memory_region>,
505 memory-region = <&main_r5fss1_core0_dma_memory_region>,
511 memory-region = <&main_r5fss1_core1_dma_memory_region>,
517 pinctrl-names = "default";
518 pinctrl-0 = <&main_uart0_default_pins>;
523 pinctrl-names = "default";
524 pinctrl-0 = <&ospi0_default_pins>;
525 num-cs = <1>;
528 flash@0 {
529 compatible = "jedec,spi-nor";
530 reg = <0>;
531 pinctrl-names = "default";
532 pinctrl-0 = <&ospi0_flash0_default_pins>;
533 spi-tx-bus-width = <8>;
534 spi-rx-bus-width = <8>;
535 spi-max-frequency = <200000000>;
536 cdns,tshsl-ns = <50>;
537 cdns,tsd2d-ns = <50>;
538 cdns,tchsh-ns = <4>;
539 cdns,tslch-ns = <4>;
540 cdns,read-delay = <0>;
541 interrupt-parent = <&main_gpio0>;
543 reset-gpios = <&main_gpio0 13 GPIO_ACTIVE_LOW>;
549 bus-width = <8>;
550 ti,driver-strength-ohm = <50>;
551 disable-wp;
552 non-removable;
553 cap-mmc-hw-reset;
554 no-sd;
561 vqmmc-supply = <&vdd_mmc0>;
566 * microSD is on carrier - however since SoC can boot from it,
570 pinctrl-names = "default";
571 pinctrl-0 = <&main_mmc1_default_pins>;
572 bus-width = <4>;
573 ti,driver-strength-ohm = <50>;
574 disable-wp;
579 * USB settings are a carrier choice - however since SoC can boot from it,
580 * configure as USB-2.0 OTG here, keeping USB-3 serdes disabled.
583 pinctrl-names = "default";
584 pinctrl-0 = <&usb0_default_pins>;
586 maximum-speed = "high-speed";
590 ti,vbus-divider;
591 ti,usb2-only;