// SPDX-License-Identifier: GPL-2.0-or-later OR MIT /* * Copyright 2023 Toradex */ / { sound_card: sound-card { compatible = "simple-audio-card"; simple-audio-card,bitclock-master = <&dailink_master>; simple-audio-card,format = "i2s"; simple-audio-card,frame-master = <&dailink_master>; simple-audio-card,name = "verdin-nau8822"; simple-audio-card,routing = "Headphones", "LHP", "Headphones", "RHP", "Speaker", "LSPK", "Speaker", "RSPK", "Line Out", "AUXOUT1", "Line Out", "AUXOUT2", "LAUX", "Line In", "RAUX", "Line In", "LMICP", "Mic In", "RMICP", "Mic In"; simple-audio-card,widgets = "Headphones", "Headphones", "Line Out", "Line Out", "Speaker", "Speaker", "Microphone", "Mic In", "Line", "Line In"; dailink_master: simple-audio-card,codec { clocks = <&k3_clks 157 10>; sound-dai = <&nau8822_1a>; }; simple-audio-card,cpu { sound-dai = <&mcasp0>; }; }; }; /* Verdin ETHs */ &cpsw3g { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rgmii1 &pinctrl_rgmii2>; status = "okay"; }; /* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */ &cpsw3g_mdio { status = "okay"; cpsw3g_phy1: ethernet-phy@7 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <7>; interrupt-parent = <&main_gpio0>; interrupts = <38 IRQ_TYPE_EDGE_FALLING>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_eth2_rgmii_int>; micrel,led-mode = <0>; }; }; /* Verdin ETH_1 (On-module PHY) */ &cpsw_port1 { status = "okay"; }; /* Verdin ETH_2_RGMII */ &cpsw_port2 { phy-handle = <&cpsw3g_phy1>; phy-mode = "rgmii-rxid"; status = "okay"; }; /* Verdin PWM_1, PWM_2 */ &epwm0 { status = "okay"; }; /* Verdin PWM_3_DSI */ &epwm1 { status = "okay"; }; &main_gpio0 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ctrl_sleep_moci &pinctrl_gpio_5 &pinctrl_gpio_6 &pinctrl_gpio_7 &pinctrl_gpio_8>; }; /* Verdin I2C_1 */ &main_i2c1 { status = "okay"; /* Audio Codec */ nau8822_1a: audio-codec@1a { compatible = "nuvoton,nau8822"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2s1_mclk>; /* Configure AUDIO_EXT_REFCLK1 pin as output */ reg = <0x1a>; #sound-dai-cells = <0>; /* POSTDIV4_16FF_MAIN_2_HSDIVOUT8_CLK -> AUDIO_EXT_REFCLK1 */ assigned-clocks = <&k3_clks 157 10>; assigned-clock-parents = <&k3_clks 157 18>; assigned-clock-rates = <25000000>; /* for 48KHz +/- 1.7% */ }; /* IO Expander */ gpio_expander_21: gpio-expander@21 { compatible = "nxp,pcal6416"; reg = <0x21>; #gpio-cells = <2>; gpio-controller; }; /* Current measurement into module VCC */ hwmon@40 { compatible = "ti,ina219"; reg = <0x40>; shunt-resistor = <10000>; }; /* Temperature sensor */ sensor@4f { compatible = "ti,tmp75c"; reg = <0x4f>; }; /* EEPROM */ eeprom@57 { compatible = "st,24c02"; reg = <0x57>; pagesize = <16>; }; }; /* Verdin I2C_2_DSI */ &main_i2c2 { status = "okay"; }; /* Verdin I2C_4_CSI */ &main_i2c3 { status = "okay"; }; /* Verdin CAN_1 */ &main_mcan0 { status = "okay"; }; /* Verdin SPI_1 */ &main_spi1 { status = "okay"; }; /* Verdin UART_3 */ &main_uart0 { status = "okay"; }; /* Verdin UART_1, connector X50 through RS485 transceiver. */ &main_uart1 { linux,rs485-enabled-at-boot-time; /* * The 8250 OMAP driver interprets rs485-rts-active-high and its * ioctl equivalent as driving RTS low on send. */ rs485-rts-active-high; rs485-rx-during-tx; status = "okay"; }; /* Verdin I2S_1 */ &mcasp0 { status = "okay"; }; &mcu_gpio0 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_1 &pinctrl_gpio_2 &pinctrl_gpio_3 &pinctrl_gpio_4>; }; /* Verdin I2C_3_HDMI */ &mcu_i2c0 { status = "okay"; }; /* Verdin CAN_2 */ &mcu_mcan0 { status = "okay"; }; /* Verdin UART_4 */ &mcu_uart0 { status = "okay"; }; /* Verdin QSPI_1 */ &ospi0 { status = "okay"; }; /* Verdin SD_1 */ &sdhci1 { ti,driver-strength-ohm = <33>; status = "okay"; }; /* Verdin USB_1 */ &usbss0 { status = "okay"; }; &usb0 { status = "okay"; }; /* Verdin USB_2 */ &usbss1 { status = "okay"; }; &usb1 { status = "okay"; }; /* Verdin CTRL_WAKE1_MICO# */ &verdin_gpio_keys { status = "okay"; }; /* Verdin UART_2 */ /* TODO: enable it, currently reserved by DM firmware */ &wkup_uart0 { status = "disabled"; };