1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2/* 3 * Copyright 2022 Toradex 4 */ 5 6/ { 7 native-hdmi-connector { 8 compatible = "hdmi-connector"; 9 label = "X21"; 10 type = "a"; 11 12 port { 13 native_hdmi_connector_in: endpoint { 14 remote-endpoint = <&hdmi_tx_out>; 15 }; 16 }; 17 }; 18 19 sound { 20 compatible = "simple-audio-card"; 21 simple-audio-card,bitclock-master = <&codec_dai>; 22 simple-audio-card,format = "i2s"; 23 simple-audio-card,frame-master = <&codec_dai>; 24 simple-audio-card,mclk-fs = <256>; 25 simple-audio-card,name = "verdin-wm8904"; 26 simple-audio-card,routing = 27 "Headphone Jack", "HPOUTL", 28 "Headphone Jack", "HPOUTR", 29 "IN2L", "Line In Jack", 30 "IN2R", "Line In Jack", 31 "Headphone Jack", "MICBIAS", 32 "IN1L", "Headphone Jack"; 33 simple-audio-card,widgets = 34 "Microphone", "Headphone Jack", 35 "Headphone", "Headphone Jack", 36 "Line", "Line In Jack"; 37 38 codec_dai: simple-audio-card,codec { 39 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 40 sound-dai = <&wm8904_1a>; 41 }; 42 43 simple-audio-card,cpu { 44 sound-dai = <&sai1>; 45 }; 46 }; 47 48 reg_usb_hub: regulator-usb-hub { 49 compatible = "regulator-fixed"; 50 enable-active-high; 51 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ 52 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; 53 regulator-boot-on; 54 regulator-name = "HUB_PWR_EN"; 55 }; 56 57 reg_pcie: regulator-pcie { 58 compatible = "regulator-fixed"; 59 enable-active-high; 60 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ 61 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; 62 regulator-boot-on; 63 regulator-name = "PCIE_1_PWR_EN"; 64 startup-delay-us = <100000>; 65 }; 66}; 67 68&backlight { 69 power-supply = <®_3p3v>; 70}; 71 72/* Verdin SPI_1 */ 73&ecspi1 { 74 status = "okay"; 75}; 76 77/* EEPROM on display adapter boards */ 78&eeprom_display_adapter { 79 status = "okay"; 80}; 81 82/* EEPROM on Verdin Development board */ 83&eeprom_carrier_board { 84 status = "okay"; 85}; 86 87&eqos { 88 status = "okay"; 89}; 90 91&flexcan1 { 92 status = "okay"; 93}; 94 95&flexcan2 { 96 status = "okay"; 97}; 98 99/* Verdin QSPI_1 */ 100&flexspi { 101 status = "okay"; 102}; 103 104&gpio4 { 105 pinctrl-names = "default"; 106 pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; 107}; 108 109/* Verdin HDMI_1 */ 110&hdmi_pvi { 111 status = "okay"; 112}; 113 114&hdmi_tx { 115 status = "okay"; 116 117 ports { 118 port@1 { 119 hdmi_tx_out: endpoint { 120 remote-endpoint = <&native_hdmi_connector_in>; 121 }; 122 }; 123 }; 124}; 125 126&hdmi_tx_phy { 127 status = "okay"; 128}; 129 130/* Current measurement into module VCC */ 131&hwmon { 132 status = "okay"; 133}; 134 135&hwmon_temp { 136 vs-supply = <®_1p8v>; 137 status = "okay"; 138}; 139 140/* Verdin I2C_2_DSI */ 141&i2c2 { 142 status = "okay"; 143}; 144 145&i2c3 { 146 status = "okay"; 147}; 148 149/* Verdin I2C_1 */ 150&i2c4 { 151 status = "okay"; 152 153 /* Audio Codec */ 154 wm8904_1a: audio-codec@1a { 155 compatible = "wlf,wm8904"; 156 reg = <0x1a>; 157 pinctrl-names = "default"; 158 pinctrl-0 = <&pinctrl_sai1>; 159 #sound-dai-cells = <0>; 160 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 161 clock-names = "mclk"; 162 AVDD-supply = <®_1p8v>; 163 CPVDD-supply = <®_1p8v>; 164 DBVDD-supply = <®_1p8v>; 165 DCVDD-supply = <®_1p8v>; 166 MICVDD-supply = <®_1p8v>; 167 }; 168}; 169 170/* Verdin I2C_3_HDMI */ 171&i2c5 { 172 status = "okay"; 173}; 174 175&lcdif3 { 176 status = "okay"; 177}; 178 179/* Verdin PCIE_1 */ 180&pcie { 181 vpcie-supply = <®_pcie>; 182 status = "okay"; 183}; 184 185&pcie_phy { 186 status = "okay"; 187}; 188 189/* Verdin PWM_1 */ 190&pwm1 { 191 status = "okay"; 192}; 193 194/* Verdin PWM_2 */ 195&pwm2 { 196 status = "okay"; 197}; 198 199/* Verdin PWM_3_DSI */ 200&pwm3 { 201 status = "okay"; 202}; 203 204®_usdhc2_vmmc { 205 vin-supply = <®_3p3v>; 206}; 207 208/* We support turning off sleep moci on Dahlia */ 209®_force_sleep_moci { 210 status = "disabled"; 211}; 212 213/* Verdin I2S_1 */ 214&sai1 { 215 assigned-clocks = <&clk IMX8MP_CLK_SAI1>; 216 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 217 assigned-clock-rates = <24576000>; 218 fsl,sai-mclk-direction-output; 219 status = "okay"; 220}; 221 222/* Verdin UART_1 */ 223&uart1 { 224 status = "okay"; 225}; 226 227/* Verdin UART_2 */ 228&uart2 { 229 status = "okay"; 230}; 231 232/* Verdin UART_3, used as the Linux Console */ 233&uart3 { 234 status = "okay"; 235}; 236 237/* Verdin USB_1 */ 238&usb3_0 { 239 status = "okay"; 240}; 241 242&usb3_phy0 { 243 status = "okay"; 244}; 245 246/* Verdin USB_2 */ 247&usb3_1 { 248 fsl,permanently-attached; 249 status = "okay"; 250}; 251 252&usb3_phy1 { 253 status = "okay"; 254}; 255 256&usb_dwc3_1 { 257 #address-cells = <1>; 258 #size-cells = <0>; 259 260 usb_hub_3_0: usb-hub@1 { 261 compatible = "usb424,5744"; 262 reg = <1>; 263 peer-hub = <&usb_hub_2_0>; 264 vdd-supply = <®_usb_hub>; 265 }; 266 267 usb_hub_2_0: usb-hub@2 { 268 compatible = "usb424,2744"; 269 reg = <2>; 270 peer-hub = <&usb_hub_3_0>; 271 vdd-supply = <®_usb_hub>; 272 }; 273}; 274 275/* Verdin SD_1 */ 276&usdhc2 { 277 status = "okay"; 278}; 279