| // SPDX-License-Identifier: GPL-2.0-or-later OR MIT |
| /* Copyright (C) 2025 Toradex */ |
| |
| /dts-v1/; |
| |
| #include "imx8mp-toradex-smarc.dtsi" |
| |
| / { |
| model = "Toradex SMARC iMX8M Plus on Toradex SMARC Development Board"; |
| compatible = "toradex,smarc-imx8mp-dev", |
| "toradex,smarc-imx8mp", |
| "fsl,imx8mp"; |
| |
| hdmi-connector { |
| compatible = "hdmi-connector"; |
| label = "J64"; |
| type = "a"; |
| |
| port { |
| native_hdmi_connector_in: endpoint { |
| remote-endpoint = <&hdmi_tx_out>; |
| }; |
| }; |
| }; |
| |
| reg_carrier_1p8v: regulator-carrier-1p8v { |
| compatible = "regulator-fixed"; |
| regulator-max-microvolt = <1800000>; |
| regulator-min-microvolt = <1800000>; |
| regulator-name = "On-carrier 1V8"; |
| }; |
| |
| sound { |
| compatible = "simple-audio-card"; |
| simple-audio-card,bitclock-master = <&codec_dai>; |
| simple-audio-card,format = "i2s"; |
| simple-audio-card,frame-master = <&codec_dai>; |
| simple-audio-card,mclk-fs = <256>; |
| simple-audio-card,name = "tdx-smarc-wm8904"; |
| simple-audio-card,routing = |
| "Headphone Jack", "HPOUTL", |
| "Headphone Jack", "HPOUTR", |
| "IN2L", "Line In Jack", |
| "IN2R", "Line In Jack", |
| "Microphone Jack", "MICBIAS", |
| "IN1L", "Microphone Jack"; |
| simple-audio-card,widgets = |
| "Microphone", "Microphone Jack", |
| "Headphone", "Headphone Jack", |
| "Line", "Line In Jack"; |
| |
| codec_dai: simple-audio-card,codec { |
| clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; |
| sound-dai = <&wm8904_1a>; |
| }; |
| |
| simple-audio-card,cpu { |
| sound-dai = <&sai1>; |
| }; |
| }; |
| }; |
| |
| &aud2htx { |
| status = "okay"; |
| }; |
| |
| /* SMARC SPI0 */ |
| &ecspi1 { |
| status = "okay"; |
| }; |
| |
| /* SMARC GBE0 */ |
| &eqos { |
| status = "okay"; |
| }; |
| |
| /* SMARC GBE1 */ |
| &fec { |
| status = "okay"; |
| }; |
| |
| /* SMARC CAN1 */ |
| &flexcan1 { |
| status = "okay"; |
| }; |
| |
| /* SMARC CAN0 */ |
| &flexcan2 { |
| status = "okay"; |
| }; |
| |
| &gpio1 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_gpio7>, |
| <&pinctrl_gpio8>, |
| <&pinctrl_gpio9>, |
| <&pinctrl_gpio10>, |
| <&pinctrl_gpio11>, |
| <&pinctrl_gpio12>, |
| <&pinctrl_gpio13>; |
| }; |
| |
| &gpio3 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_lvds_dsi_sel>; |
| }; |
| |
| &gpio4 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_gpio4>, <&pinctrl_gpio6>; |
| }; |
| |
| &hdmi_pvi { |
| status = "okay"; |
| }; |
| |
| /* SMARC HDMI */ |
| &hdmi_tx { |
| status = "okay"; |
| |
| ports { |
| port@1 { |
| hdmi_tx_out: endpoint { |
| remote-endpoint = <&native_hdmi_connector_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &hdmi_tx_phy { |
| status = "okay"; |
| }; |
| |
| /* SMARC I2C_LCD */ |
| &i2c2 { |
| status = "okay"; |
| |
| i2c-mux@70 { |
| compatible = "nxp,pca9543"; |
| reg = <0x70>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| /* I2C on DSI Connector Pins 4/6 */ |
| i2c_dsi_0: i2c@0 { |
| reg = <0>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| |
| /* I2C on DSI Connector Pins 52/54 */ |
| i2c_dsi_1: i2c@1 { |
| reg = <1>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| }; |
| }; |
| |
| /* SMARC I2C_CAM0 */ |
| &i2c3 { |
| status = "okay"; |
| }; |
| |
| /* SMARC I2C_GP */ |
| &i2c4 { |
| /* Audio Codec */ |
| wm8904_1a: audio-codec@1a { |
| compatible = "wlf,wm8904"; |
| reg = <0x1a>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_sai1>, <&pinctrl_sai1_mclk>; |
| #sound-dai-cells = <0>; |
| clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; |
| clock-names = "mclk"; |
| AVDD-supply = <®_carrier_1p8v>; |
| CPVDD-supply = <®_carrier_1p8v>; |
| DBVDD-supply = <®_carrier_1p8v>; |
| DCVDD-supply = <®_carrier_1p8v>; |
| MICVDD-supply = <®_carrier_1p8v>; |
| }; |
| |
| /* On-Carrier Temperature Sensor */ |
| temperature-sensor@4f { |
| compatible = "ti,tmp1075"; |
| reg = <0x4f>; |
| }; |
| |
| /* On-Carrier EEPROM */ |
| eeprom@57 { |
| compatible = "st,24c02", "atmel,24c02"; |
| reg = <0x57>; |
| pagesize = <16>; |
| }; |
| }; |
| |
| /* SMARC I2C_CAM1 */ |
| &i2c5 { |
| status = "okay"; |
| }; |
| |
| /* SMARC I2C_PM */ |
| &i2c6 { |
| clock-frequency = <100000>; |
| status = "okay"; |
| |
| /* Fan controller */ |
| fan@18 { |
| compatible = "ti,amc6821"; |
| reg = <0x18>; |
| }; |
| |
| /* Current measurement into module VDD */ |
| hwmon@40 { |
| compatible = "ti,ina226"; |
| reg = <0x40>; |
| shunt-resistor = <5000>; |
| }; |
| }; |
| |
| &lcdif3 { |
| status = "okay"; |
| }; |
| |
| /* SMARC PCIE_A, M2 Key B */ |
| &pcie { |
| status = "okay"; |
| }; |
| |
| &pcie_phy { |
| status = "okay"; |
| }; |
| |
| /* SMARC LCD1_BKLT_PWM */ |
| &pwm1 { |
| status = "okay"; |
| }; |
| |
| /* SMARC LCD0_BKLT_PWM */ |
| &pwm2 { |
| status = "okay"; |
| }; |
| |
| /* SMARC I2S0 */ |
| &sai1 { |
| assigned-clocks = <&clk IMX8MP_CLK_SAI1>; |
| assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; |
| assigned-clock-rates = <24576000>; |
| fsl,sai-mclk-direction-output; |
| status = "okay"; |
| }; |
| |
| /* SMARC HDMI Audio */ |
| &sound_hdmi { |
| status = "okay"; |
| }; |
| |
| /* SMARC SER0, RS485. Optional M.2 KEY E */ |
| &uart1 { |
| linux,rs485-enabled-at-boot-time; |
| rs485-rts-active-low; |
| rs485-rx-during-tx; |
| status = "okay"; |
| }; |
| |
| /* SMARC SER2 */ |
| &uart2 { |
| status = "okay"; |
| }; |
| |
| /* SMARC SER1, used as the Linux Console */ |
| &uart4 { |
| status = "okay"; |
| }; |
| |
| /* SMARC USB0 */ |
| &usb3_0 { |
| status = "okay"; |
| }; |
| |
| /* SMARC USB1..4 */ |
| &usb3_1 { |
| status = "okay"; |
| }; |
| |
| &usb3_phy0 { |
| status = "okay"; |
| }; |
| |
| &usb3_phy1 { |
| status = "okay"; |
| }; |
| |
| /* SMARC SDIO */ |
| &usdhc2 { |
| status = "okay"; |
| }; |