// SPDX-License-Identifier: GPL-2.0 /* * Device Tree file for the AM62P5-SK * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/ * * Schematics: https://www.ti.com/lit/zip/sprr487 */ /dts-v1/; #include #include #include #include "k3-am62p5.dtsi" / { compatible = "ti,am62p5-sk", "ti,am62p5"; model = "Texas Instruments AM62P5 SK - Test LIN"; aliases { serial0 = &wkup_uart0; serial1 = &mcu_uart0; serial2 = &main_uart0; serial3 = &main_uart1; mmc0 = &sdhci0; mmc1 = &sdhci1; mmc2 = &sdhci2; spi0 = &ospi0; ethernet0 = &cpsw_port1; ethernet1 = &cpsw_port2; usb0 = &usb0; usb1 = &usb1; }; chosen { #address-cells = <2>; #size-cells = <2>; ranges; stdout-path = &main_uart0; framebuffer0: framebuffer@0 { compatible = "simple-framebuffer"; power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>, <&k3_pds 243 TI_SCI_PD_EXCLUSIVE>, /* OLDI0 */ <&k3_pds 244 TI_SCI_PD_EXCLUSIVE>; /* OLDI1 */ clocks = <&k3_clks 186 6>, <&k3_clks 186 0>, <&dss0_vp1_clk>, <&k3_clks 186 2>; display = <&dss0>; status = "disabled"; }; }; memory@80000000 { /* 8G RAM */ reg = <0x00000000 0x80000000 0x00000000 0x80000000>, <0x00000008 0x80000000 0x00000001 0x80000000>; device_type = "memory"; bootph-pre-ram; }; transceiver3: can-phy2 { compatible = "ti,tcan1042"; #phy-cells = <0>; max-bitrate = <5000000>; }; reserved_memory: reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; linux,cma { compatible = "shared-dma-pool"; reusable; size = <0x00 0x24000000>; linux,cma-default; }; rtos_ipc_memory_region: rtos-ipc-memory@9b500000 { compatible = "shared-dma-pool"; reg = <0x00 0x9b500000 0x00 0x00300000>; no-map; }; mcu_r5fss0_core0_dma_memory_region: mcu-r5fss-dma-memory-region@9b800000 { compatible = "shared-dma-pool"; reg = <0x00 0x9b800000 0x00 0x00100000>; no-map; }; mcu_r5fss0_core0_memory_region: mcu-r5fss-memory-region@9b900000 { compatible = "shared-dma-pool"; reg = <0x00 0x9b900000 0x00 0x00f00000>; no-map; }; wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9c800000 { compatible = "shared-dma-pool"; reg = <0x00 0x9c800000 0x00 0x00100000>; no-map; }; wkup_r5fss0_core0_memory_region: r5f-memory@9c900000 { compatible = "shared-dma-pool"; reg = <0x00 0x9c900000 0x00 0x01e00000>; no-map; }; secure_tfa_ddr: tfa@9e780000 { reg = <0x00 0x9e780000 0x00 0x80000>; no-map; }; secure_ddr: optee@9e800000 { reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */ no-map; }; }; vmain_pd: regulator-0 { /* TPS65988 PD CONTROLLER OUTPUT */ compatible = "regulator-fixed"; regulator-name = "vmain_pd"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; bootph-all; }; vcc_5v0: regulator-1 { /* Output of TPS630702RNMR */ compatible = "regulator-fixed"; regulator-name = "vcc_5v0"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&vmain_pd>; regulator-always-on; regulator-boot-on; bootph-all; }; vdd_mmc1: regulator-2 { /* TPS22918DBVR */ compatible = "regulator-fixed"; regulator-name = "vdd_mmc1"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; enable-active-high; gpio = <&exp1 3 GPIO_ACTIVE_HIGH>; bootph-all; }; vddshv_sdio: regulator-3 { compatible = "regulator-gpio"; regulator-name = "vddshv_sdio"; pinctrl-names = "default"; pinctrl-0 = <&vddshv_sdio_pins_default>; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-boot-on; gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>; states = <1800000 0x0>, <3300000 0x1>; bootph-all; }; vcc_3v3_sys: regulator-4 { compatible = "regulator-fixed"; regulator-name = "vcc_3v3_sys"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vmain_pd>; regulator-always-on; regulator-boot-on; bootph-all; }; wl_lt_en: regulator-5 { compatible = "regulator-fixed"; regulator-name = "wl_lt_en"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; enable-active-high; gpio = <&exp2 8 GPIO_ACTIVE_HIGH>; bootph-all; }; uart1_fet_buf_en: regulator-6 { compatible = "regulator-fixed"; regulator-name = "uart1_fet_buf_en"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; enable-active-low; vin-supply = <&wlan_en>; gpios = <&exp1 6 GPIO_ACTIVE_LOW>; bootph-all; }; // uart1_fet_sel: regulator-7 { // compatible = "regulator-fixed"; // regulator-name = "uart1_fet_sel"; // regulator-min-microvolt = <3300000>; // regulator-max-microvolt = <3300000>; // regulator-boot-on; // regulator-always-on; // //enable-active-low; // enable-active-high; // vin-supply = <&exp1>; // //gpios = <&exp1 2 GPIO_ACTIVE_LOW>; // gpios = <&exp1 2 GPIO_ACTIVE_HIGH>; // }; // mcasp1_fet_en: regulator-8 { // compatible = "regulator-fixed"; // regulator-name = "mcasp1_fet_en"; // regulator-min-microvolt = <3300000>; // regulator-max-microvolt = <3300000>; // regulator-boot-on; // enable-active-low; // vin-supply = <&exp1>; // gpio = <&exp1 18 GPIO_ACTIVE_LOW>; // }; // mcasp1_buf_bt_en: regulator-9 { // compatible = "regulator-fixed"; // regulator-name = "mcasp1_buf_bt_en"; // regulator-min-microvolt = <3300000>; // regulator-max-microvolt = <3300000>; // regulator-boot-on; // enable-active-high; // vin-supply = <&exp1>; // gpio = <&exp1 19 GPIO_ACTIVE_HIGH>; // }; // mcasp1_fet_sel: regulator-10 { // compatible = "regulator-fixed"; // regulator-name = "mcasp1_fet_sel"; // regulator-min-microvolt = <3300000>; // regulator-max-microvolt = <3300000>; // regulator-boot-on; // enable-active-high; // vin-supply = <&exp1>; // gpio = <&exp1 20 GPIO_ACTIVE_HIGH>; // }; //Regulator 5V e 3V3 para a placa adaptadora LOHR exp_ps_5v0_en: regulator-11 { compatible = "regulator-fixed"; regulator-name = "exp_ps_5v0_en"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-boot-on; regulator-always-on; enable-active-high; gpios = <&exp2 1 GPIO_ACTIVE_HIGH>; bootph-all; }; exp_ps_3v3_en: regulator-12 { compatible = "regulator-fixed"; regulator-name = "exp_ps_3v3_en"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; enable-active-high; gpios = <&exp1 5 GPIO_ACTIVE_HIGH>; bootph-all; }; wlan_en: regulator-15 { compatible = "regulator-fixed"; regulator-name = "wlan_en"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; vin-supply = <&wl_lt_en>; enable-active-high; gpios = <&main_gpio0 71 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&wlan_en_pins_default>; status = "disabled"; }; // Aqui deve ser o pino PDn conectado em W_DISABLE1 (Pino 56 no M.2) // Example Kernel Toradex k3-am62-verdin-wifi.dtsi wifi_pwrseq: wifi-pwrseq { compatible = "mmc-pwrseq-simple"; pinctrl-names = "default"; pinctrl-0 = <&wlan_en_pins_default>; reset-gpios = <&main_gpio0 71 GPIO_ACTIVE_LOW>;// Se Power Down Mode for Low = GPIO_ACTIVE_LOW status = "okay"; }; // Config do backlight do LCD backlight: backlight { compatible = "pwm-backlight"; pinctrl-names = "default"; pinctrl-0 = <&backlight_pins_default>; brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255>; default-brightness-level = <100>; enable-gpios = <&main_gpio0 41 GPIO_ACTIVE_HIGH>; //TFT Enable pwms = <&epwm1 1 2000000 0>; }; leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&usr_led_pins_default>; led-0 { label = "am62-sk:green:heartbeat"; gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; function = LED_FUNCTION_HEARTBEAT; default-state = "off"; }; }; opp-table { /* Add 1.4GHz OPP for am62p5-sk board. Requires VDD_CORE at 0v85 */ opp-1400000000 { opp-hz = /bits/ 64 <1400000000>; opp-supported-hw = <0x01 0x0004>; clock-latency-ns = <6000000>; }; }; tlv320_mclk: clk-0 { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <12000000>; }; clk_nvp6324_fixed: nvp6324-xclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <27000000>; }; codec_audio: sound { compatible = "simple-audio-card"; simple-audio-card,name = "AM62x-SKEVM"; simple-audio-card,widgets = "Headphone", "Headphone Jack", "Line", "Line In", "Microphone", "Microphone Jack"; simple-audio-card,routing = "Headphone Jack", "HPLOUT", "Headphone Jack", "HPROUT", "LINE1L", "Line In", "LINE1R", "Line In", "MIC3R", "Microphone Jack", "Microphone Jack", "Mic Bias"; simple-audio-card,format = "dsp_b"; simple-audio-card,bitclock-master = <&sound_master>; simple-audio-card,frame-master = <&sound_master>; simple-audio-card,bitclock-inversion; simple-audio-card,cpu { sound-dai = <&mcasp1>; }; sound_master: simple-audio-card,codec { sound-dai = <&tlv320aic3106>; clocks = <&tlv320_mclk>; }; }; hdmi0: connector-hdmi { compatible = "hdmi-connector"; label = "hdmi"; type = "a"; port { hdmi_connector_in: endpoint { remote-endpoint = <&sii9022_out>; }; }; }; lcd { compatible = "lincolntech,lcd185-101ct"; backlight = <&backlight>; bootph-all; /* * Note that the OLDI TX 0 transmits the odd set of pixels * while the OLDI TX 1 transmits the even set. This is a * fixed configuration in the IP integration and is not * changeable. The properties, "dual-lvds-odd-pixels" and * "dual-lvds-even-pixels" have been used to merely * identify if a Dual Link configuration is required. * But swapping them will cause an error in the dss driver. */ port@0 { bootph-all; lcd_in0: endpoint { remote-endpoint = <&oldi_0_out>; }; }; }; }; &main_gpio0 { bootph-all; }; &main_gpio1 { bootph-all; }; &ecap0{ status = "okay"; }; &epwm1{ status = "okay"; }; &main_pmx0 { bootph-all; main_i2c0_pins_default: main-i2c0-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B25) I2C0_SCL */ AM62PX_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A24) I2C0_SDA */ >; }; main_i2c1_pins_default: main-i2c1-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (C24) I2C1_SCL */ AM62PX_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (B24) I2C1_SDA */ >; bootph-all; }; main_i2c2_pins_default: main-i2c2-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (T22) GPMC0_CSn2.I2C2_SCL */ AM62PX_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (U25) GPMC0_CSn3.I2C2_SDA */ >; }; main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C22) UART0_RTSn.GPIO1_23 */ >; }; main_mcasp1_pins_default: main-mcasp1-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0090, PIN_INPUT, 2) /* (U24) GPMC0_BE0n_CLE.MCASP1_ACLKX */ AM62PX_IOPAD(0x0098, PIN_INPUT, 2) /* (AA24) GPMC0_WAIT0.MCASP1_AFSX */ AM62PX_IOPAD(0x008c, PIN_OUTPUT, 2) /* (T25) GPMC0_WEn.MCASP1_AXR0 */ AM62PX_IOPAD(0x0084, PIN_INPUT, 2) /* (R25) GPMC0_ADVn_ALE.MCASP1_AXR2 */ >; }; // Config TFT enable / Backlight brightness backlight_pins_default: bl-pins-default { pinctrl-single,pins = < AM62PX_IOPAD(0x00ac, PIN_OUTPUT_PULLUP, 7) /* (U23) GPMC0_CSn1.GPIO0_42 */ /*TFT RESET*/ AM62PX_IOPAD(0x00a8, PIN_OUTPUT_PULLDOWN, 7) /* (T23) GPMC0_CSn0.GPIO0_41 */ /*TFT ENABLE*/ AM62PX_IOPAD(0x01a0, PIN_OUTPUT_PULLDOWN, 6) /* (F23) MCASP0_AXR0.EHRPWM1_B */ /*Back Light EN/PWM*/ >; }; main_mdio1_pins_default: main-mdio1-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0160, PIN_OUTPUT, 0) /* (F17) MDIO0_MDC */ AM62PX_IOPAD(0x015c, PIN_INPUT, 0) /* (F16) MDIO0_MDIO */ >; }; main_mmc1_pins_default: main-mmc1-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x023c, PIN_INPUT, 0) /* (H20) MMC1_CMD */ AM62PX_IOPAD(0x0234, PIN_OUTPUT, 0) /* (J24) MMC1_CLK */ AM62PX_IOPAD(0x0230, PIN_INPUT, 0) /* (H21) MMC1_DAT0 */ AM62PX_IOPAD(0x022c, PIN_INPUT_PULLUP, 0) /* (H23) MMC1_DAT1 */ AM62PX_IOPAD(0x0228, PIN_INPUT_PULLUP, 0) /* (H22) MMC1_DAT2 */ AM62PX_IOPAD(0x0224, PIN_INPUT_PULLUP, 0) /* (H25) MMC1_DAT3 */ AM62PX_IOPAD(0x0240, PIN_INPUT, 0) /* (D23) MMC1_SDCD */ >; bootph-all; }; main_mmc2_pins_default: main-mmc2-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0120, PIN_INPUT, 0) /* (K24) MMC2_CMD */ AM62PX_IOPAD(0x0118, PIN_OUTPUT, 0) /* (K21) MMC2_CLK */ AM62PX_IOPAD(0x0114, PIN_INPUT, 0) /* (K23) MMC2_DAT0 */ AM62PX_IOPAD(0x0110, PIN_INPUT, 0) /* (K22) MMC2_DAT1 */ AM62PX_IOPAD(0x010c, PIN_INPUT, 0) /* (L20) MMC2_DAT2 */ AM62PX_IOPAD(0x0108, PIN_INPUT, 0) /* (L21) MMC2_DAT3 */ AM62PX_IOPAD(0x011C, PIN_INPUT, 0) /* () MMC2_CLKLB */ >; bootph-all; }; main_rgmii1_pins_default: main-rgmii1-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x014c, PIN_INPUT, 0) /* (B15) RGMII1_RD0 */ AM62PX_IOPAD(0x0150, PIN_INPUT, 0) /* (B16) RGMII1_RD1 */ AM62PX_IOPAD(0x0154, PIN_INPUT, 0) /* (A14) RGMII1_RD2 */ AM62PX_IOPAD(0x0158, PIN_INPUT, 0) /* (B14) RGMII1_RD3 */ AM62PX_IOPAD(0x0148, PIN_INPUT, 0) /* (A16) RGMII1_RXC */ AM62PX_IOPAD(0x0144, PIN_INPUT, 0) /* (A15) RGMII1_RX_CTL */ AM62PX_IOPAD(0x0134, PIN_INPUT, 0) /* (A18) RGMII1_TD0 */ AM62PX_IOPAD(0x0138, PIN_INPUT, 0) /* (C17) RGMII1_TD1 */ AM62PX_IOPAD(0x013c, PIN_INPUT, 0) /* (A17) RGMII1_TD2 */ AM62PX_IOPAD(0x0140, PIN_INPUT, 0) /* (C16) RGMII1_TD3 */ AM62PX_IOPAD(0x0130, PIN_INPUT, 0) /* (B17) RGMII1_TXC */ AM62PX_IOPAD(0x012c, PIN_INPUT, 0) /* (B18) RGMII1_TX_CTL */ >; bootph-all; }; main_rgmii2_pins_default: main-rgmii2-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0184, PIN_INPUT, 0) /* (E19) RGMII2_RD0 */ AM62PX_IOPAD(0x0188, PIN_INPUT, 0) /* (E16) RGMII2_RD1 */ AM62PX_IOPAD(0x018c, PIN_INPUT, 0) /* (E17) RGMII2_RD2 */ AM62PX_IOPAD(0x0190, PIN_INPUT, 0) /* (C19) RGMII2_RD3 */ AM62PX_IOPAD(0x0180, PIN_INPUT, 0) /* (D19) RGMII2_RXC */ AM62PX_IOPAD(0x017c, PIN_INPUT, 0) /* (F19) RGMII2_RX_CTL */ AM62PX_IOPAD(0x016c, PIN_INPUT, 0) /* (B19) RGMII2_TD0 */ AM62PX_IOPAD(0x0170, PIN_INPUT, 0) /* (A21) RGMII2_TD1 */ AM62PX_IOPAD(0x0174, PIN_INPUT, 0) /* (D17) RGMII2_TD2 */ AM62PX_IOPAD(0x0178, PIN_INPUT, 0) /* (A19) RGMII2_TD3 */ AM62PX_IOPAD(0x0168, PIN_INPUT, 0) /* (D16) RGMII2_TXC */ AM62PX_IOPAD(0x0164, PIN_INPUT, 0) /* (A20) RGMII2_TX_CTL */ >; bootph-all; }; main_uart0_pins_default: main-uart0-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x1c8, PIN_INPUT, 0) /* (A22) UART0_RXD */ AM62PX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (B22) UART0_TXD */ >; bootph-all; }; main_uart1_pins_default: main-uart1-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x01ac, PIN_INPUT, 2) /* (G23) MCASP0_AFSR.UART1_RXD */ AM62PX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (G20) MCASP0_ACLKR.UART1_TXD */ AM62PX_IOPAD(0x0198, PIN_OUTPUT, 2) /* (E25) MCASP0_AXR2.UART1_RTSn */ AM62PX_IOPAD(0x0194, PIN_INPUT, 2) /* (D25) MCASP0_AXR3.UART1_CTSn */ >; bootph-all; }; main_usb1_pins_default: main-usb1-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */ >; }; main_wlirq_pins_default: main-wlirq-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */ >; }; ospi0_pins_default: ospi0-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0000, PIN_OUTPUT, 0) /* (P23) OSPI0_CLK */ AM62PX_IOPAD(0x002c, PIN_OUTPUT, 0) /* (M25) OSPI0_CSn0 */ AM62PX_IOPAD(0x000c, PIN_INPUT, 0) /* (L25) OSPI0_D0 */ AM62PX_IOPAD(0x0010, PIN_INPUT, 0) /* (N24) OSPI0_D1 */ AM62PX_IOPAD(0x0014, PIN_INPUT, 0) /* (N25) OSPI0_D2 */ AM62PX_IOPAD(0x0018, PIN_INPUT, 0) /* (M24) OSPI0_D3 */ AM62PX_IOPAD(0x001c, PIN_INPUT, 0) /* (N21) OSPI0_D4 */ AM62PX_IOPAD(0x0020, PIN_INPUT, 0) /* (N22) OSPI0_D5 */ AM62PX_IOPAD(0x0024, PIN_INPUT, 0) /* (P21) OSPI0_D6 */ AM62PX_IOPAD(0x0028, PIN_INPUT, 0) /* (N20) OSPI0_D7 */ AM62PX_IOPAD(0x0008, PIN_INPUT, 0) /* (P22) OSPI0_DQS */ >; bootph-all; }; usr_led_pins_default: usr-led-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0244, PIN_INPUT, 7) /* (D24) MMC1_SDWP.GPIO1_49 */ >; }; vddshv_sdio_pins_default: vddshvr-sdio-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x007c, PIN_INPUT, 7) /* (Y25) GPMC0_CLK.GPIO0_31 */ >; bootph-all; }; wlan_en_pins_default: wlan-en-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0124, PIN_OUTPUT_PULLDOWN, 7) /* (J25) MMC2_SDCD.GPIO0_71 */ >; bootph-all; }; main_dpi_pins_default: main-dpi-default-pins { pinctrl-single,pins = < AM62PX_IOPAD(0x0100, PIN_OUTPUT, 0) /* (W20) VOUT0_VSYNC */ AM62PX_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AC20) VOUT0_HSYNC */ AM62PX_IOPAD(0x0104, PIN_OUTPUT, 0) /* (Y21) VOUT0_PCLK */ AM62PX_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (W21) VOUT0_DE */ AM62PX_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (AE24) VOUT0_DATA0 */ AM62PX_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (W23) VOUT0_DATA1 */ AM62PX_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA2 */ AM62PX_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA3 */ AM62PX_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (AB23) VOUT0_DATA4 */ AM62PX_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (AD23) VOUT0_DATA5 */ AM62PX_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (AC23) VOUT0_DATA6 */ AM62PX_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AE23) VOUT0_DATA7 */ AM62PX_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (AE22) VOUT0_DATA8 */ AM62PX_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (AC22) VOUT0_DATA9 */ AM62PX_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (W22) VOUT0_DATA10 */ AM62PX_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AE21) VOUT0_DATA11 */ AM62PX_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AD21) VOUT0_DATA12 */ AM62PX_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AC21) VOUT0_DATA13 */ AM62PX_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (AA20) VOUT0_DATA14 */ AM62PX_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (Y20) VOUT0_DATA15 */ AM62PX_IOPAD(0x005c, PIN_OUTPUT, 1) /* (AC25) GPMC0_AD8.VOUT0_DATA16 */ AM62PX_IOPAD(0x0060, PIN_OUTPUT, 1) /* (AB25) GPMC0_AD9.VOUT0_DATA17 */ AM62PX_IOPAD(0x0064, PIN_OUTPUT, 1) /* (AA25) GPMC0_AD10.VOUT0_DATA18 */ AM62PX_IOPAD(0x0068, PIN_OUTPUT, 1) /* (W24) GPMC0_AD11.VOUT0_DATA19 */ AM62PX_IOPAD(0x006c, PIN_OUTPUT, 1) /* (Y24) GPMC0_AD12.VOUT0_DATA20 */ AM62PX_IOPAD(0x0070, PIN_OUTPUT, 1) /* (AD25) GPMC0_AD13.VOUT0_DATA21 */ AM62PX_IOPAD(0x0074, PIN_OUTPUT, 1) /* (AB24) GPMC0_AD14.VOUT0_DATA22 */ AM62PX_IOPAD(0x0078, PIN_OUTPUT, 1) /* (AC24) GPMC0_AD15.VOUT0_DATA23 */ AM62PX_IOPAD(0x009c, PIN_OUTPUT, 1) /* (AD24) GPMC0_WAIT1.VOUT0_EXTPCLKIN */ >; }; }; &main_i2c0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_i2c0_pins_default>; clock-frequency = <400000>; touchscreen_ga657x@5d{ status = "okay"; compatible = "goodix,ga657x"; reg = <0x5d>; interrupt-parent = <&exp1>; interrupts = <0 IRQ_TYPE_EDGE_FALLING>; irq-gpios = <&exp1 0 GPIO_ACTIVE_LOW>; reset-gpios = <&exp2 20 GPIO_ACTIVE_LOW>; irq-flags = <2>; touchscreen-max-id = <11>; touchscreen-size-x = <1280>; touchscreen-size-y = <720>; touchscreen-max-w = <512>; touchscreen-max-p = <512>; touchscreen-key-map = <172>, <158>; /*KEY_HOMEPAGE=172, KEY_BACK=158, KEY_MENU=139*/ goodix,slide-wakeup = <0>; goodix,type-a-report = <0>; goodix,driver-send-cfg = <0>; goodix,resume-in-workqueue = <0>; goodix,swap-x2y = <0>; goodix,esd-protect = <1>; goodix,auto-update = <0>; goodix,auto-update-cfg = <0>; goodix,power-off-sleep = <0>; goodix,pen-suppress-finger = <0>; goodix,cfg-group0 = [ 53 D0 02 00 05 05 F5 D5 21 48 2D 0F 5A 41 0E 05 00 00 32 32 20 00 05 14 14 1A 14 8B 2B 00 ]; }; typec_pd0: usb-power-controller@3f { compatible = "ti,tps6598x"; reg = <0x3f>; connector { compatible = "usb-c-connector"; label = "USB-C"; self-powered; data-role = "dual"; power-role = "sink"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; usb_con_hs: endpoint { remote-endpoint = <&usb0_hs_ep>; }; }; }; }; }; }; &main_i2c1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_i2c1_pins_default>; clock-frequency = <400000>; bootph-all; tlv320aic3106: audio-codec@1b { status = "disabled"; #sound-dai-cells = <0>; compatible = "ti,tlv320aic3106"; reg = <0x1b>; ai3x-micbias-vg = <1>; /* 2.0V */ }; exp1: gpio@22 { compatible = "ti,tca6424"; reg = <0x22>; gpio-controller; #gpio-cells = <2>; gpio-line-names = "OLDI_INT#", "x8_NAND_DETECT", "UART1_FET_SEL", "MMC1_SD_EN", "VPP_EN", "EXP_PS_3V3_EN", "UART1_FET_BUF_EN", "EXP_HAT_DETECT", "DSI_GPIO0", "DSI_GPIO1", "OLDI_EDID", "BT_UART_WAKE_SOC_3V3", "USB_TYPEA_OC_INDICATION", "CSI_GPIO0", "CSI_GPIO1", "WLAN_ALERTn", "HDMI_INTn", "TEST_GPIO2", "MCASP1_FET_EN", "MCASP1_BUF_BT_EN", "MCASP1_FET_SEL", "DSI_EDID", "PD_I2C_IRQ", "IO_EXP_TEST_LED"; interrupt-parent = <&main_gpio1>; interrupts = <23 IRQ_TYPE_EDGE_FALLING>; interrupt-controller; #interrupt-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>; bootph-all; }; exp2: gpio@23 { compatible = "ti,tca6424"; reg = <0x23>; gpio-controller; #gpio-cells = <2>; gpio-line-names = "BT_EN_SOC", "EXP_PS_5V0_EN", "", "", "", "", "", "", "WL_LT_EN", "", "TP3", "TP6", "TP4", "TP7", "TP5", "TP8", "SoC_I2C2_MCAN_SEL", "GPIO_HDMI_RSTn", "GPIO_CPSW1_RST", "GPIO_CPSW2_RST", "GPIO_OLDI_RSTn", "GPIO_AUD_RSTn", "GPIO_eMMC_RSTn", "SoC_WLAN_SDIO_RST"; }; sii9022: bridge-hdmi@3b { compatible = "sil,sii9022"; reg = <0x3b>; interrupt-parent = <&exp1>; interrupts = <16 IRQ_TYPE_EDGE_FALLING>; #sound-dai-cells = <0>; sil,i2s-data-lanes = < 0 >; hdmi_tx_ports: ports { #address-cells = <1>; #size-cells = <0>; /* * HDMI can be serviced with 3 potential VPs - * (DSS0 VP1 / DSS1 VP0 / DSS1 VP1). * For now, we will service it with DSS0 VP1. */ port@0 { reg = <0>; sii9022_in: endpoint { remote-endpoint = <&dss0_dpi1_out>; }; }; port@1 { reg = <1>; sii9022_out: endpoint { remote-endpoint = <&hdmi_connector_in>; }; }; }; }; }; &main_i2c2 { #address-cells = <1>; #size-cells = <0>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_i2c2_pins_default>; clock-frequency = <400000>; i2c-switch@71 { compatible = "nxp,pca9543"; #address-cells = <1>; #size-cells = <0>; reg = <0x71>; /*Cam Port*/ i2c@1 { #address-cells = <1>; #size-cells = <0>; reg = <1>; nvp6324: camera@33 { compatible = "nextchip,nvp6324_mipi"; reg = <0x33>; mode = <4>; clocks = <&clk_nvp6324_fixed>; clock-names = "capture_mclk"; //virtual-channel; mclk = <&clk_nvp6324_fixed>; mclk_source = <0>; pwn-gpios = <&exp1 13 GPIO_ACTIVE_HIGH>; ports { csi2_cam0: endpoint@0 { // remote-endpoint = <&csi2rx0_in_sensor0>; remote-endpoint = <&csi2rx0_in_sensor>; link-frequencies = /bits/ 64 <480000000>; // link-frequencies = /bits/ 64 <248832000>; // 1920x1080@30 //link-frequencies = /bits/ 64 <110592000>; // 1280x720@30 // link-frequencies = /bits/ 64 <82944000>; // 720x576@50 // link-frequencies = /bits/ 64 <82944000>; // 720x480@60 clock-lanes = <0>; data-lanes = <1 2 3 4>; }; }; }; }; }; }; &cdns_csi2rx0 { ports { #address-cells = <1>; #size-cells = <0>; csi0_port0: port@0 { reg = <0>; status = "okay"; csi2rx0_in_sensor: endpoint@0 { remote-endpoint = <&csi2_cam0>; bus-type = <4>; /* CSI2 DPHY. */ clock-lanes = <0>; data-lanes = <1 2 3 4>; }; }; }; }; &vpu { ti,dma-heap-name = "carveout_video"; }; &sdhci0 { status = "okay"; ti,driver-strength-ohm = <50>; disable-wp; bootph-all; }; &sdhci1 { /* SD/MMC */ status = "okay"; vmmc-supply = <&vdd_mmc1>; vqmmc-supply = <&vddshv_sdio>; pinctrl-names = "default"; pinctrl-0 = <&main_mmc1_pins_default>; disable-wp; bootph-all; }; &sdhci2 { /* SDIO Wifi */ status = "okay"; assigned-clocks = <&k3_clks 226 0>; assigned-clock-parents = <&k3_clks 226 5>; pinctrl-names = "default"; pinctrl-0 =<&main_mmc2_pins_default>, <&wifi_32k_clk>; mmc-pwrseq = <&wifi_pwrseq>; vmmc-supply = <&wl_lt_en>; non-removable; ti,fails-without-test-cd; ti,driver-strength-ohm = <50>; cap-power-off-card; keep-power-in-suspend; }; &cpsw3g { pinctrl-names = "default"; pinctrl-0 = <&main_rgmii1_pins_default>, <&main_rgmii2_pins_default>; }; &cpsw_port1 { phy-mode = "rgmii-rxid"; phy-handle = <&cpsw3g_phy0>; mac-address = [86 37 7c a6 c6 32]; }; &cpsw_port2 { phy-mode = "rgmii-rxid"; phy-handle = <&cpsw3g_phy1>; mac-address = [86 37 7c a6 c6 32]; }; &cpsw3g_mdio { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_mdio1_pins_default>; cpsw3g_phy0: ethernet-phy@0 { reg = <0>; ti,rx-internal-delay = ; ti,fifo-depth = ; ti,min-output-impedance; }; cpsw3g_phy1: ethernet-phy@1 { reg = <1>; ti,rx-internal-delay = ; ti,fifo-depth = ; ti,min-output-impedance; }; }; &usbss0 { status = "okay"; ti,vbus-divider; }; &usbss1 { status = "okay"; ti,vbus-divider; }; &usb0 { usb-role-switch; #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; usb0_hs_ep: endpoint { remote-endpoint = <&usb_con_hs>; }; }; }; &usb1 { dr_mode = "host"; pinctrl-names = "default"; pinctrl-0 = <&main_usb1_pins_default>; }; &mcasp1 { status = "okay"; #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&main_mcasp1_pins_default>; op-mode = <0>; /* MCASP_IIS_MODE */ tdm-slots = <2>; serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 >; tx-num-evt = <32>; rx-num-evt = <32>; }; &fss { bootph-all; }; &ospi0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&ospi0_pins_default>; bootph-all; flash@0{ compatible = "jedec,spi-nor"; reg = <0x0>; spi-tx-bus-width = <8>; spi-rx-bus-width = <8>; spi-max-frequency = <25000000>; cdns,tshsl-ns = <60>; cdns,tsd2d-ns = <60>; cdns,tchsh-ns = <60>; cdns,tslch-ns = <60>; cdns,read-delay = <4>; bootph-all; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; bootph-all; partition@0 { label = "ospi.tiboot3"; reg = <0x00 0x80000>; }; partition@80000 { label = "ospi.tispl"; reg = <0x80000 0x200000>; }; partition@280000 { label = "ospi.u-boot"; reg = <0x280000 0x400000>; }; partition@680000 { label = "ospi.env"; reg = <0x680000 0x40000>; }; partition@6c0000 { label = "ospi.env.backup"; reg = <0x6c0000 0x40000>; }; partition@800000 { label = "ospi.rootfs"; reg = <0x800000 0x37c0000>; }; partition@3fc0000 { label = "ospi.phypattern"; reg = <0x3fc0000 0x40000>; bootph-all; }; }; }; }; &mailbox0_cluster0 { mbox_r5_0: mbox-r5-0 { ti,mbox-rx = <0 0 0>; ti,mbox-tx = <1 0 0>; }; }; &mailbox0_cluster1 { mbox_mcu_r5_0: mbox-mcu-r5-0 { ti,mbox-rx = <0 0 0>; ti,mbox-tx = <1 0 0>; }; }; &wkup_r5fss0 { status = "okay"; }; &wkup_r5fss0_core0 { mboxes = <&mailbox0_cluster0 &mbox_r5_0>; memory-region = <&wkup_r5fss0_core0_dma_memory_region>, <&wkup_r5fss0_core0_memory_region>; }; &mcu_r5fss0 { status = "okay"; }; &mcu_r5fss0_core0 { mboxes = <&mailbox0_cluster1 &mbox_mcu_r5_0>; memory-region = <&mcu_r5fss0_core0_dma_memory_region>, <&mcu_r5fss0_core0_memory_region>; }; &main_uart0 { pinctrl-names = "default"; pinctrl-0 = <&main_uart0_pins_default>; interrupts-extended = <&gic500 GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>, <&main_pmx0 0x1c8>; /* (D14) UART0_RXD PADCONFIG114 */ interrupt-names = "irq", "wakeup"; status = "okay"; bootph-all; }; &mcu_mcan0 { pinctrl-names = "default"; pinctrl-0 = <&mcu_mcan0_pins_default>; phys = <&transceiver3>; status = "okay"; bootph-all; }; &mcu_uart0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&mcu_uart0_pins_default>; bootph-all; }; &main_uart1 { pinctrl-names = "default"; pinctrl-0 = <&main_uart1_pins_default>; interrupts-extended = <&gic500 GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>, <&main_pmx0 0x01ac>; /* (G23) MCASP0_AFSR.UART1_RXD */ interrupt-names = "irq", "wakeup"; current-speed = <115200>; uart-has-rtscts; status = "okay"; bootph-all; bluetooth_8987 { compatible = "nxp,88w8987-bt"; fw-init-baudrate = <115200>; status = "okay"; }; }; &mcu_pmx0 { bootph-all; mcu_mcan0_pins_default: mcu-mcan0-pins-default { pinctrl-single,pins = < AM62PX_MCU_IOPAD(0x0038, PIN_INPUT, 0) /* (D6) MCU_MCAN0_RX */ AM62PX_MCU_IOPAD(0x0034, PIN_OUTPUT, 0) /* (E8) MCU_MCAN0_TX */ >; bootph-all; }; mcu_uart0_pins_default: mcu_uart0-default-pins { pinctrl-single,pins = < AM62PX_MCU_IOPAD(0x0014, PIN_INPUT, 0) /* (B6) MCU_UART0_RXD */ AM62PX_MCU_IOPAD(0x0018, PIN_OUTPUT, 0) /* (C8) MCU_UART0_TXD */ AM62PX_MCU_IOPAD(0x001c, PIN_INPUT, 0) /* (B8) MCU_UART0_CTSn */ AM62PX_MCU_IOPAD(0x0020, PIN_OUTPUT, 0) /* (B7) MCU_UART0_RTSn */ >; bootph-all; }; wkup_uart0_pins_default: wkup-uart0-default-pins { pinctrl-single,pins = < AM62PX_MCU_IOPAD(0x024, PIN_INPUT, 0) /* (D8) WKUP_UART0_RXD */ AM62PX_MCU_IOPAD(0x028, PIN_OUTPUT, 0) /* (D7) WKUP_UART0_TXD */ >; bootph-all; }; wifi_32k_clk: mcu-clk-out-pins-default { pinctrl-single,pins = < AM62PX_MCU_IOPAD(0x0084, PIN_OUTPUT, 1) /* (F13) WKUP_CLKOUT0 */ >; bootph-all; }; }; &wkup_uart0 { /* WKUP UART0 is used by DM firmware */ pinctrl-names = "default"; pinctrl-0 = <&wkup_uart0_pins_default>; status = "reserved"; bootph-all; }; /* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */ &mcu_gpio0 { status = "reserved"; }; &mcu_gpio_intr { status = "reserved"; }; &oldi0_dss0 { status = "okay"; }; &oldi0_dss0_ports { status = "okay"; bootph-all; #address-cells = <1>; #size-cells = <0>; port@0 { #size-cells = <0>; bootph-all; reg = <0>; oldi_0_in: endpoint { remote-endpoint = <&dpi0_out0>; }; }; port@1 { reg = <1>; oldi_0_out: endpoint { #address-cells = <1>; #size-cells = <0>; remote-endpoint = <&lcd_in0>; }; }; }; &dss0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_dpi_pins_default>; }; &dss0_ports { /* VP1: LVDS Output (OLDI TX 0) */ bootph-all; port@0 { bootph-all; reg = <0>; dpi0_out0: endpoint { remote-endpoint = <&oldi_0_in>; }; }; /* DSS0-VP2: DPI/HDMI Output */ hdmi0_dss: port@1 { reg = <1>; dss0_dpi1_out: endpoint { remote-endpoint = <&sii9022_in>; }; }; }; &ti_csi2rx0 { status = "okay"; }; &dphy0 { status = "okay"; };