1// SPDX-License-Identifier: GPL-2.0-only OR MIT 2/* 3 * AM62A SK: https://www.ti.com/lit/zip/sprr459 4 * 5 * Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/ 6 */ 7 8/dts-v1/; 9 10#include <dt-bindings/leds/common.h> 11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/net/ti-dp83867.h> 13#include "k3-am62a7.dtsi" 14 15/ { 16 compatible = "ti,am62a7-sk", "ti,am62a7"; 17 model = "Texas Instruments AM62A7 SK"; 18 19 aliases { 20 serial0 = &wkup_uart0; 21 serial1 = &mcu_uart0; 22 serial2 = &main_uart0; 23 serial3 = &main_uart1; 24 mmc0 = &sdhci0; 25 mmc1 = &sdhci1; 26 rtc0 = &wkup_rtc0; 27 rtc1 = &tps659312; 28 }; 29 30 chosen { 31 stdout-path = "serial2:115200n8"; 32 }; 33 34 memory@80000000 { 35 device_type = "memory"; 36 /* 4G RAM */ 37 reg = <0x00000000 0x80000000 0x00000000 0x80000000>, 38 <0x00000008 0x80000000 0x00000000 0x80000000>; 39 }; 40 41 reserved-memory { 42 #address-cells = <2>; 43 #size-cells = <2>; 44 ranges; 45 46 /* global cma region */ 47 linux,cma { 48 compatible = "shared-dma-pool"; 49 reusable; 50 size = <0x00 0x24000000>; 51 alloc-ranges = <0x00 0xc0000000 0x00 0x24000000>; 52 linux,cma-default; 53 }; 54 55 secure_tfa_ddr: tfa@9e780000 { 56 reg = <0x00 0x9e780000 0x00 0x80000>; 57 alignment = <0x1000>; 58 no-map; 59 }; 60 61 secure_ddr: optee@9e800000 { 62 reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */ 63 alignment = <0x1000>; 64 no-map; 65 }; 66 67 wkup_r5fss0_core0_memory_region: r5f-dma-memory@9c900000 { 68 compatible = "shared-dma-pool"; 69 reg = <0x00 0x9c900000 0x00 0x01e00000>; 70 no-map; 71 }; 72 }; 73 74 opp-table { 75 /* Requires VDD_CORE at 0v85 */ 76 opp-1400000000 { 77 opp-hz = /bits/ 64 <1400000000>; 78 opp-supported-hw = <0x01 0x0004>; 79 clock-latency-ns = <6000000>; 80 }; 81 }; 82 83 vmain_pd: regulator-0 { 84 /* TPS25750 PD CONTROLLER OUTPUT */ 85 compatible = "regulator-fixed"; 86 regulator-name = "vmain_pd"; 87 regulator-min-microvolt = <5000000>; 88 regulator-max-microvolt = <5000000>; 89 regulator-always-on; 90 regulator-boot-on; 91 }; 92 93 vcc_5v0: regulator-1 { 94 /* Output of TPS63070 */ 95 compatible = "regulator-fixed"; 96 regulator-name = "vcc_5v0"; 97 regulator-min-microvolt = <5000000>; 98 regulator-max-microvolt = <5000000>; 99 vin-supply = <&vmain_pd>; 100 regulator-always-on; 101 regulator-boot-on; 102 }; 103 104 vcc_3v3_main: regulator-2 { 105 /* output of LM5141-Q1 */ 106 compatible = "regulator-fixed"; 107 regulator-name = "vcc_3v3_main"; 108 regulator-min-microvolt = <3300000>; 109 regulator-max-microvolt = <3300000>; 110 vin-supply = <&vmain_pd>; 111 regulator-always-on; 112 regulator-boot-on; 113 }; 114 115 vdd_mmc1: regulator-3 { 116 /* TPS22918DBVR */ 117 compatible = "regulator-fixed"; 118 regulator-name = "vdd_mmc1"; 119 regulator-min-microvolt = <3300000>; 120 regulator-max-microvolt = <3300000>; 121 regulator-boot-on; 122 enable-active-high; 123 gpio = <&exp1 3 GPIO_ACTIVE_HIGH>; 124 }; 125 126 vcc_3v3_sys: regulator-4 { 127 /* output of TPS222965DSGT */ 128 compatible = "regulator-fixed"; 129 regulator-name = "vcc_3v3_sys"; 130 regulator-min-microvolt = <3300000>; 131 regulator-max-microvolt = <3300000>; 132 vin-supply = <&vcc_3v3_main>; 133 regulator-always-on; 134 regulator-boot-on; 135 }; 136 137 vddshv_sdio: regulator-5 { 138 compatible = "regulator-gpio"; 139 regulator-name = "vddshv_sdio"; 140 pinctrl-names = "default"; 141 pinctrl-0 = <&vddshv_sdio_pins_default>; 142 regulator-min-microvolt = <1800000>; 143 regulator-max-microvolt = <3300000>; 144 regulator-boot-on; 145 vin-supply = <&ldo1>; 146 gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>; 147 states = <1800000 0x0>, 148 <3300000 0x1>; 149 }; 150 151 leds { 152 compatible = "gpio-leds"; 153 pinctrl-names = "default"; 154 pinctrl-0 = <&usr_led_pins_default>; 155 156 led-0 { 157 label = "am62a-sk:green:heartbeat"; 158 gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>; 159 linux,default-trigger = "heartbeat"; 160 function = LED_FUNCTION_HEARTBEAT; 161 default-state = "off"; 162 }; 163 }; 164 165 tlv320_mclk: clk-0 { 166 #clock-cells = <0>; 167 compatible = "fixed-clock"; 168 clock-frequency = <12288000>; 169 }; 170 171 hdmi0: connector-hdmi { 172 compatible = "hdmi-connector"; 173 label = "hdmi"; 174 type = "a"; 175 176 port { 177 hdmi_connector_in: endpoint { 178 remote-endpoint = <&sii9022_out>; 179 }; 180 }; 181 }; 182 183 codec_audio: sound { 184 compatible = "simple-audio-card"; 185 simple-audio-card,name = "AM62Ax-SKEVM"; 186 simple-audio-card,widgets = 187 "Headphone", "Headphone Jack", 188 "Line", "Line In", 189 "Microphone", "Microphone Jack"; 190 simple-audio-card,routing = 191 "Headphone Jack", "HPLOUT", 192 "Headphone Jack", "HPROUT", 193 "LINE1L", "Line In", 194 "LINE1R", "Line In", 195 "MIC3R", "Microphone Jack", 196 "Microphone Jack", "Mic Bias"; 197 simple-audio-card,format = "dsp_b"; 198 simple-audio-card,bitclock-master = <&sound_master>; 199 simple-audio-card,frame-master = <&sound_master>; 200 simple-audio-card,bitclock-inversion; 201 202 simple-audio-card,cpu { 203 sound-dai = <&mcasp1>; 204 }; 205 206 sound_master: simple-audio-card,codec { 207 sound-dai = <&tlv320aic3106>; 208 clocks = <&tlv320_mclk>; 209 }; 210 }; 211}; 212 213&mcu_pmx0 { 214 wkup_uart0_pins_default: wkup-uart0-default-pins { 215 pinctrl-single,pins = < 216 AM62AX_MCU_IOPAD(0x0024, PIN_INPUT, 0) /* (C9) WKUP_UART0_RXD */ 217 AM62AX_MCU_IOPAD(0x0028, PIN_OUTPUT, 0) /* (E9) WKUP_UART0_TXD */ 218 AM62AX_MCU_IOPAD(0x002c, PIN_INPUT, 0) /* (C10) WKUP_UART0_CTSn */ 219 AM62AX_MCU_IOPAD(0x0030, PIN_OUTPUT, 0) /* (C8) WKUP_UART0_RTSn */ 220 >; 221 }; 222}; 223 224/* WKUP UART0 is used for DM firmware logs */ 225&wkup_uart0 { 226 pinctrl-names = "default"; 227 pinctrl-0 = <&wkup_uart0_pins_default>; 228 status = "reserved"; 229}; 230 231&main_pmx0 { 232 main_dss0_pins_default: main-dss0-default-pins { 233 pinctrl-single,pins = < 234 AM62AX_IOPAD(0x100, PIN_OUTPUT, 0) /* (V17) VOUT0_VSYNC */ 235 AM62AX_IOPAD(0x0f8, PIN_OUTPUT, 0) /* (T18) VOUT0_HSYNC */ 236 AM62AX_IOPAD(0x104, PIN_OUTPUT, 0) /* (AA22) VOUT0_PCLK */ 237 AM62AX_IOPAD(0x0fc, PIN_OUTPUT, 0) /* (U17) VOUT0_DE */ 238 AM62AX_IOPAD(0x0b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */ 239 AM62AX_IOPAD(0x0bc, PIN_OUTPUT, 0) /* (U21) VOUT0_DATA1 */ 240 AM62AX_IOPAD(0x0c0, PIN_OUTPUT, 0) /* (U20) VOUT0_DATA2 */ 241 AM62AX_IOPAD(0x0c4, PIN_OUTPUT, 0) /* (U19) VOUT0_DATA3 */ 242 AM62AX_IOPAD(0x0c8, PIN_OUTPUT, 0) /* (T19) VOUT0_DATA4 */ 243 AM62AX_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (U18) VOUT0_DATA5 */ 244 AM62AX_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (V22) VOUT0_DATA6 */ 245 AM62AX_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA7 */ 246 AM62AX_IOPAD(0x0d8, PIN_OUTPUT, 0) /* (V19) VOUT0_DATA8 */ 247 AM62AX_IOPAD(0x0dc, PIN_OUTPUT, 0) /* (V18) VOUT0_DATA9 */ 248 AM62AX_IOPAD(0x0e0, PIN_OUTPUT, 0) /* (W22) VOUT0_DATA10 */ 249 AM62AX_IOPAD(0x0e4, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA11 */ 250 AM62AX_IOPAD(0x0e8, PIN_OUTPUT, 0) /* (W20) VOUT0_DATA12 */ 251 AM62AX_IOPAD(0x0ec, PIN_OUTPUT, 0) /* (W19) VOUT0_DATA13 */ 252 AM62AX_IOPAD(0x0f0, PIN_OUTPUT, 0) /* (Y21) VOUT0_DATA14 */ 253 AM62AX_IOPAD(0x0f4, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA15 */ 254 AM62AX_IOPAD(0x05c, PIN_OUTPUT, 1) /* (P22) GPMC0_AD8.VOUT0_DATA16 */ 255 AM62AX_IOPAD(0x060, PIN_OUTPUT, 1) /* (R19) GPMC0_AD9.VOUT0_DATA17 */ 256 AM62AX_IOPAD(0x064, PIN_OUTPUT, 1) /* (R20) GPMC0_AD10.VOUT0_DATA18 */ 257 AM62AX_IOPAD(0x068, PIN_OUTPUT, 1) /* (R22) GPMC0_AD11.VOUT0_DATA19 */ 258 AM62AX_IOPAD(0x06c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */ 259 AM62AX_IOPAD(0x070, PIN_OUTPUT, 1) /* (R21) GPMC0_AD13.VOUT0_DATA21 */ 260 AM62AX_IOPAD(0x074, PIN_OUTPUT, 1) /* (T20) GPMC0_AD14.VOUT0_DATA22 */ 261 AM62AX_IOPAD(0x078, PIN_OUTPUT, 1) /* (T21) GPMC0_AD15.VOUT0_DATA23 */ 262 >; 263 }; 264 265 main_uart0_pins_default: main-uart0-default-pins { 266 pinctrl-single,pins = < 267 AM62AX_IOPAD(0x1c8, PIN_INPUT, 0) /* (E14) UART0_RXD */ 268 AM62AX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */ 269 >; 270 }; 271 272 main_uart1_pins_default: main-uart1-default-pins { 273 pinctrl-single,pins = < 274 AM62AX_IOPAD(0x01e8, PIN_INPUT, 1) /* (C17) I2C1_SCL.UART1_RXD */ 275 AM62AX_IOPAD(0x01ec, PIN_OUTPUT, 1) /* (E17) I2C1_SDA.UART1_TXD */ 276 AM62AX_IOPAD(0x0194, PIN_INPUT, 2) /* (C19) MCASP0_AXR3.UART1_CTSn */ 277 AM62AX_IOPAD(0x0198, PIN_OUTPUT, 2) /* (B19) MCASP0_AXR2.UART1_RTSn */ 278 >; 279 }; 280 281 main_i2c0_pins_default: main-i2c0-default-pins { 282 pinctrl-single,pins = < 283 AM62AX_IOPAD(0x1e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */ 284 AM62AX_IOPAD(0x1e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */ 285 >; 286 }; 287 288 main_i2c1_pins_default: main-i2c1-default-pins { 289 pinctrl-single,pins = < 290 AM62AX_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */ 291 AM62AX_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ 292 >; 293 }; 294 295 main_i2c2_pins_default: main-i2c2-default-pins { 296 pinctrl-single,pins = < 297 AM62AX_IOPAD(0x0b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */ 298 AM62AX_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */ 299 >; 300 }; 301 302 main_mmc0_pins_default: main-mmc0-default-pins { 303 pinctrl-single,pins = < 304 AM62AX_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */ 305 AM62AX_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLKLB */ 306 AM62AX_IOPAD(0x21c, PIN_INPUT, 0) /* (AB1) MMC0_CLK */ 307 AM62AX_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */ 308 AM62AX_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (AA1) MMC0_DAT1 */ 309 AM62AX_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (AA3) MMC0_DAT2 */ 310 AM62AX_IOPAD(0x208, PIN_INPUT_PULLUP, 0) /* (Y4) MMC0_DAT3 */ 311 AM62AX_IOPAD(0x204, PIN_INPUT_PULLUP, 0) /* (AB2) MMC0_DAT4 */ 312 AM62AX_IOPAD(0x200, PIN_INPUT_PULLUP, 0) /* (AC1) MMC0_DAT5 */ 313 AM62AX_IOPAD(0x1fc, PIN_INPUT_PULLUP, 0) /* (AD2) MMC0_DAT6 */ 314 AM62AX_IOPAD(0x1f8, PIN_INPUT_PULLUP, 0) /* (AC2) MMC0_DAT7 */ 315 >; 316 }; 317 318 main_mmc1_pins_default: main-mmc1-default-pins { 319 pinctrl-single,pins = < 320 AM62AX_IOPAD(0x23c, PIN_INPUT, 0) /* (A21) MMC1_CMD */ 321 AM62AX_IOPAD(0x234, PIN_INPUT, 0) /* (B22) MMC1_CLK */ 322 AM62AX_IOPAD(0x230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */ 323 AM62AX_IOPAD(0x22c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */ 324 AM62AX_IOPAD(0x228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */ 325 AM62AX_IOPAD(0x224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */ 326 AM62AX_IOPAD(0x240, PIN_INPUT, 0) /* (D17) MMC1_SDCD */ 327 >; 328 }; 329 330 usr_led_pins_default: usr-led-default-pins { 331 pinctrl-single,pins = < 332 AM62AX_IOPAD(0x244, PIN_OUTPUT, 7) /* (D18) MMC1_SDWP.GPIO1_49 */ 333 >; 334 }; 335 336 main_usb1_pins_default: main-usb1-default-pins { 337 pinctrl-single,pins = < 338 AM62AX_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */ 339 >; 340 }; 341 342 main_mdio1_pins_default: main-mdio1-default-pins { 343 pinctrl-single,pins = < 344 AM62AX_IOPAD(0x160, PIN_OUTPUT, 0) /* (V12) MDIO0_MDC */ 345 AM62AX_IOPAD(0x15c, PIN_INPUT, 0) /* (V13) MDIO0_MDIO */ 346 >; 347 }; 348 349 main_rgmii1_pins_default: main-rgmii1-default-pins { 350 pinctrl-single,pins = < 351 AM62AX_IOPAD(0x14c, PIN_INPUT, 0) /* (AB16) RGMII1_RD0 */ 352 AM62AX_IOPAD(0x150, PIN_INPUT, 0) /* (V15) RGMII1_RD1 */ 353 AM62AX_IOPAD(0x154, PIN_INPUT, 0) /* (W15) RGMII1_RD2 */ 354 AM62AX_IOPAD(0x158, PIN_INPUT, 0) /* (V14) RGMII1_RD3 */ 355 AM62AX_IOPAD(0x148, PIN_INPUT, 0) /* (AA16) RGMII1_RXC */ 356 AM62AX_IOPAD(0x144, PIN_INPUT, 0) /* (AA15) RGMII1_RX_CTL */ 357 AM62AX_IOPAD(0x134, PIN_INPUT, 0) /* (Y17) RGMII1_TD0 */ 358 AM62AX_IOPAD(0x138, PIN_INPUT, 0) /* (V16) RGMII1_TD1 */ 359 AM62AX_IOPAD(0x13c, PIN_INPUT, 0) /* (Y16) RGMII1_TD2 */ 360 AM62AX_IOPAD(0x140, PIN_INPUT, 0) /* (AA17) RGMII1_TD3 */ 361 AM62AX_IOPAD(0x130, PIN_INPUT, 0) /* (AB17) RGMII1_TXC */ 362 AM62AX_IOPAD(0x12c, PIN_INPUT, 0) /* (W16) RGMII1_TX_CTL */ 363 >; 364 }; 365 366 main_mcasp1_pins_default: main-mcasp1-default-pins { 367 pinctrl-single,pins = < 368 AM62AX_IOPAD(0x090, PIN_INPUT, 2) /* (L19) GPMC0_BE0n_CLE.MCASP1_ACLKX */ 369 AM62AX_IOPAD(0x098, PIN_INPUT, 2) /* (R18) GPMC0_WAIT0.MCASP1_AFSX */ 370 AM62AX_IOPAD(0x08c, PIN_OUTPUT, 2) /* (K19) GPMC0_WEn.MCASP1_AXR0 */ 371 AM62AX_IOPAD(0x084, PIN_INPUT, 2) /* (L18) GPMC0_ADVn_ALE.MCASP1_AXR2 */ 372 >; 373 }; 374 375 main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins { 376 pinctrl-single,pins = < 377 AM62AX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C15) UART0_RTSn.GPIO1_23 */ 378 >; 379 }; 380 381 vddshv_sdio_pins_default: vddshv-sdio-default-pins { 382 pinctrl-single,pins = < 383 AM62AX_IOPAD(0x07c, PIN_OUTPUT, 7) /* (M19) GPMC0_CLK.GPIO0_31 */ 384 >; 385 }; 386}; 387 388&mcu_pmx0 { 389 status = "okay"; 390 391 pmic_irq_pins_default: pmic-irq-default-pins { 392 pinctrl-single,pins = < 393 AM62AX_MCU_IOPAD(0x000, PIN_INPUT, 7) /* (E11) MCU_GPIO0_0 */ 394 >; 395 }; 396}; 397 398&mcu_gpio0 { 399 status = "okay"; 400}; 401 402&main_i2c0 { 403 status = "okay"; 404 pinctrl-names = "default"; 405 pinctrl-0 = <&main_i2c0_pins_default>; 406 clock-frequency = <400000>; 407 408 typec_pd0: usb-power-controller@3f { 409 compatible = "ti,tps6598x"; 410 reg = <0x3f>; 411 412 connector { 413 compatible = "usb-c-connector"; 414 label = "USB-C"; 415 self-powered; 416 data-role = "dual"; 417 power-role = "sink"; 418 port { 419 usb_con_hs: endpoint { 420 remote-endpoint = <&usb0_hs_ep>; 421 }; 422 }; 423 }; 424 }; 425 426 tps659312: pmic@48 { 427 compatible = "ti,tps6593-q1"; 428 reg = <0x48>; 429 ti,primary-pmic; 430 system-power-controller; 431 432 gpio-controller; 433 #gpio-cells = <2>; 434 435 pinctrl-names = "default"; 436 pinctrl-0 = <&pmic_irq_pins_default>; 437 interrupt-parent = <&mcu_gpio0>; 438 interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 439 440 buck123-supply = <&vcc_3v3_sys>; 441 buck4-supply = <&vcc_3v3_sys>; 442 buck5-supply = <&vcc_3v3_sys>; 443 ldo1-supply = <&vcc_3v3_sys>; 444 ldo2-supply = <&vcc_3v3_sys>; 445 ldo3-supply = <&buck5>; 446 ldo4-supply = <&vcc_3v3_sys>; 447 448 regulators { 449 buck123: buck123 { 450 regulator-name = "vcc_core"; 451 regulator-min-microvolt = <715000>; 452 regulator-max-microvolt = <895000>; 453 regulator-boot-on; 454 regulator-always-on; 455 }; 456 457 buck4: buck4 { 458 regulator-name = "vcc_1v1"; 459 regulator-min-microvolt = <1100000>; 460 regulator-max-microvolt = <1100000>; 461 regulator-boot-on; 462 regulator-always-on; 463 }; 464 465 buck5: buck5 { 466 regulator-name = "vcc_1v8_sys"; 467 regulator-min-microvolt = <1800000>; 468 regulator-max-microvolt = <1800000>; 469 regulator-boot-on; 470 regulator-always-on; 471 }; 472 473 ldo1: ldo1 { 474 regulator-name = "vddshv5_sdio"; 475 regulator-min-microvolt = <3300000>; 476 regulator-max-microvolt = <3300000>; 477 regulator-boot-on; 478 regulator-always-on; 479 }; 480 481 ldo2: ldo2 { 482 regulator-name = "vpp_1v8"; 483 regulator-min-microvolt = <1800000>; 484 regulator-max-microvolt = <1800000>; 485 regulator-boot-on; 486 regulator-always-on; 487 }; 488 489 ldo3: ldo3 { 490 regulator-name = "vcc_0v85"; 491 regulator-min-microvolt = <850000>; 492 regulator-max-microvolt = <850000>; 493 regulator-boot-on; 494 regulator-always-on; 495 }; 496 497 ldo4: ldo4 { 498 regulator-name = "vdda_1v8"; 499 regulator-min-microvolt = <1800000>; 500 regulator-max-microvolt = <1800000>; 501 regulator-boot-on; 502 regulator-always-on; 503 }; 504 }; 505 }; 506}; 507 508&main_i2c1 { 509 status = "okay"; 510 pinctrl-names = "default"; 511 pinctrl-0 = <&main_i2c1_pins_default>; 512 clock-frequency = <100000>; 513 514 exp1: gpio@22 { 515 compatible = "ti,tca6424"; 516 reg = <0x22>; 517 gpio-controller; 518 #gpio-cells = <2>; 519 interrupt-parent = <&main_gpio1>; 520 interrupts = <23 IRQ_TYPE_EDGE_FALLING>; 521 interrupt-controller; 522 #interrupt-cells = <2>; 523 pinctrl-names = "default"; 524 pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>; 525 526 gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST", 527 "BT_EN_SOC", "MMC1_SD_EN", 528 "VPP_EN", "EXP_PS_3V3_En", 529 "EXP_PS_5V0_En", "EXP_HAT_DETECT", 530 "GPIO_AUD_RSTn", "GPIO_eMMC_RSTn", 531 "UART1_FET_BUF_EN", "BT_UART_WAKE_SOC", 532 "GPIO_HDMI_RSTn", "CSI_GPIO0", 533 "CSI_GPIO1", "WLAN_ALERTn", 534 "HDMI_INTn", "TEST_GPIO2", 535 "MCASP1_FET_EN", "MCASP1_BUF_BT_EN", 536 "MCASP1_FET_SEL", "UART1_FET_SEL", 537 "PD_I2C_IRQ", "IO_EXP_TEST_LED"; 538 }; 539 540 tlv320aic3106: audio-codec@1b { 541 #sound-dai-cells = <0>; 542 compatible = "ti,tlv320aic3106"; 543 reg = <0x1b>; 544 ai3x-micbias-vg = <1>; /* 2.0V */ 545 546 /* Regulators */ 547 AVDD-supply = <&vcc_3v3_sys>; 548 IOVDD-supply = <&vcc_3v3_sys>; 549 DRVDD-supply = <&vcc_3v3_sys>; 550 DVDD-supply = <&buck5>; 551 }; 552 553 exp2: gpio@23 { 554 compatible = "ti,tca6424"; 555 reg = <0x23>; 556 gpio-controller; 557 #gpio-cells = <2>; 558 559 gpio-line-names = "", "", 560 "", "", 561 "", "", 562 "", "", 563 "WL_LT_EN", "CSI_RSTz", 564 "", "", 565 "", "", 566 "", "", 567 "SPI0_FET_SEL", "SPI0_FET_OE", 568 "RGMII2_BRD_CONN_DET", "CSI_SEL2", 569 "CSI_EN", "AUTO_100M_1000M_CONFIG", 570 "CSI_VLDO_SEL", "SoC_WLAN_SDIO_RST"; 571 }; 572 573 sii9022: bridge-hdmi@3b { 574 compatible = "sil,sii9022"; 575 reg = <0x3b>; 576 interrupt-parent = <&exp1>; 577 interrupts = <16 IRQ_TYPE_EDGE_FALLING>; 578 #sound-dai-cells = <0>; 579 sil,i2s-data-lanes = < 0 >; 580 581 ports { 582 #address-cells = <1>; 583 #size-cells = <0>; 584 585 port@0 { 586 reg = <0>; 587 588 sii9022_in: endpoint { 589 remote-endpoint = <&dpi1_out>; 590 }; 591 }; 592 593 port@1 { 594 reg = <1>; 595 596 sii9022_out: endpoint { 597 remote-endpoint = <&hdmi_connector_in>; 598 }; 599 }; 600 }; 601 }; 602}; 603 604&main_i2c2 { 605 status = "okay"; 606 pinctrl-names = "default"; 607 pinctrl-0 = <&main_i2c2_pins_default>; 608 clock-frequency = <400000>; 609}; 610 611&sdhci0 { 612 /* eMMC */ 613 status = "okay"; 614 non-removable; 615 pinctrl-names = "default"; 616 pinctrl-0 = <&main_mmc0_pins_default>; 617 disable-wp; 618}; 619 620&sdhci1 { 621 /* SD/MMC */ 622 status = "okay"; 623 vmmc-supply = <&vdd_mmc1>; 624 vqmmc-supply = <&vddshv_sdio>; 625 pinctrl-names = "default"; 626 pinctrl-0 = <&main_mmc1_pins_default>; 627 disable-wp; 628}; 629 630&main_gpio0 { 631 status = "okay"; 632}; 633 634&main_gpio1 { 635 status = "okay"; 636}; 637 638&main_gpio_intr { 639 status = "okay"; 640}; 641 642&main_uart0 { 643 status = "okay"; 644 pinctrl-names = "default"; 645 pinctrl-0 = <&main_uart0_pins_default>; 646}; 647 648/* Main UART1 is used for TIFS firmware logs */ 649&main_uart1 { 650 pinctrl-names = "default"; 651 pinctrl-0 = <&main_uart1_pins_default>; 652 status = "reserved"; 653}; 654 655&usbss0 { 656 status = "okay"; 657 ti,vbus-divider; 658}; 659 660&usb0 { 661 bootph-all; 662 usb-role-switch; 663 664 port { 665 usb0_hs_ep: endpoint { 666 remote-endpoint = <&usb_con_hs>; 667 }; 668 }; 669}; 670 671&usbss1 { 672 status = "okay"; 673}; 674 675&usb1 { 676 dr_mode = "host"; 677 pinctrl-names = "default"; 678 pinctrl-0 = <&main_usb1_pins_default>; 679}; 680 681&cpsw3g { 682 status = "okay"; 683 pinctrl-names = "default"; 684 pinctrl-0 = <&main_rgmii1_pins_default>; 685}; 686 687&cpsw_port1 { 688 status = "okay"; 689 phy-mode = "rgmii-rxid"; 690 phy-handle = <&cpsw3g_phy0>; 691}; 692 693&cpsw_port2 { 694 status = "disabled"; 695}; 696 697&cpsw3g_mdio { 698 status = "okay"; 699 pinctrl-names = "default"; 700 pinctrl-0 = <&main_mdio1_pins_default>; 701 702 cpsw3g_phy0: ethernet-phy@0 { 703 reg = <0>; 704 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 705 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 706 ti,min-output-impedance; 707 }; 708}; 709 710&mcasp1 { 711 status = "okay"; 712 #sound-dai-cells = <0>; 713 714 pinctrl-names = "default"; 715 pinctrl-0 = <&main_mcasp1_pins_default>; 716 717 op-mode = <0>; /* MCASP_IIS_MODE */ 718 tdm-slots = <2>; 719 720 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 721 1 0 2 0 722 0 0 0 0 723 0 0 0 0 724 0 0 0 0 725 >; 726}; 727 728&dss { 729 status = "okay"; 730 pinctrl-names = "default"; 731 pinctrl-0 = <&main_dss0_pins_default>; 732}; 733 734&dss_ports { 735 /* VP2: DPI Output */ 736 port@1 { 737 reg = <1>; 738 739 dpi1_out: endpoint { 740 remote-endpoint = <&sii9022_in>; 741 }; 742 }; 743}; 744