1d5b0e70fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2d5b0e70fSEmmanuel Vadot/* 3d5b0e70fSEmmanuel Vadot * Copyright 2022 Toradex 4d5b0e70fSEmmanuel Vadot */ 5d5b0e70fSEmmanuel Vadot 6aa1a8ff2SEmmanuel Vadot/ { 70e8011faSEmmanuel Vadot native-hdmi-connector { 80e8011faSEmmanuel Vadot compatible = "hdmi-connector"; 90e8011faSEmmanuel Vadot label = "X21"; 100e8011faSEmmanuel Vadot type = "a"; 110e8011faSEmmanuel Vadot 120e8011faSEmmanuel Vadot port { 130e8011faSEmmanuel Vadot native_hdmi_connector_in: endpoint { 140e8011faSEmmanuel Vadot remote-endpoint = <&hdmi_tx_out>; 150e8011faSEmmanuel Vadot }; 160e8011faSEmmanuel Vadot }; 170e8011faSEmmanuel Vadot }; 180e8011faSEmmanuel Vadot 19aa1a8ff2SEmmanuel Vadot sound { 20aa1a8ff2SEmmanuel Vadot compatible = "simple-audio-card"; 21aa1a8ff2SEmmanuel Vadot simple-audio-card,bitclock-master = <&codec_dai>; 22aa1a8ff2SEmmanuel Vadot simple-audio-card,format = "i2s"; 23aa1a8ff2SEmmanuel Vadot simple-audio-card,frame-master = <&codec_dai>; 24aa1a8ff2SEmmanuel Vadot simple-audio-card,mclk-fs = <256>; 257d0873ebSEmmanuel Vadot simple-audio-card,name = "verdin-wm8904"; 26aa1a8ff2SEmmanuel Vadot simple-audio-card,routing = 27aa1a8ff2SEmmanuel Vadot "Headphone Jack", "HPOUTL", 28aa1a8ff2SEmmanuel Vadot "Headphone Jack", "HPOUTR", 29aa1a8ff2SEmmanuel Vadot "IN2L", "Line In Jack", 30aa1a8ff2SEmmanuel Vadot "IN2R", "Line In Jack", 31aa1a8ff2SEmmanuel Vadot "Headphone Jack", "MICBIAS", 32aa1a8ff2SEmmanuel Vadot "IN1L", "Headphone Jack"; 33aa1a8ff2SEmmanuel Vadot simple-audio-card,widgets = 34aa1a8ff2SEmmanuel Vadot "Microphone", "Headphone Jack", 35aa1a8ff2SEmmanuel Vadot "Headphone", "Headphone Jack", 36aa1a8ff2SEmmanuel Vadot "Line", "Line In Jack"; 37aa1a8ff2SEmmanuel Vadot 38aa1a8ff2SEmmanuel Vadot codec_dai: simple-audio-card,codec { 39aa1a8ff2SEmmanuel Vadot clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 40aa1a8ff2SEmmanuel Vadot sound-dai = <&wm8904_1a>; 41aa1a8ff2SEmmanuel Vadot }; 42aa1a8ff2SEmmanuel Vadot 43aa1a8ff2SEmmanuel Vadot simple-audio-card,cpu { 44aa1a8ff2SEmmanuel Vadot sound-dai = <&sai1>; 45aa1a8ff2SEmmanuel Vadot }; 46aa1a8ff2SEmmanuel Vadot }; 477d0873ebSEmmanuel Vadot 487d0873ebSEmmanuel Vadot reg_usb_hub: regulator-usb-hub { 497d0873ebSEmmanuel Vadot compatible = "regulator-fixed"; 507d0873ebSEmmanuel Vadot enable-active-high; 517d0873ebSEmmanuel Vadot /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ 527d0873ebSEmmanuel Vadot gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; 537d0873ebSEmmanuel Vadot regulator-boot-on; 547d0873ebSEmmanuel Vadot regulator-name = "HUB_PWR_EN"; 557d0873ebSEmmanuel Vadot }; 567d0873ebSEmmanuel Vadot 577d0873ebSEmmanuel Vadot reg_pcie: regulator-pcie { 587d0873ebSEmmanuel Vadot compatible = "regulator-fixed"; 597d0873ebSEmmanuel Vadot enable-active-high; 607d0873ebSEmmanuel Vadot /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ 617d0873ebSEmmanuel Vadot gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; 627d0873ebSEmmanuel Vadot regulator-boot-on; 637d0873ebSEmmanuel Vadot regulator-name = "PCIE_1_PWR_EN"; 647d0873ebSEmmanuel Vadot startup-delay-us = <100000>; 657d0873ebSEmmanuel Vadot }; 66aa1a8ff2SEmmanuel Vadot}; 67d5b0e70fSEmmanuel Vadot 68*b2d2a78aSEmmanuel Vadot/* Verdin HDMI_1 Audio */ 69*b2d2a78aSEmmanuel Vadot&aud2htx { 70*b2d2a78aSEmmanuel Vadot status = "okay"; 71*b2d2a78aSEmmanuel Vadot}; 72*b2d2a78aSEmmanuel Vadot 73d5b0e70fSEmmanuel Vadot&backlight { 74d5b0e70fSEmmanuel Vadot power-supply = <®_3p3v>; 75d5b0e70fSEmmanuel Vadot}; 76d5b0e70fSEmmanuel Vadot 77d5b0e70fSEmmanuel Vadot/* Verdin SPI_1 */ 78d5b0e70fSEmmanuel Vadot&ecspi1 { 79d5b0e70fSEmmanuel Vadot status = "okay"; 80d5b0e70fSEmmanuel Vadot}; 81d5b0e70fSEmmanuel Vadot 82d5b0e70fSEmmanuel Vadot/* EEPROM on display adapter boards */ 83d5b0e70fSEmmanuel Vadot&eeprom_display_adapter { 84d5b0e70fSEmmanuel Vadot status = "okay"; 85d5b0e70fSEmmanuel Vadot}; 86d5b0e70fSEmmanuel Vadot 87d5b0e70fSEmmanuel Vadot/* EEPROM on Verdin Development board */ 88d5b0e70fSEmmanuel Vadot&eeprom_carrier_board { 89d5b0e70fSEmmanuel Vadot status = "okay"; 90d5b0e70fSEmmanuel Vadot}; 91d5b0e70fSEmmanuel Vadot 92d5b0e70fSEmmanuel Vadot&eqos { 93d5b0e70fSEmmanuel Vadot status = "okay"; 94d5b0e70fSEmmanuel Vadot}; 95d5b0e70fSEmmanuel Vadot 96d5b0e70fSEmmanuel Vadot&flexcan1 { 97d5b0e70fSEmmanuel Vadot status = "okay"; 98d5b0e70fSEmmanuel Vadot}; 99d5b0e70fSEmmanuel Vadot 100d5b0e70fSEmmanuel Vadot&flexcan2 { 101d5b0e70fSEmmanuel Vadot status = "okay"; 102d5b0e70fSEmmanuel Vadot}; 103d5b0e70fSEmmanuel Vadot 104d5b0e70fSEmmanuel Vadot/* Verdin QSPI_1 */ 105d5b0e70fSEmmanuel Vadot&flexspi { 106d5b0e70fSEmmanuel Vadot status = "okay"; 107d5b0e70fSEmmanuel Vadot}; 108d5b0e70fSEmmanuel Vadot 1097d0873ebSEmmanuel Vadot&gpio4 { 1107d0873ebSEmmanuel Vadot pinctrl-names = "default"; 1117d0873ebSEmmanuel Vadot pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; 1127d0873ebSEmmanuel Vadot}; 1137d0873ebSEmmanuel Vadot 1140e8011faSEmmanuel Vadot/* Verdin HDMI_1 */ 1150e8011faSEmmanuel Vadot&hdmi_pvi { 1160e8011faSEmmanuel Vadot status = "okay"; 1170e8011faSEmmanuel Vadot}; 1180e8011faSEmmanuel Vadot 1190e8011faSEmmanuel Vadot&hdmi_tx { 1200e8011faSEmmanuel Vadot status = "okay"; 1210e8011faSEmmanuel Vadot 1220e8011faSEmmanuel Vadot ports { 1230e8011faSEmmanuel Vadot port@1 { 1240e8011faSEmmanuel Vadot hdmi_tx_out: endpoint { 1250e8011faSEmmanuel Vadot remote-endpoint = <&native_hdmi_connector_in>; 1260e8011faSEmmanuel Vadot }; 1270e8011faSEmmanuel Vadot }; 1280e8011faSEmmanuel Vadot }; 1290e8011faSEmmanuel Vadot}; 1300e8011faSEmmanuel Vadot 1310e8011faSEmmanuel Vadot&hdmi_tx_phy { 1320e8011faSEmmanuel Vadot status = "okay"; 1330e8011faSEmmanuel Vadot}; 1340e8011faSEmmanuel Vadot 135d5b0e70fSEmmanuel Vadot/* Current measurement into module VCC */ 136d5b0e70fSEmmanuel Vadot&hwmon { 137d5b0e70fSEmmanuel Vadot status = "okay"; 138d5b0e70fSEmmanuel Vadot}; 139d5b0e70fSEmmanuel Vadot 140d5b0e70fSEmmanuel Vadot&hwmon_temp { 141d5b0e70fSEmmanuel Vadot vs-supply = <®_1p8v>; 142d5b0e70fSEmmanuel Vadot status = "okay"; 143d5b0e70fSEmmanuel Vadot}; 144d5b0e70fSEmmanuel Vadot 145d5b0e70fSEmmanuel Vadot/* Verdin I2C_2_DSI */ 146d5b0e70fSEmmanuel Vadot&i2c2 { 147d5b0e70fSEmmanuel Vadot status = "okay"; 148d5b0e70fSEmmanuel Vadot}; 149d5b0e70fSEmmanuel Vadot 150d5b0e70fSEmmanuel Vadot&i2c3 { 151d5b0e70fSEmmanuel Vadot status = "okay"; 152d5b0e70fSEmmanuel Vadot}; 153d5b0e70fSEmmanuel Vadot 154d5b0e70fSEmmanuel Vadot/* Verdin I2C_1 */ 155d5b0e70fSEmmanuel Vadot&i2c4 { 156d5b0e70fSEmmanuel Vadot status = "okay"; 157d5b0e70fSEmmanuel Vadot 158aa1a8ff2SEmmanuel Vadot /* Audio Codec */ 159aa1a8ff2SEmmanuel Vadot wm8904_1a: audio-codec@1a { 160aa1a8ff2SEmmanuel Vadot compatible = "wlf,wm8904"; 161aa1a8ff2SEmmanuel Vadot reg = <0x1a>; 162aa1a8ff2SEmmanuel Vadot pinctrl-names = "default"; 163aa1a8ff2SEmmanuel Vadot pinctrl-0 = <&pinctrl_sai1>; 164aa1a8ff2SEmmanuel Vadot #sound-dai-cells = <0>; 165aa1a8ff2SEmmanuel Vadot clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 166aa1a8ff2SEmmanuel Vadot clock-names = "mclk"; 167aa1a8ff2SEmmanuel Vadot AVDD-supply = <®_1p8v>; 168aa1a8ff2SEmmanuel Vadot CPVDD-supply = <®_1p8v>; 169aa1a8ff2SEmmanuel Vadot DBVDD-supply = <®_1p8v>; 170aa1a8ff2SEmmanuel Vadot DCVDD-supply = <®_1p8v>; 171aa1a8ff2SEmmanuel Vadot MICVDD-supply = <®_1p8v>; 172aa1a8ff2SEmmanuel Vadot }; 173d5b0e70fSEmmanuel Vadot}; 174d5b0e70fSEmmanuel Vadot 1757d0873ebSEmmanuel Vadot/* Verdin I2C_3_HDMI */ 1767d0873ebSEmmanuel Vadot&i2c5 { 1777d0873ebSEmmanuel Vadot status = "okay"; 1787d0873ebSEmmanuel Vadot}; 1797d0873ebSEmmanuel Vadot 1800e8011faSEmmanuel Vadot&lcdif3 { 1810e8011faSEmmanuel Vadot status = "okay"; 1820e8011faSEmmanuel Vadot}; 1830e8011faSEmmanuel Vadot 184fac71e4eSEmmanuel Vadot/* Verdin PCIE_1 */ 185fac71e4eSEmmanuel Vadot&pcie { 1867d0873ebSEmmanuel Vadot vpcie-supply = <®_pcie>; 187fac71e4eSEmmanuel Vadot status = "okay"; 188fac71e4eSEmmanuel Vadot}; 189fac71e4eSEmmanuel Vadot 190fac71e4eSEmmanuel Vadot&pcie_phy { 191fac71e4eSEmmanuel Vadot status = "okay"; 192fac71e4eSEmmanuel Vadot}; 193d5b0e70fSEmmanuel Vadot 194d5b0e70fSEmmanuel Vadot/* Verdin PWM_1 */ 195d5b0e70fSEmmanuel Vadot&pwm1 { 196d5b0e70fSEmmanuel Vadot status = "okay"; 197d5b0e70fSEmmanuel Vadot}; 198d5b0e70fSEmmanuel Vadot 199d5b0e70fSEmmanuel Vadot/* Verdin PWM_2 */ 200d5b0e70fSEmmanuel Vadot&pwm2 { 201d5b0e70fSEmmanuel Vadot status = "okay"; 202d5b0e70fSEmmanuel Vadot}; 203d5b0e70fSEmmanuel Vadot 204d5b0e70fSEmmanuel Vadot/* Verdin PWM_3_DSI */ 205d5b0e70fSEmmanuel Vadot&pwm3 { 206d5b0e70fSEmmanuel Vadot status = "okay"; 207d5b0e70fSEmmanuel Vadot}; 208d5b0e70fSEmmanuel Vadot 209d5b0e70fSEmmanuel Vadot®_usdhc2_vmmc { 210d5b0e70fSEmmanuel Vadot vin-supply = <®_3p3v>; 211d5b0e70fSEmmanuel Vadot}; 212d5b0e70fSEmmanuel Vadot 2137d0873ebSEmmanuel Vadot/* We support turning off sleep moci on Dahlia */ 2147d0873ebSEmmanuel Vadot®_force_sleep_moci { 2157d0873ebSEmmanuel Vadot status = "disabled"; 2167d0873ebSEmmanuel Vadot}; 2177d0873ebSEmmanuel Vadot 218aa1a8ff2SEmmanuel Vadot/* Verdin I2S_1 */ 219aa1a8ff2SEmmanuel Vadot&sai1 { 220aa1a8ff2SEmmanuel Vadot assigned-clocks = <&clk IMX8MP_CLK_SAI1>; 221aa1a8ff2SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 222aa1a8ff2SEmmanuel Vadot assigned-clock-rates = <24576000>; 223aa1a8ff2SEmmanuel Vadot fsl,sai-mclk-direction-output; 224aa1a8ff2SEmmanuel Vadot status = "okay"; 225aa1a8ff2SEmmanuel Vadot}; 226d5b0e70fSEmmanuel Vadot 227*b2d2a78aSEmmanuel Vadot/* Verdin HDMI_1 Audio */ 228*b2d2a78aSEmmanuel Vadot&sound_hdmi { 229*b2d2a78aSEmmanuel Vadot status = "okay"; 230*b2d2a78aSEmmanuel Vadot}; 231*b2d2a78aSEmmanuel Vadot 232d5b0e70fSEmmanuel Vadot/* Verdin UART_1 */ 233d5b0e70fSEmmanuel Vadot&uart1 { 234d5b0e70fSEmmanuel Vadot status = "okay"; 235d5b0e70fSEmmanuel Vadot}; 236d5b0e70fSEmmanuel Vadot 237d5b0e70fSEmmanuel Vadot/* Verdin UART_2 */ 238d5b0e70fSEmmanuel Vadot&uart2 { 239d5b0e70fSEmmanuel Vadot status = "okay"; 240d5b0e70fSEmmanuel Vadot}; 241d5b0e70fSEmmanuel Vadot 242d5b0e70fSEmmanuel Vadot/* Verdin UART_3, used as the Linux Console */ 243d5b0e70fSEmmanuel Vadot&uart3 { 244d5b0e70fSEmmanuel Vadot status = "okay"; 245d5b0e70fSEmmanuel Vadot}; 246d5b0e70fSEmmanuel Vadot 247d5b0e70fSEmmanuel Vadot/* Verdin USB_1 */ 248d5b0e70fSEmmanuel Vadot&usb3_0 { 249d5b0e70fSEmmanuel Vadot status = "okay"; 250d5b0e70fSEmmanuel Vadot}; 251d5b0e70fSEmmanuel Vadot 252d5b0e70fSEmmanuel Vadot&usb3_phy0 { 253d5b0e70fSEmmanuel Vadot status = "okay"; 254d5b0e70fSEmmanuel Vadot}; 255d5b0e70fSEmmanuel Vadot 256d5b0e70fSEmmanuel Vadot/* Verdin USB_2 */ 257d5b0e70fSEmmanuel Vadot&usb3_1 { 2588bab661aSEmmanuel Vadot fsl,permanently-attached; 259d5b0e70fSEmmanuel Vadot status = "okay"; 260d5b0e70fSEmmanuel Vadot}; 261d5b0e70fSEmmanuel Vadot 262d5b0e70fSEmmanuel Vadot&usb3_phy1 { 263d5b0e70fSEmmanuel Vadot status = "okay"; 264d5b0e70fSEmmanuel Vadot}; 265d5b0e70fSEmmanuel Vadot 2667d0873ebSEmmanuel Vadot&usb_dwc3_1 { 2677d0873ebSEmmanuel Vadot #address-cells = <1>; 2687d0873ebSEmmanuel Vadot #size-cells = <0>; 2697d0873ebSEmmanuel Vadot 2707d0873ebSEmmanuel Vadot usb_hub_3_0: usb-hub@1 { 2717d0873ebSEmmanuel Vadot compatible = "usb424,5744"; 2727d0873ebSEmmanuel Vadot reg = <1>; 2737d0873ebSEmmanuel Vadot peer-hub = <&usb_hub_2_0>; 2747d0873ebSEmmanuel Vadot vdd-supply = <®_usb_hub>; 2757d0873ebSEmmanuel Vadot }; 2767d0873ebSEmmanuel Vadot 2777d0873ebSEmmanuel Vadot usb_hub_2_0: usb-hub@2 { 2787d0873ebSEmmanuel Vadot compatible = "usb424,2744"; 2797d0873ebSEmmanuel Vadot reg = <2>; 2807d0873ebSEmmanuel Vadot peer-hub = <&usb_hub_3_0>; 2817d0873ebSEmmanuel Vadot vdd-supply = <®_usb_hub>; 2827d0873ebSEmmanuel Vadot }; 2837d0873ebSEmmanuel Vadot}; 2847d0873ebSEmmanuel Vadot 285d5b0e70fSEmmanuel Vadot/* Verdin SD_1 */ 286d5b0e70fSEmmanuel Vadot&usdhc2 { 287d5b0e70fSEmmanuel Vadot status = "okay"; 288d5b0e70fSEmmanuel Vadot}; 289