1ae5de77eSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2ae5de77eSEmmanuel Vadot/* Copyright (C) 2025 Toradex */ 3ae5de77eSEmmanuel Vadot 4ae5de77eSEmmanuel Vadot/dts-v1/; 5ae5de77eSEmmanuel Vadot 6ae5de77eSEmmanuel Vadot#include <dt-bindings/pwm/pwm.h> 7ae5de77eSEmmanuel Vadot 8ae5de77eSEmmanuel Vadot#include "imx8mp-toradex-smarc.dtsi" 9ae5de77eSEmmanuel Vadot 10ae5de77eSEmmanuel Vadot/ { 11ae5de77eSEmmanuel Vadot model = "Toradex SMARC iMX8M Plus on Toradex SMARC Development Board"; 12ae5de77eSEmmanuel Vadot compatible = "toradex,smarc-imx8mp-dev", 13ae5de77eSEmmanuel Vadot "toradex,smarc-imx8mp", 14ae5de77eSEmmanuel Vadot "fsl,imx8mp"; 15ae5de77eSEmmanuel Vadot 16ae5de77eSEmmanuel Vadot hdmi-connector { 17ae5de77eSEmmanuel Vadot compatible = "hdmi-connector"; 18ae5de77eSEmmanuel Vadot label = "J64"; 19ae5de77eSEmmanuel Vadot type = "a"; 20ae5de77eSEmmanuel Vadot 21ae5de77eSEmmanuel Vadot port { 22ae5de77eSEmmanuel Vadot native_hdmi_connector_in: endpoint { 23ae5de77eSEmmanuel Vadot remote-endpoint = <&hdmi_tx_out>; 24ae5de77eSEmmanuel Vadot }; 25ae5de77eSEmmanuel Vadot }; 26ae5de77eSEmmanuel Vadot }; 27ae5de77eSEmmanuel Vadot 28ae5de77eSEmmanuel Vadot reg_carrier_1p8v: regulator-carrier-1p8v { 29ae5de77eSEmmanuel Vadot compatible = "regulator-fixed"; 30ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1800000>; 31ae5de77eSEmmanuel Vadot regulator-min-microvolt = <1800000>; 32ae5de77eSEmmanuel Vadot regulator-name = "On-carrier 1V8"; 33ae5de77eSEmmanuel Vadot }; 34ae5de77eSEmmanuel Vadot 35ae5de77eSEmmanuel Vadot sound { 36ae5de77eSEmmanuel Vadot compatible = "simple-audio-card"; 37ae5de77eSEmmanuel Vadot simple-audio-card,bitclock-master = <&codec_dai>; 38ae5de77eSEmmanuel Vadot simple-audio-card,format = "i2s"; 39ae5de77eSEmmanuel Vadot simple-audio-card,frame-master = <&codec_dai>; 40ae5de77eSEmmanuel Vadot simple-audio-card,mclk-fs = <256>; 41ae5de77eSEmmanuel Vadot simple-audio-card,name = "tdx-smarc-wm8904"; 42ae5de77eSEmmanuel Vadot simple-audio-card,routing = 43ae5de77eSEmmanuel Vadot "Headphone Jack", "HPOUTL", 44ae5de77eSEmmanuel Vadot "Headphone Jack", "HPOUTR", 45ae5de77eSEmmanuel Vadot "IN2L", "Line In Jack", 46ae5de77eSEmmanuel Vadot "IN2R", "Line In Jack", 47ae5de77eSEmmanuel Vadot "Microphone Jack", "MICBIAS", 48ae5de77eSEmmanuel Vadot "IN1L", "Microphone Jack"; 49ae5de77eSEmmanuel Vadot simple-audio-card,widgets = 50ae5de77eSEmmanuel Vadot "Microphone", "Microphone Jack", 51ae5de77eSEmmanuel Vadot "Headphone", "Headphone Jack", 52ae5de77eSEmmanuel Vadot "Line", "Line In Jack"; 53ae5de77eSEmmanuel Vadot 54ae5de77eSEmmanuel Vadot codec_dai: simple-audio-card,codec { 55ae5de77eSEmmanuel Vadot clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 56ae5de77eSEmmanuel Vadot sound-dai = <&wm8904_1a>; 57ae5de77eSEmmanuel Vadot }; 58ae5de77eSEmmanuel Vadot 59ae5de77eSEmmanuel Vadot simple-audio-card,cpu { 60ae5de77eSEmmanuel Vadot sound-dai = <&sai1>; 61ae5de77eSEmmanuel Vadot }; 62ae5de77eSEmmanuel Vadot }; 63ae5de77eSEmmanuel Vadot}; 64ae5de77eSEmmanuel Vadot 65ae5de77eSEmmanuel Vadot&aud2htx { 66ae5de77eSEmmanuel Vadot status = "okay"; 67ae5de77eSEmmanuel Vadot}; 68ae5de77eSEmmanuel Vadot 69ae5de77eSEmmanuel Vadot/* SMARC SPI0 */ 70ae5de77eSEmmanuel Vadot&ecspi1 { 71ae5de77eSEmmanuel Vadot status = "okay"; 72ae5de77eSEmmanuel Vadot}; 73ae5de77eSEmmanuel Vadot 74ae5de77eSEmmanuel Vadot/* SMARC GBE0 */ 75ae5de77eSEmmanuel Vadot&eqos { 76ae5de77eSEmmanuel Vadot status = "okay"; 77ae5de77eSEmmanuel Vadot}; 78ae5de77eSEmmanuel Vadot 79ae5de77eSEmmanuel Vadot/* SMARC GBE1 */ 80ae5de77eSEmmanuel Vadot&fec { 81ae5de77eSEmmanuel Vadot status = "okay"; 82ae5de77eSEmmanuel Vadot}; 83ae5de77eSEmmanuel Vadot 84ae5de77eSEmmanuel Vadot/* SMARC CAN1 */ 85ae5de77eSEmmanuel Vadot&flexcan1 { 86ae5de77eSEmmanuel Vadot status = "okay"; 87ae5de77eSEmmanuel Vadot}; 88ae5de77eSEmmanuel Vadot 89ae5de77eSEmmanuel Vadot/* SMARC CAN0 */ 90ae5de77eSEmmanuel Vadot&flexcan2 { 91ae5de77eSEmmanuel Vadot status = "okay"; 92ae5de77eSEmmanuel Vadot}; 93ae5de77eSEmmanuel Vadot 94ae5de77eSEmmanuel Vadot&gpio1 { 95ae5de77eSEmmanuel Vadot pinctrl-names = "default"; 96ae5de77eSEmmanuel Vadot pinctrl-0 = <&pinctrl_gpio7>, 97ae5de77eSEmmanuel Vadot <&pinctrl_gpio8>, 98ae5de77eSEmmanuel Vadot <&pinctrl_gpio9>, 99ae5de77eSEmmanuel Vadot <&pinctrl_gpio10>, 100ae5de77eSEmmanuel Vadot <&pinctrl_gpio11>, 101ae5de77eSEmmanuel Vadot <&pinctrl_gpio12>, 102ae5de77eSEmmanuel Vadot <&pinctrl_gpio13>; 103ae5de77eSEmmanuel Vadot}; 104ae5de77eSEmmanuel Vadot 105ae5de77eSEmmanuel Vadot&gpio4 { 106ae5de77eSEmmanuel Vadot pinctrl-names = "default"; 107ae5de77eSEmmanuel Vadot pinctrl-0 = <&pinctrl_gpio4>, <&pinctrl_gpio6>; 108ae5de77eSEmmanuel Vadot}; 109ae5de77eSEmmanuel Vadot 110ae5de77eSEmmanuel Vadot&hdmi_pvi { 111ae5de77eSEmmanuel Vadot status = "okay"; 112ae5de77eSEmmanuel Vadot}; 113ae5de77eSEmmanuel Vadot 114ae5de77eSEmmanuel Vadot/* SMARC HDMI */ 115ae5de77eSEmmanuel Vadot&hdmi_tx { 116ae5de77eSEmmanuel Vadot status = "okay"; 117ae5de77eSEmmanuel Vadot 118ae5de77eSEmmanuel Vadot ports { 119ae5de77eSEmmanuel Vadot port@1 { 120ae5de77eSEmmanuel Vadot hdmi_tx_out: endpoint { 121ae5de77eSEmmanuel Vadot remote-endpoint = <&native_hdmi_connector_in>; 122ae5de77eSEmmanuel Vadot }; 123ae5de77eSEmmanuel Vadot }; 124ae5de77eSEmmanuel Vadot }; 125ae5de77eSEmmanuel Vadot}; 126ae5de77eSEmmanuel Vadot 127ae5de77eSEmmanuel Vadot&hdmi_tx_phy { 128ae5de77eSEmmanuel Vadot status = "okay"; 129ae5de77eSEmmanuel Vadot}; 130ae5de77eSEmmanuel Vadot 131ae5de77eSEmmanuel Vadot/* SMARC I2C_LCD */ 132ae5de77eSEmmanuel Vadot&i2c2 { 133ae5de77eSEmmanuel Vadot status = "okay"; 134ae5de77eSEmmanuel Vadot 135ae5de77eSEmmanuel Vadot i2c-mux@70 { 136ae5de77eSEmmanuel Vadot compatible = "nxp,pca9543"; 137ae5de77eSEmmanuel Vadot reg = <0x70>; 138ae5de77eSEmmanuel Vadot #address-cells = <1>; 139ae5de77eSEmmanuel Vadot #size-cells = <0>; 140ae5de77eSEmmanuel Vadot 141ae5de77eSEmmanuel Vadot /* I2C on DSI Connector Pins 4/6 */ 142ae5de77eSEmmanuel Vadot i2c_dsi_0: i2c@0 { 143ae5de77eSEmmanuel Vadot reg = <0>; 144ae5de77eSEmmanuel Vadot #address-cells = <1>; 145ae5de77eSEmmanuel Vadot #size-cells = <0>; 146ae5de77eSEmmanuel Vadot }; 147ae5de77eSEmmanuel Vadot 148ae5de77eSEmmanuel Vadot /* I2C on DSI Connector Pins 52/54 */ 149ae5de77eSEmmanuel Vadot i2c_dsi_1: i2c@1 { 150ae5de77eSEmmanuel Vadot reg = <1>; 151ae5de77eSEmmanuel Vadot #address-cells = <1>; 152ae5de77eSEmmanuel Vadot #size-cells = <0>; 153ae5de77eSEmmanuel Vadot }; 154ae5de77eSEmmanuel Vadot }; 155ae5de77eSEmmanuel Vadot}; 156ae5de77eSEmmanuel Vadot 157ae5de77eSEmmanuel Vadot/* SMARC I2C_CAM0 */ 158ae5de77eSEmmanuel Vadot&i2c3 { 159ae5de77eSEmmanuel Vadot status = "okay"; 160ae5de77eSEmmanuel Vadot}; 161ae5de77eSEmmanuel Vadot 162ae5de77eSEmmanuel Vadot/* SMARC I2C_GP */ 163ae5de77eSEmmanuel Vadot&i2c4 { 164ae5de77eSEmmanuel Vadot /* Audio Codec */ 165ae5de77eSEmmanuel Vadot wm8904_1a: audio-codec@1a { 166ae5de77eSEmmanuel Vadot compatible = "wlf,wm8904"; 167ae5de77eSEmmanuel Vadot reg = <0x1a>; 168ae5de77eSEmmanuel Vadot pinctrl-names = "default"; 169ae5de77eSEmmanuel Vadot pinctrl-0 = <&pinctrl_sai1>, <&pinctrl_sai1_mclk>; 170ae5de77eSEmmanuel Vadot #sound-dai-cells = <0>; 171ae5de77eSEmmanuel Vadot clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 172ae5de77eSEmmanuel Vadot clock-names = "mclk"; 173ae5de77eSEmmanuel Vadot AVDD-supply = <®_carrier_1p8v>; 174ae5de77eSEmmanuel Vadot CPVDD-supply = <®_carrier_1p8v>; 175ae5de77eSEmmanuel Vadot DBVDD-supply = <®_carrier_1p8v>; 176ae5de77eSEmmanuel Vadot DCVDD-supply = <®_carrier_1p8v>; 177ae5de77eSEmmanuel Vadot MICVDD-supply = <®_carrier_1p8v>; 178ae5de77eSEmmanuel Vadot }; 179ae5de77eSEmmanuel Vadot 180ae5de77eSEmmanuel Vadot /* On-Carrier Temperature Sensor */ 181ae5de77eSEmmanuel Vadot temperature-sensor@4f { 182ae5de77eSEmmanuel Vadot compatible = "ti,tmp1075"; 183ae5de77eSEmmanuel Vadot reg = <0x4f>; 184ae5de77eSEmmanuel Vadot }; 185ae5de77eSEmmanuel Vadot 186ae5de77eSEmmanuel Vadot /* On-Carrier EEPROM */ 187ae5de77eSEmmanuel Vadot eeprom@57 { 188ae5de77eSEmmanuel Vadot compatible = "st,24c02", "atmel,24c02"; 189ae5de77eSEmmanuel Vadot reg = <0x57>; 190ae5de77eSEmmanuel Vadot pagesize = <16>; 191ae5de77eSEmmanuel Vadot }; 192ae5de77eSEmmanuel Vadot}; 193ae5de77eSEmmanuel Vadot 194ae5de77eSEmmanuel Vadot/* SMARC I2C_CAM1 */ 195ae5de77eSEmmanuel Vadot&i2c5 { 196ae5de77eSEmmanuel Vadot status = "okay"; 197ae5de77eSEmmanuel Vadot}; 198ae5de77eSEmmanuel Vadot 199ae5de77eSEmmanuel Vadot/* SMARC I2C_PM */ 200ae5de77eSEmmanuel Vadot&i2c6 { 201ae5de77eSEmmanuel Vadot clock-frequency = <100000>; 202ae5de77eSEmmanuel Vadot status = "okay"; 203ae5de77eSEmmanuel Vadot 204ae5de77eSEmmanuel Vadot /* Fan controller */ 205ae5de77eSEmmanuel Vadot fan_controller: fan@18 { 206ae5de77eSEmmanuel Vadot compatible = "ti,amc6821"; 207ae5de77eSEmmanuel Vadot reg = <0x18>; 208ae5de77eSEmmanuel Vadot #pwm-cells = <2>; 209ae5de77eSEmmanuel Vadot 210ae5de77eSEmmanuel Vadot fan { 211*833e5d42SEmmanuel Vadot cooling-levels = <255>; 212ae5de77eSEmmanuel Vadot pwms = <&fan_controller 40000 PWM_POLARITY_INVERTED>; 213ae5de77eSEmmanuel Vadot }; 214ae5de77eSEmmanuel Vadot }; 215ae5de77eSEmmanuel Vadot 216ae5de77eSEmmanuel Vadot /* Current measurement into module VDD */ 217ae5de77eSEmmanuel Vadot hwmon@40 { 218ae5de77eSEmmanuel Vadot compatible = "ti,ina226"; 219ae5de77eSEmmanuel Vadot reg = <0x40>; 220ae5de77eSEmmanuel Vadot shunt-resistor = <5000>; 221ae5de77eSEmmanuel Vadot }; 222ae5de77eSEmmanuel Vadot}; 223ae5de77eSEmmanuel Vadot 224ae5de77eSEmmanuel Vadot&lcdif3 { 225ae5de77eSEmmanuel Vadot status = "okay"; 226ae5de77eSEmmanuel Vadot}; 227ae5de77eSEmmanuel Vadot 228ae5de77eSEmmanuel Vadot/* SMARC PCIE_A, M2 Key B */ 229ae5de77eSEmmanuel Vadot&pcie { 230ae5de77eSEmmanuel Vadot status = "okay"; 231ae5de77eSEmmanuel Vadot}; 232ae5de77eSEmmanuel Vadot 233ae5de77eSEmmanuel Vadot&pcie_phy { 234ae5de77eSEmmanuel Vadot status = "okay"; 235ae5de77eSEmmanuel Vadot}; 236ae5de77eSEmmanuel Vadot 237ae5de77eSEmmanuel Vadot/* SMARC LCD1_BKLT_PWM */ 238ae5de77eSEmmanuel Vadot&pwm1 { 239ae5de77eSEmmanuel Vadot status = "okay"; 240ae5de77eSEmmanuel Vadot}; 241ae5de77eSEmmanuel Vadot 242ae5de77eSEmmanuel Vadot/* SMARC LCD0_BKLT_PWM */ 243ae5de77eSEmmanuel Vadot&pwm2 { 244ae5de77eSEmmanuel Vadot status = "okay"; 245ae5de77eSEmmanuel Vadot}; 246ae5de77eSEmmanuel Vadot 247ae5de77eSEmmanuel Vadot/* SMARC I2S0 */ 248ae5de77eSEmmanuel Vadot&sai1 { 249ae5de77eSEmmanuel Vadot assigned-clocks = <&clk IMX8MP_CLK_SAI1>; 250ae5de77eSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 251ae5de77eSEmmanuel Vadot assigned-clock-rates = <24576000>; 252ae5de77eSEmmanuel Vadot fsl,sai-mclk-direction-output; 253ae5de77eSEmmanuel Vadot status = "okay"; 254ae5de77eSEmmanuel Vadot}; 255ae5de77eSEmmanuel Vadot 256ae5de77eSEmmanuel Vadot/* SMARC HDMI Audio */ 257ae5de77eSEmmanuel Vadot&sound_hdmi { 258ae5de77eSEmmanuel Vadot status = "okay"; 259ae5de77eSEmmanuel Vadot}; 260ae5de77eSEmmanuel Vadot 261ae5de77eSEmmanuel Vadot/* SMARC SER0, RS485. Optional M.2 KEY E */ 262ae5de77eSEmmanuel Vadot&uart1 { 263ae5de77eSEmmanuel Vadot linux,rs485-enabled-at-boot-time; 264ae5de77eSEmmanuel Vadot rs485-rts-active-low; 265ae5de77eSEmmanuel Vadot rs485-rx-during-tx; 266ae5de77eSEmmanuel Vadot status = "okay"; 267ae5de77eSEmmanuel Vadot}; 268ae5de77eSEmmanuel Vadot 269ae5de77eSEmmanuel Vadot/* SMARC SER2 */ 270ae5de77eSEmmanuel Vadot&uart2 { 271ae5de77eSEmmanuel Vadot status = "okay"; 272ae5de77eSEmmanuel Vadot}; 273ae5de77eSEmmanuel Vadot 274ae5de77eSEmmanuel Vadot/* SMARC SER1, used as the Linux Console */ 275ae5de77eSEmmanuel Vadot&uart4 { 276ae5de77eSEmmanuel Vadot status = "okay"; 277ae5de77eSEmmanuel Vadot}; 278ae5de77eSEmmanuel Vadot 279ae5de77eSEmmanuel Vadot/* SMARC USB0 */ 280ae5de77eSEmmanuel Vadot&usb3_0 { 281ae5de77eSEmmanuel Vadot status = "okay"; 282ae5de77eSEmmanuel Vadot}; 283ae5de77eSEmmanuel Vadot 284ae5de77eSEmmanuel Vadot/* SMARC USB1..4 */ 285ae5de77eSEmmanuel Vadot&usb3_1 { 286ae5de77eSEmmanuel Vadot status = "okay"; 287ae5de77eSEmmanuel Vadot}; 288ae5de77eSEmmanuel Vadot 289ae5de77eSEmmanuel Vadot&usb3_phy0 { 290ae5de77eSEmmanuel Vadot status = "okay"; 291ae5de77eSEmmanuel Vadot}; 292ae5de77eSEmmanuel Vadot 293ae5de77eSEmmanuel Vadot&usb3_phy1 { 294ae5de77eSEmmanuel Vadot status = "okay"; 295ae5de77eSEmmanuel Vadot}; 296ae5de77eSEmmanuel Vadot 297ae5de77eSEmmanuel Vadot/* SMARC SDIO */ 298ae5de77eSEmmanuel Vadot&usdhc2 { 299ae5de77eSEmmanuel Vadot status = "okay"; 300ae5de77eSEmmanuel Vadot}; 301