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/ { 7d5b0e70fSEmmanuel Vadot reg_eth2phy: regulator-eth2phy { 8d5b0e70fSEmmanuel Vadot compatible = "regulator-fixed"; 9d5b0e70fSEmmanuel Vadot enable-active-high; 10d5b0e70fSEmmanuel Vadot gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* ETH_PWR_EN */ 11cb7aa33aSEmmanuel Vadot off-on-delay-us = <500000>; 12d5b0e70fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 13d5b0e70fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 14d5b0e70fSEmmanuel Vadot regulator-name = "+V3.3_ETH"; 15d5b0e70fSEmmanuel Vadot startup-delay-us = <200000>; 16d5b0e70fSEmmanuel Vadot vin-supply = <®_3p3v>; 17d5b0e70fSEmmanuel Vadot }; 18*aa1a8ff2SEmmanuel Vadot 19*aa1a8ff2SEmmanuel Vadot sound { 20*aa1a8ff2SEmmanuel Vadot compatible = "simple-audio-card"; 21*aa1a8ff2SEmmanuel Vadot simple-audio-card,bitclock-master = <&codec_dai>; 22*aa1a8ff2SEmmanuel Vadot simple-audio-card,format = "i2s"; 23*aa1a8ff2SEmmanuel Vadot simple-audio-card,frame-master = <&codec_dai>; 24*aa1a8ff2SEmmanuel Vadot simple-audio-card,mclk-fs = <256>; 25*aa1a8ff2SEmmanuel Vadot simple-audio-card,name = "imx8mp-nau8822"; 26*aa1a8ff2SEmmanuel Vadot simple-audio-card,routing = 27*aa1a8ff2SEmmanuel Vadot "Headphones", "LHP", 28*aa1a8ff2SEmmanuel Vadot "Headphones", "RHP", 29*aa1a8ff2SEmmanuel Vadot "Speaker", "LSPK", 30*aa1a8ff2SEmmanuel Vadot "Speaker", "RSPK", 31*aa1a8ff2SEmmanuel Vadot "Line Out", "AUXOUT1", 32*aa1a8ff2SEmmanuel Vadot "Line Out", "AUXOUT2", 33*aa1a8ff2SEmmanuel Vadot "LAUX", "Line In", 34*aa1a8ff2SEmmanuel Vadot "RAUX", "Line In", 35*aa1a8ff2SEmmanuel Vadot "LMICP", "Mic In", 36*aa1a8ff2SEmmanuel Vadot "RMICP", "Mic In"; 37*aa1a8ff2SEmmanuel Vadot simple-audio-card,widgets = 38*aa1a8ff2SEmmanuel Vadot "Headphones", "Headphones", 39*aa1a8ff2SEmmanuel Vadot "Line Out", "Line Out", 40*aa1a8ff2SEmmanuel Vadot "Speaker", "Speaker", 41*aa1a8ff2SEmmanuel Vadot "Microphone", "Mic In", 42*aa1a8ff2SEmmanuel Vadot "Line", "Line In"; 43*aa1a8ff2SEmmanuel Vadot 44*aa1a8ff2SEmmanuel Vadot codec_dai: simple-audio-card,codec { 45*aa1a8ff2SEmmanuel Vadot clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 46*aa1a8ff2SEmmanuel Vadot sound-dai = <&nau8822_1a>; 47*aa1a8ff2SEmmanuel Vadot }; 48*aa1a8ff2SEmmanuel Vadot 49*aa1a8ff2SEmmanuel Vadot simple-audio-card,cpu { 50*aa1a8ff2SEmmanuel Vadot sound-dai = <&sai1>; 51*aa1a8ff2SEmmanuel Vadot }; 52*aa1a8ff2SEmmanuel Vadot }; 53d5b0e70fSEmmanuel Vadot}; 54d5b0e70fSEmmanuel Vadot 55cb7aa33aSEmmanuel Vadot&backlight { 56cb7aa33aSEmmanuel Vadot power-supply = <®_3p3v>; 57cb7aa33aSEmmanuel Vadot}; 58cb7aa33aSEmmanuel Vadot 59cb7aa33aSEmmanuel Vadot/* Verdin SPI_1 */ 60cb7aa33aSEmmanuel Vadot&ecspi1 { 61cb7aa33aSEmmanuel Vadot status = "okay"; 62cb7aa33aSEmmanuel Vadot}; 63cb7aa33aSEmmanuel Vadot 64cb7aa33aSEmmanuel Vadot/* EEPROM on display adapter boards */ 65cb7aa33aSEmmanuel Vadot&eeprom_display_adapter { 66cb7aa33aSEmmanuel Vadot status = "okay"; 67cb7aa33aSEmmanuel Vadot}; 68cb7aa33aSEmmanuel Vadot 69cb7aa33aSEmmanuel Vadot/* EEPROM on Verdin Development board */ 70cb7aa33aSEmmanuel Vadot&eeprom_carrier_board { 71cb7aa33aSEmmanuel Vadot status = "okay"; 72cb7aa33aSEmmanuel Vadot}; 73cb7aa33aSEmmanuel Vadot 74cb7aa33aSEmmanuel Vadot&eqos { 75cb7aa33aSEmmanuel Vadot status = "okay"; 76cb7aa33aSEmmanuel Vadot}; 77cb7aa33aSEmmanuel Vadot 78d5b0e70fSEmmanuel Vadot&fec { 79d5b0e70fSEmmanuel Vadot phy-supply = <®_eth2phy>; 80d5b0e70fSEmmanuel Vadot status = "okay"; 81d5b0e70fSEmmanuel Vadot}; 82d5b0e70fSEmmanuel Vadot 83cb7aa33aSEmmanuel Vadot&flexcan1 { 84cb7aa33aSEmmanuel Vadot status = "okay"; 85cb7aa33aSEmmanuel Vadot}; 86cb7aa33aSEmmanuel Vadot 87cb7aa33aSEmmanuel Vadot&flexcan2 { 88cb7aa33aSEmmanuel Vadot status = "okay"; 89cb7aa33aSEmmanuel Vadot}; 90cb7aa33aSEmmanuel Vadot 91cb7aa33aSEmmanuel Vadot/* Verdin QSPI_1 */ 92cb7aa33aSEmmanuel Vadot&flexspi { 93cb7aa33aSEmmanuel Vadot status = "okay"; 94cb7aa33aSEmmanuel Vadot}; 95cb7aa33aSEmmanuel Vadot 96d5b0e70fSEmmanuel Vadot&gpio_expander_21 { 97d5b0e70fSEmmanuel Vadot status = "okay"; 98d5b0e70fSEmmanuel Vadot vcc-supply = <®_1p8v>; 99d5b0e70fSEmmanuel Vadot}; 100d5b0e70fSEmmanuel Vadot 101cb7aa33aSEmmanuel Vadot/* Current measurement into module VCC */ 102cb7aa33aSEmmanuel Vadot&hwmon { 103cb7aa33aSEmmanuel Vadot status = "okay"; 104cb7aa33aSEmmanuel Vadot}; 105cb7aa33aSEmmanuel Vadot 106cb7aa33aSEmmanuel Vadot&hwmon_temp { 107cb7aa33aSEmmanuel Vadot vs-supply = <®_1p8v>; 108cb7aa33aSEmmanuel Vadot status = "okay"; 109cb7aa33aSEmmanuel Vadot}; 110cb7aa33aSEmmanuel Vadot 111cb7aa33aSEmmanuel Vadot/* Verdin I2C_2_DSI */ 112cb7aa33aSEmmanuel Vadot&i2c2 { 113cb7aa33aSEmmanuel Vadot status = "okay"; 114cb7aa33aSEmmanuel Vadot}; 115cb7aa33aSEmmanuel Vadot 116cb7aa33aSEmmanuel Vadot&i2c3 { 117cb7aa33aSEmmanuel Vadot status = "okay"; 118cb7aa33aSEmmanuel Vadot}; 119cb7aa33aSEmmanuel Vadot 120cb7aa33aSEmmanuel Vadot/* Verdin I2C_1 */ 121cb7aa33aSEmmanuel Vadot&i2c4 { 122cb7aa33aSEmmanuel Vadot status = "okay"; 123cb7aa33aSEmmanuel Vadot 124*aa1a8ff2SEmmanuel Vadot /* Audio Codec */ 125*aa1a8ff2SEmmanuel Vadot nau8822_1a: audio-codec@1a { 126*aa1a8ff2SEmmanuel Vadot compatible = "nuvoton,nau8822"; 127*aa1a8ff2SEmmanuel Vadot reg = <0x1a>; 128*aa1a8ff2SEmmanuel Vadot pinctrl-names = "default"; 129*aa1a8ff2SEmmanuel Vadot pinctrl-0 = <&pinctrl_sai1>; 130*aa1a8ff2SEmmanuel Vadot #sound-dai-cells = <0>; 131*aa1a8ff2SEmmanuel Vadot }; 132cb7aa33aSEmmanuel Vadot}; 133cb7aa33aSEmmanuel Vadot 134fac71e4eSEmmanuel Vadot/* Verdin PCIE_1 */ 135fac71e4eSEmmanuel Vadot&pcie { 136fac71e4eSEmmanuel Vadot status = "okay"; 137fac71e4eSEmmanuel Vadot}; 138fac71e4eSEmmanuel Vadot 139fac71e4eSEmmanuel Vadot&pcie_phy { 140fac71e4eSEmmanuel Vadot status = "okay"; 141fac71e4eSEmmanuel Vadot}; 142cb7aa33aSEmmanuel Vadot 143cb7aa33aSEmmanuel Vadot/* Verdin PWM_1 */ 144cb7aa33aSEmmanuel Vadot&pwm1 { 145cb7aa33aSEmmanuel Vadot status = "okay"; 146cb7aa33aSEmmanuel Vadot}; 147cb7aa33aSEmmanuel Vadot 148cb7aa33aSEmmanuel Vadot/* Verdin PWM_2 */ 149cb7aa33aSEmmanuel Vadot&pwm2 { 150cb7aa33aSEmmanuel Vadot status = "okay"; 151cb7aa33aSEmmanuel Vadot}; 152cb7aa33aSEmmanuel Vadot 153cb7aa33aSEmmanuel Vadot/* Verdin PWM_3_DSI */ 154cb7aa33aSEmmanuel Vadot&pwm3 { 155cb7aa33aSEmmanuel Vadot status = "okay"; 156cb7aa33aSEmmanuel Vadot}; 157cb7aa33aSEmmanuel Vadot 158cb7aa33aSEmmanuel Vadot®_usdhc2_vmmc { 159cb7aa33aSEmmanuel Vadot vin-supply = <®_3p3v>; 160cb7aa33aSEmmanuel Vadot}; 161cb7aa33aSEmmanuel Vadot 162*aa1a8ff2SEmmanuel Vadot/* Verdin I2S_1 */ 163*aa1a8ff2SEmmanuel Vadot&sai1 { 164*aa1a8ff2SEmmanuel Vadot assigned-clocks = <&clk IMX8MP_CLK_SAI1>; 165*aa1a8ff2SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 166*aa1a8ff2SEmmanuel Vadot assigned-clock-rates = <24576000>; 167*aa1a8ff2SEmmanuel Vadot fsl,sai-mclk-direction-output; 168*aa1a8ff2SEmmanuel Vadot status = "okay"; 169*aa1a8ff2SEmmanuel Vadot}; 170d5b0e70fSEmmanuel Vadot 171d5b0e70fSEmmanuel Vadot/* Verdin UART_1, connector X50 through RS485 transceiver */ 172d5b0e70fSEmmanuel Vadot&uart1 { 173d5b0e70fSEmmanuel Vadot linux,rs485-enabled-at-boot-time; 174d5b0e70fSEmmanuel Vadot rs485-rts-active-low; 175d5b0e70fSEmmanuel Vadot rs485-rx-during-tx; 176cb7aa33aSEmmanuel Vadot status = "okay"; 177cb7aa33aSEmmanuel Vadot}; 178cb7aa33aSEmmanuel Vadot 179cb7aa33aSEmmanuel Vadot/* Verdin UART_2 */ 180cb7aa33aSEmmanuel Vadot&uart2 { 181cb7aa33aSEmmanuel Vadot status = "okay"; 182cb7aa33aSEmmanuel Vadot}; 183cb7aa33aSEmmanuel Vadot 184cb7aa33aSEmmanuel Vadot/* Verdin UART_3, used as the Linux Console */ 185cb7aa33aSEmmanuel Vadot&uart3 { 186cb7aa33aSEmmanuel Vadot status = "okay"; 187cb7aa33aSEmmanuel Vadot}; 188cb7aa33aSEmmanuel Vadot 189cb7aa33aSEmmanuel Vadot/* Verdin USB_1 */ 190cb7aa33aSEmmanuel Vadot&usb3_0 { 191cb7aa33aSEmmanuel Vadot status = "okay"; 192cb7aa33aSEmmanuel Vadot}; 193cb7aa33aSEmmanuel Vadot 194cb7aa33aSEmmanuel Vadot&usb3_phy0 { 195cb7aa33aSEmmanuel Vadot status = "okay"; 196cb7aa33aSEmmanuel Vadot}; 197cb7aa33aSEmmanuel Vadot 198cb7aa33aSEmmanuel Vadot/* Verdin USB_2 */ 199cb7aa33aSEmmanuel Vadot&usb3_1 { 200cb7aa33aSEmmanuel Vadot fsl,permanently-attached; 201cb7aa33aSEmmanuel Vadot status = "okay"; 202cb7aa33aSEmmanuel Vadot}; 203cb7aa33aSEmmanuel Vadot 204cb7aa33aSEmmanuel Vadot&usb3_phy1 { 205cb7aa33aSEmmanuel Vadot status = "okay"; 206d5b0e70fSEmmanuel Vadot}; 207d5b0e70fSEmmanuel Vadot 208d5b0e70fSEmmanuel Vadot/* Limit frequency on dev board due to long traces and bad signal integrity */ 209d5b0e70fSEmmanuel Vadot&usdhc2 { 210d5b0e70fSEmmanuel Vadot max-frequency = <100000000>; 211cb7aa33aSEmmanuel Vadot status = "okay"; 212d5b0e70fSEmmanuel Vadot}; 213