1a39ed23bSMarcel Ziswiler// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2a39ed23bSMarcel Ziswiler/* 3a39ed23bSMarcel Ziswiler * Copyright 2022 Toradex 4a39ed23bSMarcel Ziswiler */ 5a39ed23bSMarcel Ziswiler 6a39ed23bSMarcel Ziswiler/ { 7a39ed23bSMarcel Ziswiler reg_eth2phy: regulator-eth2phy { 8a39ed23bSMarcel Ziswiler compatible = "regulator-fixed"; 9a39ed23bSMarcel Ziswiler enable-active-high; 10a39ed23bSMarcel Ziswiler gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* ETH_PWR_EN */ 1102c447a0SPeng Fan off-on-delay-us = <500000>; 12a39ed23bSMarcel Ziswiler regulator-max-microvolt = <3300000>; 13a39ed23bSMarcel Ziswiler regulator-min-microvolt = <3300000>; 14a39ed23bSMarcel Ziswiler regulator-name = "+V3.3_ETH"; 15a39ed23bSMarcel Ziswiler startup-delay-us = <200000>; 16a39ed23bSMarcel Ziswiler vin-supply = <®_3p3v>; 17a39ed23bSMarcel Ziswiler }; 18*b8e4498fSFrancesco Dolcini 19*b8e4498fSFrancesco Dolcini sound { 20*b8e4498fSFrancesco Dolcini compatible = "simple-audio-card"; 21*b8e4498fSFrancesco Dolcini simple-audio-card,bitclock-master = <&codec_dai>; 22*b8e4498fSFrancesco Dolcini simple-audio-card,format = "i2s"; 23*b8e4498fSFrancesco Dolcini simple-audio-card,frame-master = <&codec_dai>; 24*b8e4498fSFrancesco Dolcini simple-audio-card,mclk-fs = <256>; 25*b8e4498fSFrancesco Dolcini simple-audio-card,name = "imx8mp-nau8822"; 26*b8e4498fSFrancesco Dolcini simple-audio-card,routing = 27*b8e4498fSFrancesco Dolcini "Headphones", "LHP", 28*b8e4498fSFrancesco Dolcini "Headphones", "RHP", 29*b8e4498fSFrancesco Dolcini "Speaker", "LSPK", 30*b8e4498fSFrancesco Dolcini "Speaker", "RSPK", 31*b8e4498fSFrancesco Dolcini "Line Out", "AUXOUT1", 32*b8e4498fSFrancesco Dolcini "Line Out", "AUXOUT2", 33*b8e4498fSFrancesco Dolcini "LAUX", "Line In", 34*b8e4498fSFrancesco Dolcini "RAUX", "Line In", 35*b8e4498fSFrancesco Dolcini "LMICP", "Mic In", 36*b8e4498fSFrancesco Dolcini "RMICP", "Mic In"; 37*b8e4498fSFrancesco Dolcini simple-audio-card,widgets = 38*b8e4498fSFrancesco Dolcini "Headphones", "Headphones", 39*b8e4498fSFrancesco Dolcini "Line Out", "Line Out", 40*b8e4498fSFrancesco Dolcini "Speaker", "Speaker", 41*b8e4498fSFrancesco Dolcini "Microphone", "Mic In", 42*b8e4498fSFrancesco Dolcini "Line", "Line In"; 43*b8e4498fSFrancesco Dolcini 44*b8e4498fSFrancesco Dolcini codec_dai: simple-audio-card,codec { 45*b8e4498fSFrancesco Dolcini clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 46*b8e4498fSFrancesco Dolcini sound-dai = <&nau8822_1a>; 47*b8e4498fSFrancesco Dolcini }; 48*b8e4498fSFrancesco Dolcini 49*b8e4498fSFrancesco Dolcini simple-audio-card,cpu { 50*b8e4498fSFrancesco Dolcini sound-dai = <&sai1>; 51*b8e4498fSFrancesco Dolcini }; 52*b8e4498fSFrancesco Dolcini }; 53a39ed23bSMarcel Ziswiler}; 54a39ed23bSMarcel Ziswiler 5564a59c39SPhilippe Schenker&backlight { 5664a59c39SPhilippe Schenker power-supply = <®_3p3v>; 5764a59c39SPhilippe Schenker}; 5864a59c39SPhilippe Schenker 5964a59c39SPhilippe Schenker/* Verdin SPI_1 */ 6064a59c39SPhilippe Schenker&ecspi1 { 6164a59c39SPhilippe Schenker status = "okay"; 6264a59c39SPhilippe Schenker}; 6364a59c39SPhilippe Schenker 6464a59c39SPhilippe Schenker/* EEPROM on display adapter boards */ 6564a59c39SPhilippe Schenker&eeprom_display_adapter { 6664a59c39SPhilippe Schenker status = "okay"; 6764a59c39SPhilippe Schenker}; 6864a59c39SPhilippe Schenker 6964a59c39SPhilippe Schenker/* EEPROM on Verdin Development board */ 7064a59c39SPhilippe Schenker&eeprom_carrier_board { 7164a59c39SPhilippe Schenker status = "okay"; 7264a59c39SPhilippe Schenker}; 7364a59c39SPhilippe Schenker 7464a59c39SPhilippe Schenker&eqos { 7564a59c39SPhilippe Schenker status = "okay"; 7664a59c39SPhilippe Schenker}; 7764a59c39SPhilippe Schenker 78a39ed23bSMarcel Ziswiler&fec { 79a39ed23bSMarcel Ziswiler phy-supply = <®_eth2phy>; 80a39ed23bSMarcel Ziswiler status = "okay"; 81a39ed23bSMarcel Ziswiler}; 82a39ed23bSMarcel Ziswiler 8364a59c39SPhilippe Schenker&flexcan1 { 8464a59c39SPhilippe Schenker status = "okay"; 8564a59c39SPhilippe Schenker}; 8664a59c39SPhilippe Schenker 8764a59c39SPhilippe Schenker&flexcan2 { 8864a59c39SPhilippe Schenker status = "okay"; 8964a59c39SPhilippe Schenker}; 9064a59c39SPhilippe Schenker 9164a59c39SPhilippe Schenker/* Verdin QSPI_1 */ 9264a59c39SPhilippe Schenker&flexspi { 9364a59c39SPhilippe Schenker status = "okay"; 9464a59c39SPhilippe Schenker}; 9564a59c39SPhilippe Schenker 96a39ed23bSMarcel Ziswiler&gpio_expander_21 { 97a39ed23bSMarcel Ziswiler status = "okay"; 98a39ed23bSMarcel Ziswiler vcc-supply = <®_1p8v>; 99a39ed23bSMarcel Ziswiler}; 100a39ed23bSMarcel Ziswiler 10164a59c39SPhilippe Schenker/* Current measurement into module VCC */ 10264a59c39SPhilippe Schenker&hwmon { 10364a59c39SPhilippe Schenker status = "okay"; 10464a59c39SPhilippe Schenker}; 10564a59c39SPhilippe Schenker 10664a59c39SPhilippe Schenker&hwmon_temp { 10764a59c39SPhilippe Schenker vs-supply = <®_1p8v>; 10864a59c39SPhilippe Schenker status = "okay"; 10964a59c39SPhilippe Schenker}; 11064a59c39SPhilippe Schenker 11164a59c39SPhilippe Schenker/* Verdin I2C_2_DSI */ 11264a59c39SPhilippe Schenker&i2c2 { 11364a59c39SPhilippe Schenker status = "okay"; 11464a59c39SPhilippe Schenker}; 11564a59c39SPhilippe Schenker 11664a59c39SPhilippe Schenker&i2c3 { 11764a59c39SPhilippe Schenker status = "okay"; 11864a59c39SPhilippe Schenker}; 11964a59c39SPhilippe Schenker 12064a59c39SPhilippe Schenker/* Verdin I2C_1 */ 12164a59c39SPhilippe Schenker&i2c4 { 12264a59c39SPhilippe Schenker status = "okay"; 12364a59c39SPhilippe Schenker 124*b8e4498fSFrancesco Dolcini /* Audio Codec */ 125*b8e4498fSFrancesco Dolcini nau8822_1a: audio-codec@1a { 126*b8e4498fSFrancesco Dolcini compatible = "nuvoton,nau8822"; 127*b8e4498fSFrancesco Dolcini reg = <0x1a>; 128*b8e4498fSFrancesco Dolcini pinctrl-names = "default"; 129*b8e4498fSFrancesco Dolcini pinctrl-0 = <&pinctrl_sai1>; 130*b8e4498fSFrancesco Dolcini #sound-dai-cells = <0>; 131*b8e4498fSFrancesco Dolcini }; 13264a59c39SPhilippe Schenker}; 13364a59c39SPhilippe Schenker 13493ba667dSMarcel Ziswiler/* Verdin PCIE_1 */ 13593ba667dSMarcel Ziswiler&pcie { 13693ba667dSMarcel Ziswiler status = "okay"; 13793ba667dSMarcel Ziswiler}; 13893ba667dSMarcel Ziswiler 13993ba667dSMarcel Ziswiler&pcie_phy { 14093ba667dSMarcel Ziswiler status = "okay"; 14193ba667dSMarcel Ziswiler}; 14264a59c39SPhilippe Schenker 14364a59c39SPhilippe Schenker/* Verdin PWM_1 */ 14464a59c39SPhilippe Schenker&pwm1 { 14564a59c39SPhilippe Schenker status = "okay"; 14664a59c39SPhilippe Schenker}; 14764a59c39SPhilippe Schenker 14864a59c39SPhilippe Schenker/* Verdin PWM_2 */ 14964a59c39SPhilippe Schenker&pwm2 { 15064a59c39SPhilippe Schenker status = "okay"; 15164a59c39SPhilippe Schenker}; 15264a59c39SPhilippe Schenker 15364a59c39SPhilippe Schenker/* Verdin PWM_3_DSI */ 15464a59c39SPhilippe Schenker&pwm3 { 15564a59c39SPhilippe Schenker status = "okay"; 15664a59c39SPhilippe Schenker}; 15764a59c39SPhilippe Schenker 15864a59c39SPhilippe Schenker®_usdhc2_vmmc { 15964a59c39SPhilippe Schenker vin-supply = <®_3p3v>; 16064a59c39SPhilippe Schenker}; 16164a59c39SPhilippe Schenker 162*b8e4498fSFrancesco Dolcini/* Verdin I2S_1 */ 163*b8e4498fSFrancesco Dolcini&sai1 { 164*b8e4498fSFrancesco Dolcini assigned-clocks = <&clk IMX8MP_CLK_SAI1>; 165*b8e4498fSFrancesco Dolcini assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 166*b8e4498fSFrancesco Dolcini assigned-clock-rates = <24576000>; 167*b8e4498fSFrancesco Dolcini fsl,sai-mclk-direction-output; 168*b8e4498fSFrancesco Dolcini status = "okay"; 169*b8e4498fSFrancesco Dolcini}; 170a39ed23bSMarcel Ziswiler 171a39ed23bSMarcel Ziswiler/* Verdin UART_1, connector X50 through RS485 transceiver */ 172a39ed23bSMarcel Ziswiler&uart1 { 173a39ed23bSMarcel Ziswiler linux,rs485-enabled-at-boot-time; 174a39ed23bSMarcel Ziswiler rs485-rts-active-low; 175a39ed23bSMarcel Ziswiler rs485-rx-during-tx; 17664a59c39SPhilippe Schenker status = "okay"; 17764a59c39SPhilippe Schenker}; 17864a59c39SPhilippe Schenker 17964a59c39SPhilippe Schenker/* Verdin UART_2 */ 18064a59c39SPhilippe Schenker&uart2 { 18164a59c39SPhilippe Schenker status = "okay"; 18264a59c39SPhilippe Schenker}; 18364a59c39SPhilippe Schenker 18464a59c39SPhilippe Schenker/* Verdin UART_3, used as the Linux Console */ 18564a59c39SPhilippe Schenker&uart3 { 18664a59c39SPhilippe Schenker status = "okay"; 18764a59c39SPhilippe Schenker}; 18864a59c39SPhilippe Schenker 18964a59c39SPhilippe Schenker/* Verdin USB_1 */ 19064a59c39SPhilippe Schenker&usb3_0 { 19164a59c39SPhilippe Schenker status = "okay"; 19264a59c39SPhilippe Schenker}; 19364a59c39SPhilippe Schenker 19464a59c39SPhilippe Schenker&usb3_phy0 { 19564a59c39SPhilippe Schenker status = "okay"; 19664a59c39SPhilippe Schenker}; 19764a59c39SPhilippe Schenker 19864a59c39SPhilippe Schenker/* Verdin USB_2 */ 19964a59c39SPhilippe Schenker&usb3_1 { 20064a59c39SPhilippe Schenker fsl,permanently-attached; 20164a59c39SPhilippe Schenker status = "okay"; 20264a59c39SPhilippe Schenker}; 20364a59c39SPhilippe Schenker 20464a59c39SPhilippe Schenker&usb3_phy1 { 20564a59c39SPhilippe Schenker status = "okay"; 206a39ed23bSMarcel Ziswiler}; 207a39ed23bSMarcel Ziswiler 208a39ed23bSMarcel Ziswiler/* Limit frequency on dev board due to long traces and bad signal integrity */ 209a39ed23bSMarcel Ziswiler&usdhc2 { 210a39ed23bSMarcel Ziswiler max-frequency = <100000000>; 21164a59c39SPhilippe Schenker status = "okay"; 212a39ed23bSMarcel Ziswiler}; 213