1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 2019 Texas Instruments Incorporated - https://www.ti.com/
8 #include "k3-j721e-som-p0.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/input/input.h>
11 #include <dt-bindings/net/ti-dp83867.h>
12 #include <dt-bindings/phy/phy-cadence.h>
16 stdout-path = "serial2:115200n8";
17 bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
20 gpio_keys: gpio-keys {
21 compatible = "gpio-keys";
23 pinctrl-names = "default";
24 pinctrl-0 = <&sw10_button_pins_default &sw11_button_pins_default>;
27 label = "GPIO Key USER1";
29 gpios = <&main_gpio0 0 GPIO_ACTIVE_LOW>;
33 label = "GPIO Key USER2";
35 gpios = <&wkup_gpio0 7 GPIO_ACTIVE_LOW>;
39 evm_12v0: fixedregulator-evm12v0 {
41 compatible = "regulator-fixed";
42 regulator-name = "evm_12v0";
43 regulator-min-microvolt = <12000000>;
44 regulator-max-microvolt = <12000000>;
49 vsys_3v3: fixedregulator-vsys3v3 {
50 /* Output of LMS140 */
51 compatible = "regulator-fixed";
52 regulator-name = "vsys_3v3";
53 regulator-min-microvolt = <3300000>;
54 regulator-max-microvolt = <3300000>;
55 vin-supply = <&evm_12v0>;
60 vsys_5v0: fixedregulator-vsys5v0 {
61 /* Output of LM5140 */
62 compatible = "regulator-fixed";
63 regulator-name = "vsys_5v0";
64 regulator-min-microvolt = <5000000>;
65 regulator-max-microvolt = <5000000>;
66 vin-supply = <&evm_12v0>;
71 vdd_mmc1: fixedregulator-sd {
72 compatible = "regulator-fixed";
73 regulator-name = "vdd_mmc1";
74 regulator-min-microvolt = <3300000>;
75 regulator-max-microvolt = <3300000>;
78 vin-supply = <&vsys_3v3>;
79 gpio = <&exp2 2 GPIO_ACTIVE_HIGH>;
82 vdd_sd_dv_alt: gpio-regulator-TLV71033 {
83 compatible = "regulator-gpio";
84 pinctrl-names = "default";
85 pinctrl-0 = <&vdd_sd_dv_alt_pins_default>;
86 regulator-name = "tlv71033";
87 regulator-min-microvolt = <1800000>;
88 regulator-max-microvolt = <3300000>;
90 vin-supply = <&vsys_5v0>;
91 gpios = <&main_gpio0 117 GPIO_ACTIVE_HIGH>;
92 states = <1800000 0x0>,
97 compatible = "ti,j721e-cpb-audio";
100 ti,cpb-mcasp = <&mcasp10>;
101 ti,cpb-codec = <&pcm3168a_1>;
103 clocks = <&k3_clks 184 1>,
104 <&k3_clks 184 2>, <&k3_clks 184 4>,
106 <&k3_clks 157 400>, <&k3_clks 157 401>;
107 clock-names = "cpb-mcasp-auxclk",
108 "cpb-mcasp-auxclk-48000", "cpb-mcasp-auxclk-44100",
110 "cpb-codec-scki-48000", "cpb-codec-scki-44100";
115 sw10_button_pins_default: sw10-button-pins-default {
116 pinctrl-single,pins = <
117 J721E_IOPAD(0x0, PIN_INPUT, 7) /* (AC18) EXTINTn.GPIO0_0 */
121 main_mmc1_pins_default: main-mmc1-pins-default {
122 pinctrl-single,pins = <
123 J721E_IOPAD(0x254, PIN_INPUT, 0) /* (R29) MMC1_CMD */
124 J721E_IOPAD(0x250, PIN_INPUT, 0) /* (P25) MMC1_CLK */
125 J721E_IOPAD(0x2ac, PIN_INPUT, 0) /* (P25) MMC1_CLKLB */
126 J721E_IOPAD(0x24c, PIN_INPUT, 0) /* (R24) MMC1_DAT0 */
127 J721E_IOPAD(0x248, PIN_INPUT, 0) /* (P24) MMC1_DAT1 */
128 J721E_IOPAD(0x244, PIN_INPUT, 0) /* (R25) MMC1_DAT2 */
129 J721E_IOPAD(0x240, PIN_INPUT, 0) /* (R26) MMC1_DAT3 */
130 J721E_IOPAD(0x258, PIN_INPUT, 0) /* (P23) MMC1_SDCD */
131 J721E_IOPAD(0x25c, PIN_INPUT, 0) /* (R28) MMC1_SDWP */
135 vdd_sd_dv_alt_pins_default: vdd-sd-dv-alt-pins-default {
136 pinctrl-single,pins = <
137 J721E_IOPAD(0x1d8, PIN_INPUT, 7) /* (W4) SPI1_CS1.GPIO0_117 */
141 main_usbss0_pins_default: main-usbss0-pins-default {
142 pinctrl-single,pins = <
143 J721E_IOPAD(0x290, PIN_OUTPUT, 0) /* (U6) USB0_DRVVBUS */
144 J721E_IOPAD(0x210, PIN_INPUT, 7) /* (W3) MCAN1_RX.GPIO1_3 */
148 main_usbss1_pins_default: main-usbss1-pins-default {
149 pinctrl-single,pins = <
150 J721E_IOPAD(0x214, PIN_OUTPUT, 4) /* (V4) MCAN1_TX.USB1_DRVVBUS */
154 main_i2c1_exp4_pins_default: main-i2c1-exp4-pins-default {
155 pinctrl-single,pins = <
156 J721E_IOPAD(0x230, PIN_INPUT, 7) /* (U2) ECAP0_IN_APWM_OUT.GPIO1_11 */
160 main_i2c0_pins_default: main-i2c0-pins-default {
161 pinctrl-single,pins = <
162 J721E_IOPAD(0x220, PIN_INPUT_PULLUP, 0) /* (AC5) I2C0_SCL */
163 J721E_IOPAD(0x224, PIN_INPUT_PULLUP, 0) /* (AA5) I2C0_SDA */
167 main_i2c1_pins_default: main-i2c1-pins-default {
168 pinctrl-single,pins = <
169 J721E_IOPAD(0x228, PIN_INPUT_PULLUP, 0) /* (Y6) I2C1_SCL */
170 J721E_IOPAD(0x22c, PIN_INPUT_PULLUP, 0) /* (AA6) I2C1_SDA */
174 main_i2c3_pins_default: main-i2c3-pins-default {
175 pinctrl-single,pins = <
176 J721E_IOPAD(0x270, PIN_INPUT_PULLUP, 4) /* (T26) MMC2_CLK.I2C3_SCL */
177 J721E_IOPAD(0x274, PIN_INPUT_PULLUP, 4) /* (T25) MMC2_CMD.I2C3_SDA */
181 main_i2c6_pins_default: main-i2c6-pins-default {
182 pinctrl-single,pins = <
183 J721E_IOPAD(0x1d0, PIN_INPUT_PULLUP, 2) /* (AA3) SPI0_D1.I2C6_SCL */
184 J721E_IOPAD(0x1e4, PIN_INPUT_PULLUP, 2) /* (Y2) SPI1_D1.I2C6_SDA */
188 mcasp10_pins_default: mcasp10-pins-default {
189 pinctrl-single,pins = <
190 J721E_IOPAD(0x158, PIN_OUTPUT_PULLDOWN, 12) /* (U23) RGMII5_TX_CTL.MCASP10_ACLKX */
191 J721E_IOPAD(0x15c, PIN_OUTPUT_PULLDOWN, 12) /* (U26) RGMII5_RX_CTL.MCASP10_AFSX */
192 J721E_IOPAD(0x160, PIN_OUTPUT_PULLDOWN, 12) /* (V28) RGMII5_TD3.MCASP10_AXR0 */
193 J721E_IOPAD(0x164, PIN_OUTPUT_PULLDOWN, 12) /* (V29) RGMII5_TD2.MCASP10_AXR1 */
194 J721E_IOPAD(0x170, PIN_OUTPUT_PULLDOWN, 12) /* (U29) RGMII5_TXC.MCASP10_AXR2 */
195 J721E_IOPAD(0x174, PIN_OUTPUT_PULLDOWN, 12) /* (U25) RGMII5_RXC.MCASP10_AXR3 */
196 J721E_IOPAD(0x198, PIN_INPUT_PULLDOWN, 12) /* (V25) RGMII6_TD1.MCASP10_AXR4 */
197 J721E_IOPAD(0x19c, PIN_INPUT_PULLDOWN, 12) /* (W27) RGMII6_TD0.MCASP10_AXR5 */
198 J721E_IOPAD(0x1a0, PIN_INPUT_PULLDOWN, 12) /* (W29) RGMII6_TXC.MCASP10_AXR6 */
202 audi_ext_refclk2_pins_default: audi-ext-refclk2-pins-default {
203 pinctrl-single,pins = <
204 J721E_IOPAD(0x1a4, PIN_OUTPUT, 3) /* (W26) RGMII6_RXC.AUDIO_EXT_REFCLK2 */
210 sw11_button_pins_default: sw11-button-pins-default {
211 pinctrl-single,pins = <
212 J721E_WKUP_IOPAD(0xcc, PIN_INPUT, 7) /* (G28) WKUP_GPIO0_7 */
216 mcu_fss0_ospi1_pins_default: mcu-fss0-ospi1-pins-default {
217 pinctrl-single,pins = <
218 J721E_WKUP_IOPAD(0x34, PIN_OUTPUT, 0) /* (F22) MCU_OSPI1_CLK */
219 J721E_WKUP_IOPAD(0x50, PIN_OUTPUT, 0) /* (C22) MCU_OSPI1_CSn0 */
220 J721E_WKUP_IOPAD(0x40, PIN_INPUT, 0) /* (D22) MCU_OSPI1_D0 */
221 J721E_WKUP_IOPAD(0x44, PIN_INPUT, 0) /* (G22) MCU_OSPI1_D1 */
222 J721E_WKUP_IOPAD(0x48, PIN_INPUT, 0) /* (D23) MCU_OSPI1_D2 */
223 J721E_WKUP_IOPAD(0x4c, PIN_INPUT, 0) /* (C23) MCU_OSPI1_D3 */
224 J721E_WKUP_IOPAD(0x3c, PIN_INPUT, 0) /* (B23) MCU_OSPI1_DQS */
225 J721E_WKUP_IOPAD(0x38, PIN_INPUT, 0) /* (A23) MCU_OSPI1_LBCLKO */
229 mcu_cpsw_pins_default: mcu-cpsw-pins-default {
230 pinctrl-single,pins = <
231 J721E_WKUP_IOPAD(0x0058, PIN_OUTPUT, 0) /* MCU_RGMII1_TX_CTL */
232 J721E_WKUP_IOPAD(0x005c, PIN_INPUT, 0) /* MCU_RGMII1_RX_CTL */
233 J721E_WKUP_IOPAD(0x0060, PIN_OUTPUT, 0) /* MCU_RGMII1_TD3 */
234 J721E_WKUP_IOPAD(0x0064, PIN_OUTPUT, 0) /* MCU_RGMII1_TD2 */
235 J721E_WKUP_IOPAD(0x0068, PIN_OUTPUT, 0) /* MCU_RGMII1_TD1 */
236 J721E_WKUP_IOPAD(0x006c, PIN_OUTPUT, 0) /* MCU_RGMII1_TD0 */
237 J721E_WKUP_IOPAD(0x0078, PIN_INPUT, 0) /* MCU_RGMII1_RD3 */
238 J721E_WKUP_IOPAD(0x007c, PIN_INPUT, 0) /* MCU_RGMII1_RD2 */
239 J721E_WKUP_IOPAD(0x0080, PIN_INPUT, 0) /* MCU_RGMII1_RD1 */
240 J721E_WKUP_IOPAD(0x0084, PIN_INPUT, 0) /* MCU_RGMII1_RD0 */
241 J721E_WKUP_IOPAD(0x0070, PIN_OUTPUT, 0) /* MCU_RGMII1_TXC */
242 J721E_WKUP_IOPAD(0x0074, PIN_INPUT, 0) /* MCU_RGMII1_RXC */
246 mcu_mdio_pins_default: mcu-mdio1-pins-default {
247 pinctrl-single,pins = <
248 J721E_WKUP_IOPAD(0x008c, PIN_OUTPUT, 0) /* MCU_MDIO0_MDC */
249 J721E_WKUP_IOPAD(0x0088, PIN_INPUT, 0) /* MCU_MDIO0_MDIO */
255 /* Wakeup UART is used by System firmware */
260 power-domains = <&k3_pds 146 TI_SCI_PD_SHARED>;
264 /* UART not brought out */
269 /* UART not brought out */
274 /* UART not brought out */
279 /* UART not brought out */
284 /* UART not brought out */
289 /* UART not brought out */
324 ti,driver-strength-ohm = <50>;
330 vmmc-supply = <&vdd_mmc1>;
331 vqmmc-supply = <&vdd_sd_dv_alt>;
332 pinctrl-names = "default";
333 pinctrl-0 = <&main_mmc1_pins_default>;
334 ti,driver-strength-ohm = <50>;
344 idle-states = <1>, <0>; /* USB0 to SERDES3, USB1 to SERDES1 */
348 idle-states = <J721E_SERDES0_LANE0_PCIE0_LANE0>, <J721E_SERDES0_LANE1_PCIE0_LANE1>,
349 <J721E_SERDES1_LANE0_PCIE1_LANE0>, <J721E_SERDES1_LANE1_PCIE1_LANE1>,
350 <J721E_SERDES2_LANE0_PCIE2_LANE0>, <J721E_SERDES2_LANE1_PCIE2_LANE1>,
351 <J721E_SERDES3_LANE0_USB3_0_SWAP>, <J721E_SERDES3_LANE1_USB3_0>,
352 <J721E_SERDES4_LANE0_EDP_LANE0>, <J721E_SERDES4_LANE1_EDP_LANE1>,
353 <J721E_SERDES4_LANE2_EDP_LANE2>, <J721E_SERDES4_LANE3_EDP_LANE3>;
357 typec-dir-gpios = <&main_gpio1 3 GPIO_ACTIVE_HIGH>;
358 typec-dir-debounce-ms = <700>; /* TUSB321, tCCB_DEFAULT 133 ms */
362 serdes3_usb_link: phy@0 {
364 cdns,num-lanes = <2>;
366 cdns,phy-type = <PHY_TYPE_USB3>;
367 resets = <&serdes_wiz3 1>, <&serdes_wiz3 2>;
372 pinctrl-names = "default";
373 pinctrl-0 = <&main_usbss0_pins_default>;
379 maximum-speed = "super-speed";
380 phys = <&serdes3_usb_link>;
381 phy-names = "cdns3,usb3-phy";
385 pinctrl-names = "default";
386 pinctrl-0 = <&main_usbss1_pins_default>;
392 maximum-speed = "high-speed";
396 pinctrl-names = "default";
397 pinctrl-0 = <&mcu_fss0_ospi1_pins_default>;
400 compatible = "jedec,spi-nor";
402 spi-tx-bus-width = <1>;
403 spi-rx-bus-width = <4>;
404 spi-max-frequency = <40000000>;
405 cdns,tshsl-ns = <60>;
406 cdns,tsd2d-ns = <60>;
407 cdns,tchsh-ns = <60>;
408 cdns,tslch-ns = <60>;
409 cdns,read-delay = <2>;
410 #address-cells = <1>;
417 ti,adc-channels = <0 1 2 3 4 5 6 7>;
423 ti,adc-channels = <0 1 2 3 4 5 6 7>;
428 pinctrl-names = "default";
429 pinctrl-0 = <&main_i2c0_pins_default>;
430 clock-frequency = <400000>;
433 compatible = "ti,tca6416";
440 compatible = "ti,tca6424";
446 /* P11 - MCASP/TRACE_MUX_S0 */
448 gpios = <9 GPIO_ACTIVE_HIGH>;
450 line-name = "MCASP/TRACE_MUX_S0";
454 /* P12 - MCASP/TRACE_MUX_S1 */
456 gpios = <10 GPIO_ACTIVE_HIGH>;
458 line-name = "MCASP/TRACE_MUX_S1";
464 pinctrl-names = "default";
465 pinctrl-0 = <&main_i2c1_pins_default>;
466 clock-frequency = <400000>;
469 compatible = "ti,tca6408";
473 pinctrl-names = "default";
474 pinctrl-0 = <&main_i2c1_exp4_pins_default>;
475 interrupt-parent = <&main_gpio1>;
476 interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
477 interrupt-controller;
478 #interrupt-cells = <2>;
483 /* Confiure AUDIO_EXT_REFCLK2 pin as output */
484 pinctrl-names = "default";
485 pinctrl-0 = <&audi_ext_refclk2_pins_default>;
489 pinctrl-names = "default";
490 pinctrl-0 = <&main_i2c3_pins_default>;
491 clock-frequency = <400000>;
494 compatible = "ti,tca6408";
500 pcm3168a_1: audio-codec@44 {
501 compatible = "ti,pcm3168a";
504 #sound-dai-cells = <1>;
506 reset-gpios = <&exp3 0 GPIO_ACTIVE_LOW>;
508 /* C_AUDIO_REFCLK2 -> RGMII6_RXC (W26) */
509 clocks = <&k3_clks 157 371>;
510 clock-names = "scki";
512 /* HSDIV3_16FFT_MAIN_4_HSDIVOUT2_CLK -> REFCLK2 */
513 assigned-clocks = <&k3_clks 157 371>;
514 assigned-clock-parents = <&k3_clks 157 400>;
515 assigned-clock-rates = <24576000>; /* for 48KHz */
517 VDD1-supply = <&vsys_3v3>;
518 VDD2-supply = <&vsys_3v3>;
519 VCCAD1-supply = <&vsys_5v0>;
520 VCCAD2-supply = <&vsys_5v0>;
521 VCCDA1-supply = <&vsys_5v0>;
522 VCCDA2-supply = <&vsys_5v0>;
527 pinctrl-names = "default";
528 pinctrl-0 = <&main_i2c6_pins_default>;
529 clock-frequency = <400000>;
532 compatible = "ti,tca6408";
540 pinctrl-names = "default";
541 pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
545 phy0: ethernet-phy@0 {
547 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
548 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
553 phy-mode = "rgmii-rxid";
554 phy-handle = <&phy0>;
559 * These clock assignments are chosen to enable the following outputs:
561 * VP0 - DisplayPort SST
567 assigned-clocks = <&k3_clks 152 1>,
571 assigned-clock-parents = <&k3_clks 152 2>, /* PLL16_HSDIV0 */
572 <&k3_clks 152 6>, /* PLL19_HSDIV0 */
573 <&k3_clks 152 11>, /* PLL18_HSDIV0 */
574 <&k3_clks 152 18>; /* PLL23_HSDIV0 */
618 #sound-dai-cells = <0>;
620 pinctrl-names = "default";
621 pinctrl-0 = <&mcasp10_pins_default>;
623 op-mode = <0>; /* MCASP_IIS_MODE */
625 auxclk-fs-ratio = <256>;
627 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
640 clock-frequency = <100000000>;
644 assigned-clocks = <&wiz0_pll1_refclk>;
645 assigned-clock-parents = <&cmn_refclk1>;
649 assigned-clocks = <&wiz0_refclk_dig>;
650 assigned-clock-parents = <&cmn_refclk1>;
654 assigned-clocks = <&wiz1_pll1_refclk>;
655 assigned-clock-parents = <&cmn_refclk1>;
659 assigned-clocks = <&wiz1_refclk_dig>;
660 assigned-clock-parents = <&cmn_refclk1>;
664 assigned-clocks = <&wiz2_pll1_refclk>;
665 assigned-clock-parents = <&cmn_refclk1>;
669 assigned-clocks = <&wiz2_refclk_dig>;
670 assigned-clock-parents = <&cmn_refclk1>;
674 assigned-clocks = <&serdes0 CDNS_SIERRA_PLL_CMNLC>;
675 assigned-clock-parents = <&wiz0_pll1_refclk>;
677 serdes0_pcie_link: phy@0 {
679 cdns,num-lanes = <1>;
681 cdns,phy-type = <PHY_TYPE_PCIE>;
682 resets = <&serdes_wiz0 1>;
687 assigned-clocks = <&serdes1 CDNS_SIERRA_PLL_CMNLC>;
688 assigned-clock-parents = <&wiz1_pll1_refclk>;
690 serdes1_pcie_link: phy@0 {
692 cdns,num-lanes = <2>;
694 cdns,phy-type = <PHY_TYPE_PCIE>;
695 resets = <&serdes_wiz1 1>, <&serdes_wiz1 2>;
700 assigned-clocks = <&serdes2 CDNS_SIERRA_PLL_CMNLC>;
701 assigned-clock-parents = <&wiz2_pll1_refclk>;
703 serdes2_pcie_link: phy@0 {
705 cdns,num-lanes = <2>;
707 cdns,phy-type = <PHY_TYPE_PCIE>;
708 resets = <&serdes_wiz2 1>, <&serdes_wiz2 2>;
713 reset-gpios = <&exp1 6 GPIO_ACTIVE_HIGH>;
714 phys = <&serdes0_pcie_link>;
715 phy-names = "pcie-phy";
720 reset-gpios = <&exp1 2 GPIO_ACTIVE_HIGH>;
721 phys = <&serdes1_pcie_link>;
722 phy-names = "pcie-phy";
727 reset-gpios = <&exp2 20 GPIO_ACTIVE_HIGH>;
728 phys = <&serdes2_pcie_link>;
729 phy-names = "pcie-phy";
734 phys = <&serdes0_pcie_link>;
735 phy-names = "pcie-phy";
741 phys = <&serdes1_pcie_link>;
742 phy-names = "pcie-phy";
748 phys = <&serdes2_pcie_link>;
749 phy-names = "pcie-phy";