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/* Verdin HDMI_1 Audio */ 69&aud2htx { 70 status = "okay"; 71}; 72 73&backlight { 74 power-supply = <®_3p3v>; 75}; 76 77/* Verdin SPI_1 */ 78&ecspi1 { 79 status = "okay"; 80}; 81 82/* EEPROM on display adapter boards */ 83&eeprom_display_adapter { 84 status = "okay"; 85}; 86 87/* EEPROM on Verdin Development board */ 88&eeprom_carrier_board { 89 status = "okay"; 90}; 91 92&eqos { 93 status = "okay"; 94}; 95 96&flexcan1 { 97 status = "okay"; 98}; 99 100&flexcan2 { 101 status = "okay"; 102}; 103 104/* Verdin QSPI_1 */ 105&flexspi { 106 status = "okay"; 107}; 108 109&gpio4 { 110 pinctrl-names = "default"; 111 pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; 112}; 113 114/* Verdin HDMI_1 */ 115&hdmi_pvi { 116 status = "okay"; 117}; 118 119&hdmi_tx { 120 status = "okay"; 121 122 ports { 123 port@1 { 124 hdmi_tx_out: endpoint { 125 remote-endpoint = <&native_hdmi_connector_in>; 126 }; 127 }; 128 }; 129}; 130 131&hdmi_tx_phy { 132 status = "okay"; 133}; 134 135/* Current measurement into module VCC */ 136&hwmon { 137 status = "okay"; 138}; 139 140&hwmon_temp { 141 vs-supply = <®_1p8v>; 142 status = "okay"; 143}; 144 145/* Verdin I2C_2_DSI */ 146&i2c2 { 147 status = "okay"; 148}; 149 150&i2c3 { 151 status = "okay"; 152}; 153 154/* Verdin I2C_1 */ 155&i2c4 { 156 status = "okay"; 157 158 /* Audio Codec */ 159 wm8904_1a: audio-codec@1a { 160 compatible = "wlf,wm8904"; 161 reg = <0x1a>; 162 pinctrl-names = "default"; 163 pinctrl-0 = <&pinctrl_sai1>; 164 #sound-dai-cells = <0>; 165 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 166 clock-names = "mclk"; 167 AVDD-supply = <®_1p8v>; 168 CPVDD-supply = <®_1p8v>; 169 DBVDD-supply = <®_1p8v>; 170 DCVDD-supply = <®_1p8v>; 171 MICVDD-supply = <®_1p8v>; 172 }; 173}; 174 175/* Verdin I2C_3_HDMI */ 176&i2c5 { 177 status = "okay"; 178}; 179 180&lcdif3 { 181 status = "okay"; 182}; 183 184/* Verdin PCIE_1 */ 185&pcie { 186 vpcie-supply = <®_pcie>; 187 status = "okay"; 188}; 189 190&pcie_phy { 191 status = "okay"; 192}; 193 194/* Verdin PWM_1 */ 195&pwm1 { 196 status = "okay"; 197}; 198 199/* Verdin PWM_2 */ 200&pwm2 { 201 status = "okay"; 202}; 203 204/* Verdin PWM_3_DSI */ 205&pwm3 { 206 status = "okay"; 207}; 208 209®_usdhc2_vmmc { 210 vin-supply = <®_3p3v>; 211}; 212 213/* We support turning off sleep moci on Dahlia */ 214®_force_sleep_moci { 215 status = "disabled"; 216}; 217 218/* Verdin I2S_1 */ 219&sai1 { 220 assigned-clocks = <&clk IMX8MP_CLK_SAI1>; 221 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 222 assigned-clock-rates = <24576000>; 223 fsl,sai-mclk-direction-output; 224 status = "okay"; 225}; 226 227/* Verdin HDMI_1 Audio */ 228&sound_hdmi { 229 status = "okay"; 230}; 231 232/* Verdin UART_1 */ 233&uart1 { 234 status = "okay"; 235}; 236 237/* Verdin UART_2 */ 238&uart2 { 239 status = "okay"; 240}; 241 242/* Verdin UART_3, used as the Linux Console */ 243&uart3 { 244 status = "okay"; 245}; 246 247/* Verdin USB_1 */ 248&usb3_0 { 249 status = "okay"; 250}; 251 252&usb3_phy0 { 253 status = "okay"; 254}; 255 256/* Verdin USB_2 */ 257&usb3_1 { 258 fsl,permanently-attached; 259 status = "okay"; 260}; 261 262&usb3_phy1 { 263 status = "okay"; 264}; 265 266&usb_dwc3_1 { 267 #address-cells = <1>; 268 #size-cells = <0>; 269 270 usb_hub_3_0: usb-hub@1 { 271 compatible = "usb424,5744"; 272 reg = <1>; 273 peer-hub = <&usb_hub_2_0>; 274 vdd-supply = <®_usb_hub>; 275 }; 276 277 usb_hub_2_0: usb-hub@2 { 278 compatible = "usb424,2744"; 279 reg = <2>; 280 peer-hub = <&usb_hub_3_0>; 281 vdd-supply = <®_usb_hub>; 282 }; 283}; 284 285/* Verdin SD_1 */ 286&usdhc2 { 287 status = "okay"; 288}; 289