1d5b0e70fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2d5b0e70fSEmmanuel Vadot/* 3d5b0e70fSEmmanuel Vadot * Copyright 2022 Toradex 4d5b0e70fSEmmanuel Vadot */ 5d5b0e70fSEmmanuel Vadot 6d5b0e70fSEmmanuel Vadot/ { 70e8011faSEmmanuel Vadot native-hdmi-connector { 80e8011faSEmmanuel Vadot compatible = "hdmi-connector"; 90e8011faSEmmanuel Vadot label = "X37"; 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 19d5b0e70fSEmmanuel Vadot reg_eth2phy: regulator-eth2phy { 20d5b0e70fSEmmanuel Vadot compatible = "regulator-fixed"; 21d5b0e70fSEmmanuel Vadot enable-active-high; 22d5b0e70fSEmmanuel Vadot gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* ETH_PWR_EN */ 23cb7aa33aSEmmanuel Vadot off-on-delay-us = <500000>; 24d5b0e70fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 25d5b0e70fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 26d5b0e70fSEmmanuel Vadot regulator-name = "+V3.3_ETH"; 27d5b0e70fSEmmanuel Vadot startup-delay-us = <200000>; 28d5b0e70fSEmmanuel Vadot vin-supply = <®_3p3v>; 29d5b0e70fSEmmanuel Vadot }; 30aa1a8ff2SEmmanuel Vadot 31aa1a8ff2SEmmanuel Vadot sound { 32aa1a8ff2SEmmanuel Vadot compatible = "simple-audio-card"; 33aa1a8ff2SEmmanuel Vadot simple-audio-card,bitclock-master = <&codec_dai>; 34aa1a8ff2SEmmanuel Vadot simple-audio-card,format = "i2s"; 35aa1a8ff2SEmmanuel Vadot simple-audio-card,frame-master = <&codec_dai>; 36aa1a8ff2SEmmanuel Vadot simple-audio-card,mclk-fs = <256>; 377d0873ebSEmmanuel Vadot simple-audio-card,name = "verdin-nau8822"; 38aa1a8ff2SEmmanuel Vadot simple-audio-card,routing = 39aa1a8ff2SEmmanuel Vadot "Headphones", "LHP", 40aa1a8ff2SEmmanuel Vadot "Headphones", "RHP", 41aa1a8ff2SEmmanuel Vadot "Speaker", "LSPK", 42aa1a8ff2SEmmanuel Vadot "Speaker", "RSPK", 43aa1a8ff2SEmmanuel Vadot "Line Out", "AUXOUT1", 44aa1a8ff2SEmmanuel Vadot "Line Out", "AUXOUT2", 45aa1a8ff2SEmmanuel Vadot "LAUX", "Line In", 46aa1a8ff2SEmmanuel Vadot "RAUX", "Line In", 47aa1a8ff2SEmmanuel Vadot "LMICP", "Mic In", 48aa1a8ff2SEmmanuel Vadot "RMICP", "Mic In"; 49aa1a8ff2SEmmanuel Vadot simple-audio-card,widgets = 50aa1a8ff2SEmmanuel Vadot "Headphones", "Headphones", 51aa1a8ff2SEmmanuel Vadot "Line Out", "Line Out", 52aa1a8ff2SEmmanuel Vadot "Speaker", "Speaker", 53aa1a8ff2SEmmanuel Vadot "Microphone", "Mic In", 54aa1a8ff2SEmmanuel Vadot "Line", "Line In"; 55aa1a8ff2SEmmanuel Vadot 56aa1a8ff2SEmmanuel Vadot codec_dai: simple-audio-card,codec { 57aa1a8ff2SEmmanuel Vadot clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 58aa1a8ff2SEmmanuel Vadot sound-dai = <&nau8822_1a>; 59aa1a8ff2SEmmanuel Vadot }; 60aa1a8ff2SEmmanuel Vadot 61aa1a8ff2SEmmanuel Vadot simple-audio-card,cpu { 62aa1a8ff2SEmmanuel Vadot sound-dai = <&sai1>; 63aa1a8ff2SEmmanuel Vadot }; 64aa1a8ff2SEmmanuel Vadot }; 65d5b0e70fSEmmanuel Vadot}; 66d5b0e70fSEmmanuel Vadot 67*b2d2a78aSEmmanuel Vadot/* Verdin HDMI_1 Audio */ 68*b2d2a78aSEmmanuel Vadot&aud2htx { 69*b2d2a78aSEmmanuel Vadot status = "okay"; 70*b2d2a78aSEmmanuel Vadot}; 71*b2d2a78aSEmmanuel Vadot 72cb7aa33aSEmmanuel Vadot&backlight { 73cb7aa33aSEmmanuel Vadot power-supply = <®_3p3v>; 74cb7aa33aSEmmanuel Vadot}; 75cb7aa33aSEmmanuel Vadot 76cb7aa33aSEmmanuel Vadot/* Verdin SPI_1 */ 77cb7aa33aSEmmanuel Vadot&ecspi1 { 78cb7aa33aSEmmanuel Vadot status = "okay"; 79cb7aa33aSEmmanuel Vadot}; 80cb7aa33aSEmmanuel Vadot 81cb7aa33aSEmmanuel Vadot/* EEPROM on display adapter boards */ 82cb7aa33aSEmmanuel Vadot&eeprom_display_adapter { 83cb7aa33aSEmmanuel Vadot status = "okay"; 84cb7aa33aSEmmanuel Vadot}; 85cb7aa33aSEmmanuel Vadot 86cb7aa33aSEmmanuel Vadot/* EEPROM on Verdin Development board */ 87cb7aa33aSEmmanuel Vadot&eeprom_carrier_board { 88cb7aa33aSEmmanuel Vadot status = "okay"; 89cb7aa33aSEmmanuel Vadot}; 90cb7aa33aSEmmanuel Vadot 91cb7aa33aSEmmanuel Vadot&eqos { 92cb7aa33aSEmmanuel Vadot status = "okay"; 93cb7aa33aSEmmanuel Vadot}; 94cb7aa33aSEmmanuel Vadot 95d5b0e70fSEmmanuel Vadot&fec { 96d5b0e70fSEmmanuel Vadot phy-supply = <®_eth2phy>; 97d5b0e70fSEmmanuel Vadot status = "okay"; 98d5b0e70fSEmmanuel Vadot}; 99d5b0e70fSEmmanuel Vadot 100cb7aa33aSEmmanuel Vadot&flexcan1 { 101cb7aa33aSEmmanuel Vadot status = "okay"; 102cb7aa33aSEmmanuel Vadot}; 103cb7aa33aSEmmanuel Vadot 104cb7aa33aSEmmanuel Vadot&flexcan2 { 105cb7aa33aSEmmanuel Vadot status = "okay"; 106cb7aa33aSEmmanuel Vadot}; 107cb7aa33aSEmmanuel Vadot 108cb7aa33aSEmmanuel Vadot/* Verdin QSPI_1 */ 109cb7aa33aSEmmanuel Vadot&flexspi { 110cb7aa33aSEmmanuel Vadot status = "okay"; 111cb7aa33aSEmmanuel Vadot}; 112cb7aa33aSEmmanuel Vadot 1137d0873ebSEmmanuel Vadot&gpio4 { 1147d0873ebSEmmanuel Vadot pinctrl-names = "default"; 1157d0873ebSEmmanuel Vadot pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; 1167d0873ebSEmmanuel Vadot}; 1177d0873ebSEmmanuel Vadot 118d5b0e70fSEmmanuel Vadot&gpio_expander_21 { 119d5b0e70fSEmmanuel Vadot status = "okay"; 120d5b0e70fSEmmanuel Vadot vcc-supply = <®_1p8v>; 121d5b0e70fSEmmanuel Vadot}; 122d5b0e70fSEmmanuel Vadot 1230e8011faSEmmanuel Vadot/* Verdin HDMI_1 */ 1240e8011faSEmmanuel Vadot&hdmi_pvi { 1250e8011faSEmmanuel Vadot status = "okay"; 1260e8011faSEmmanuel Vadot}; 1270e8011faSEmmanuel Vadot 1280e8011faSEmmanuel Vadot&hdmi_tx { 1290e8011faSEmmanuel Vadot status = "okay"; 1300e8011faSEmmanuel Vadot 1310e8011faSEmmanuel Vadot ports { 1320e8011faSEmmanuel Vadot port@1 { 1330e8011faSEmmanuel Vadot hdmi_tx_out: endpoint { 1340e8011faSEmmanuel Vadot remote-endpoint = <&native_hdmi_connector_in>; 1350e8011faSEmmanuel Vadot }; 1360e8011faSEmmanuel Vadot }; 1370e8011faSEmmanuel Vadot }; 1380e8011faSEmmanuel Vadot}; 1390e8011faSEmmanuel Vadot 1400e8011faSEmmanuel Vadot&hdmi_tx_phy { 1410e8011faSEmmanuel Vadot status = "okay"; 1420e8011faSEmmanuel Vadot}; 1430e8011faSEmmanuel Vadot 144cb7aa33aSEmmanuel Vadot/* Current measurement into module VCC */ 145cb7aa33aSEmmanuel Vadot&hwmon { 146cb7aa33aSEmmanuel Vadot status = "okay"; 147cb7aa33aSEmmanuel Vadot}; 148cb7aa33aSEmmanuel Vadot 149cb7aa33aSEmmanuel Vadot&hwmon_temp { 150cb7aa33aSEmmanuel Vadot vs-supply = <®_1p8v>; 151cb7aa33aSEmmanuel Vadot status = "okay"; 152cb7aa33aSEmmanuel Vadot}; 153cb7aa33aSEmmanuel Vadot 154cb7aa33aSEmmanuel Vadot/* Verdin I2C_2_DSI */ 155cb7aa33aSEmmanuel Vadot&i2c2 { 156cb7aa33aSEmmanuel Vadot status = "okay"; 157cb7aa33aSEmmanuel Vadot}; 158cb7aa33aSEmmanuel Vadot 159cb7aa33aSEmmanuel Vadot&i2c3 { 160cb7aa33aSEmmanuel Vadot status = "okay"; 161cb7aa33aSEmmanuel Vadot}; 162cb7aa33aSEmmanuel Vadot 163cb7aa33aSEmmanuel Vadot/* Verdin I2C_1 */ 164cb7aa33aSEmmanuel Vadot&i2c4 { 165cb7aa33aSEmmanuel Vadot status = "okay"; 166cb7aa33aSEmmanuel Vadot 167aa1a8ff2SEmmanuel Vadot /* Audio Codec */ 168aa1a8ff2SEmmanuel Vadot nau8822_1a: audio-codec@1a { 169aa1a8ff2SEmmanuel Vadot compatible = "nuvoton,nau8822"; 170aa1a8ff2SEmmanuel Vadot reg = <0x1a>; 171aa1a8ff2SEmmanuel Vadot pinctrl-names = "default"; 172aa1a8ff2SEmmanuel Vadot pinctrl-0 = <&pinctrl_sai1>; 173aa1a8ff2SEmmanuel Vadot #sound-dai-cells = <0>; 174aa1a8ff2SEmmanuel Vadot }; 175cb7aa33aSEmmanuel Vadot}; 176cb7aa33aSEmmanuel Vadot 1777d0873ebSEmmanuel Vadot/* Verdin I2C_3_HDMI */ 1787d0873ebSEmmanuel Vadot&i2c5 { 1797d0873ebSEmmanuel Vadot status = "okay"; 1807d0873ebSEmmanuel Vadot}; 1817d0873ebSEmmanuel Vadot 1820e8011faSEmmanuel Vadot&lcdif3 { 1830e8011faSEmmanuel Vadot status = "okay"; 1840e8011faSEmmanuel Vadot}; 1850e8011faSEmmanuel Vadot 186fac71e4eSEmmanuel Vadot/* Verdin PCIE_1 */ 187fac71e4eSEmmanuel Vadot&pcie { 188fac71e4eSEmmanuel Vadot status = "okay"; 189fac71e4eSEmmanuel Vadot}; 190fac71e4eSEmmanuel Vadot 191fac71e4eSEmmanuel Vadot&pcie_phy { 192fac71e4eSEmmanuel Vadot status = "okay"; 193fac71e4eSEmmanuel Vadot}; 194cb7aa33aSEmmanuel Vadot 195cb7aa33aSEmmanuel Vadot/* Verdin PWM_1 */ 196cb7aa33aSEmmanuel Vadot&pwm1 { 197cb7aa33aSEmmanuel Vadot status = "okay"; 198cb7aa33aSEmmanuel Vadot}; 199cb7aa33aSEmmanuel Vadot 200cb7aa33aSEmmanuel Vadot/* Verdin PWM_2 */ 201cb7aa33aSEmmanuel Vadot&pwm2 { 202cb7aa33aSEmmanuel Vadot status = "okay"; 203cb7aa33aSEmmanuel Vadot}; 204cb7aa33aSEmmanuel Vadot 205cb7aa33aSEmmanuel Vadot/* Verdin PWM_3_DSI */ 206cb7aa33aSEmmanuel Vadot&pwm3 { 207cb7aa33aSEmmanuel Vadot status = "okay"; 208cb7aa33aSEmmanuel Vadot}; 209cb7aa33aSEmmanuel Vadot 210cb7aa33aSEmmanuel Vadot®_usdhc2_vmmc { 211cb7aa33aSEmmanuel Vadot vin-supply = <®_3p3v>; 212cb7aa33aSEmmanuel Vadot}; 213cb7aa33aSEmmanuel Vadot 214aa1a8ff2SEmmanuel Vadot/* Verdin I2S_1 */ 215aa1a8ff2SEmmanuel Vadot&sai1 { 216aa1a8ff2SEmmanuel Vadot assigned-clocks = <&clk IMX8MP_CLK_SAI1>; 217aa1a8ff2SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 218aa1a8ff2SEmmanuel Vadot assigned-clock-rates = <24576000>; 219aa1a8ff2SEmmanuel Vadot fsl,sai-mclk-direction-output; 220aa1a8ff2SEmmanuel Vadot status = "okay"; 221aa1a8ff2SEmmanuel Vadot}; 222d5b0e70fSEmmanuel Vadot 223*b2d2a78aSEmmanuel Vadot/* Verdin HDMI_1 Audio */ 224*b2d2a78aSEmmanuel Vadot&sound_hdmi { 225*b2d2a78aSEmmanuel Vadot status = "okay"; 226*b2d2a78aSEmmanuel Vadot}; 227*b2d2a78aSEmmanuel Vadot 228d5b0e70fSEmmanuel Vadot/* Verdin UART_1, connector X50 through RS485 transceiver */ 229d5b0e70fSEmmanuel Vadot&uart1 { 230d5b0e70fSEmmanuel Vadot linux,rs485-enabled-at-boot-time; 231d5b0e70fSEmmanuel Vadot rs485-rts-active-low; 232d5b0e70fSEmmanuel Vadot rs485-rx-during-tx; 233cb7aa33aSEmmanuel Vadot status = "okay"; 234cb7aa33aSEmmanuel Vadot}; 235cb7aa33aSEmmanuel Vadot 236cb7aa33aSEmmanuel Vadot/* Verdin UART_2 */ 237cb7aa33aSEmmanuel Vadot&uart2 { 238cb7aa33aSEmmanuel Vadot status = "okay"; 239cb7aa33aSEmmanuel Vadot}; 240cb7aa33aSEmmanuel Vadot 241cb7aa33aSEmmanuel Vadot/* Verdin UART_3, used as the Linux Console */ 242cb7aa33aSEmmanuel Vadot&uart3 { 243cb7aa33aSEmmanuel Vadot status = "okay"; 244cb7aa33aSEmmanuel Vadot}; 245cb7aa33aSEmmanuel Vadot 246cb7aa33aSEmmanuel Vadot/* Verdin USB_1 */ 247cb7aa33aSEmmanuel Vadot&usb3_0 { 248cb7aa33aSEmmanuel Vadot status = "okay"; 249cb7aa33aSEmmanuel Vadot}; 250cb7aa33aSEmmanuel Vadot 251cb7aa33aSEmmanuel Vadot&usb3_phy0 { 252cb7aa33aSEmmanuel Vadot status = "okay"; 253cb7aa33aSEmmanuel Vadot}; 254cb7aa33aSEmmanuel Vadot 255cb7aa33aSEmmanuel Vadot/* Verdin USB_2 */ 256cb7aa33aSEmmanuel Vadot&usb3_1 { 257cb7aa33aSEmmanuel Vadot fsl,permanently-attached; 258cb7aa33aSEmmanuel Vadot status = "okay"; 259cb7aa33aSEmmanuel Vadot}; 260cb7aa33aSEmmanuel Vadot 261cb7aa33aSEmmanuel Vadot&usb3_phy1 { 262cb7aa33aSEmmanuel Vadot status = "okay"; 263d5b0e70fSEmmanuel Vadot}; 264d5b0e70fSEmmanuel Vadot 265d5b0e70fSEmmanuel Vadot/* Limit frequency on dev board due to long traces and bad signal integrity */ 266d5b0e70fSEmmanuel Vadot&usdhc2 { 267d5b0e70fSEmmanuel Vadot max-frequency = <100000000>; 268cb7aa33aSEmmanuel Vadot status = "okay"; 269d5b0e70fSEmmanuel Vadot}; 270