1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2/* 3 * Copyright 2025-2026 TQ-Systems GmbH <linux@ew.tq-group.com>, 4 * D-82229 Seefeld, Germany. 5 * Author: Paul Gerber 6 */ 7 8/dts-v1/; 9 10#include <dt-bindings/leds/common.h> 11#include "imx8mp-tqma8mpqs.dtsi" 12 13/ { 14 model = "TQ-Systems i.MX8MPlus TQMa8MPxS on MB-SMARC-2"; 15 compatible = "tq,imx8mp-tqma8mpqs-mb-smarc-2", "tq,imx8mp-tqma8mpqs", "fsl,imx8mp"; 16 chassis-type = "embedded"; 17 18 chosen { 19 stdout-path = &uart3; 20 }; 21 22 aliases { 23 ethernet0 = &eqos; 24 ethernet1 = &fec; 25 mmc0 = &usdhc3; 26 mmc1 = &usdhc2; 27 rtc0 = &pcf85063; 28 rtc1 = &snvs_rtc; 29 spi0 = &flexspi; 30 spi1 = &ecspi1; 31 spi2 = &ecspi2; 32 spi3 = &ecspi3; 33 }; 34 35 backlight_lvds0: backlight-lvds0 { 36 compatible = "pwm-backlight"; 37 pwms = <&pwm3 0 100000 0>; 38 brightness-levels = <0 4 8 16 32 64 128 255>; 39 default-brightness-level = <7>; 40 enable-gpios = <&expander0 0 GPIO_ACTIVE_HIGH>; 41 power-supply = <®_12v0>; 42 status = "disabled"; 43 }; 44 45 backlight_lvds1: backlight-lvds1 { 46 compatible = "pwm-backlight"; 47 pwms = <&pwm2 0 100000 0>; 48 brightness-levels = <0 4 8 16 32 64 128 255>; 49 default-brightness-level = <7>; 50 enable-gpios = <&expander0 2 GPIO_ACTIVE_HIGH>; 51 power-supply = <®_12v0>; 52 status = "disabled"; 53 }; 54 55 hdmi-connector { 56 compatible = "hdmi-connector"; 57 label = "X6"; 58 type = "a"; 59 60 port { 61 hdmi_connector_in: endpoint { 62 remote-endpoint = <&hdmi_tx_out>; 63 }; 64 }; 65 }; 66 67 panel_lvds0: panel-lvds0 { 68 /* 69 * Display is not fixed, so compatible has to be added from 70 * DT overlay 71 */ 72 backlight = <&backlight_lvds0>; 73 power-supply = <®_lvds0>; 74 status = "disabled"; 75 76 port { 77 panel_in_lvds0: endpoint { 78 remote-endpoint = <&ldb_lvds_ch0>; 79 }; 80 }; 81 }; 82 83 panel_lvds1: panel-lvds1 { 84 /* 85 * Display is not fixed, so compatible has to be added from 86 * DT overlay 87 */ 88 backlight = <&backlight_lvds1>; 89 power-supply = <®_lvds1>; 90 status = "disabled"; 91 92 port { 93 panel_in_lvds1: endpoint { 94 remote-endpoint = <&ldb_lvds_ch1>; 95 }; 96 }; 97 }; 98 99 reg_1v8: regulator-1v8 { 100 compatible = "regulator-fixed"; 101 regulator-name = "1V8"; 102 regulator-min-microvolt = <1800000>; 103 regulator-max-microvolt = <1800000>; 104 regulator-always-on; 105 }; 106 107 reg_3v3: regulator-3v3 { 108 compatible = "regulator-fixed"; 109 regulator-name = "3V3"; 110 regulator-min-microvolt = <3300000>; 111 regulator-max-microvolt = <3300000>; 112 regulator-always-on; 113 }; 114 115 reg_12v0: regulator-12v0 { 116 compatible = "regulator-fixed"; 117 regulator-name = "12V0"; 118 regulator-min-microvolt = <12000000>; 119 regulator-max-microvolt = <12000000>; 120 regulator-always-on; 121 }; 122 123 reg_lvds0: regulator-lvds0 { 124 compatible = "regulator-fixed"; 125 regulator-name = "LCD0_VDD_EN"; 126 regulator-min-microvolt = <3300000>; 127 regulator-max-microvolt = <3300000>; 128 gpio = <&expander0 1 GPIO_ACTIVE_HIGH>; 129 enable-active-high; 130 }; 131 132 reg_lvds1: regulator-lvds1 { 133 compatible = "regulator-fixed"; 134 regulator-name = "LCD1_VDD_EN"; 135 regulator-min-microvolt = <3300000>; 136 regulator-max-microvolt = <3300000>; 137 gpio = <&expander0 3 GPIO_ACTIVE_HIGH>; 138 enable-active-high; 139 }; 140 141 reserved-memory { 142 #address-cells = <2>; 143 #size-cells = <2>; 144 ranges; 145 146 /* global autoconfigured region for contiguous allocations */ 147 linux,cma { 148 compatible = "shared-dma-pool"; 149 reusable; 150 size = <0 0x38000000>; 151 alloc-ranges = <0 0x40000000 0 0x78000000>; 152 linux,cma-default; 153 }; 154 }; 155 156 sound { 157 compatible = "fsl,imx-audio-tlv320aic32x4"; 158 model = "tqm-tlv320aic32"; 159 audio-asrc = <&easrc>; 160 audio-cpu = <&sai5>; 161 audio-codec = <&tlv320aic3x04>; 162 audio-routing = 163 "IN3_L", "Mic Jack", 164 "Mic Jack", "Mic Bias", 165 "IN1_L", "Line In Jack", 166 "IN1_R", "Line In Jack", 167 "Line Out Jack", "LOL", 168 "Line Out Jack", "LOR"; 169 }; 170 171 usb-connector { 172 compatible = "gpio-usb-b-connector", "usb-b-connector"; 173 type = "micro"; 174 label = "X4"; 175 pinctrl-names = "default"; 176 pinctrl-0 = <&pinctrl_usbcon0>; 177 id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; 178 179 port { 180 usb_dr_connector: endpoint { 181 remote-endpoint = <&usb3_dwc>; 182 }; 183 }; 184 }; 185}; 186 187&easrc { 188 status = "okay"; 189}; 190 191&ecspi1 { 192 status = "okay"; 193}; 194 195&eqos { 196 status = "okay"; 197}; 198 199ðphy0 { 200 leds { 201 #address-cells = <1>; 202 #size-cells = <0>; 203 204 led@1 { 205 reg = <1>; 206 color = <LED_COLOR_ID_GREEN>; 207 function = LED_FUNCTION_LAN; 208 function-enumerator = <0>; 209 default-state = "keep"; 210 }; 211 212 led@2 { 213 reg = <2>; 214 color = <LED_COLOR_ID_AMBER>; 215 function = LED_FUNCTION_LAN; 216 function-enumerator = <0>; 217 default-state = "keep"; 218 }; 219 }; 220}; 221 222ðphy3 { 223 leds { 224 #address-cells = <1>; 225 #size-cells = <0>; 226 227 led@1 { 228 reg = <1>; 229 color = <LED_COLOR_ID_GREEN>; 230 function = LED_FUNCTION_LAN; 231 function-enumerator = <0>; 232 default-state = "keep"; 233 }; 234 235 led@2 { 236 reg = <2>; 237 color = <LED_COLOR_ID_AMBER>; 238 function = LED_FUNCTION_LAN; 239 function-enumerator = <0>; 240 default-state = "keep"; 241 }; 242 }; 243}; 244 245&fec { 246 status = "okay"; 247}; 248 249&flexcan1 { 250 xceiver-supply = <®_3v3>; 251 status = "okay"; 252}; 253 254&flexcan2 { 255 xceiver-supply = <®_3v3>; 256 status = "okay"; 257}; 258 259&hdmi_pvi { 260 status = "okay"; 261}; 262 263&hdmi_tx { 264 status = "okay"; 265 266 ports { 267 port@1 { 268 hdmi_tx_out: endpoint { 269 remote-endpoint = <&hdmi_connector_in>; 270 }; 271 }; 272 }; 273}; 274 275&hdmi_tx_phy { 276 status = "okay"; 277}; 278 279&i2c1 { 280 tlv320aic3x04: audio-codec@18 { 281 compatible = "ti,tlv320aic32x4"; 282 reg = <0x18>; 283 clock-names = "mclk"; 284 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1>; 285 iov-supply = <®_1v8>; 286 ldoin-supply = <®_3v3>; 287 assigned-clocks = <&clk IMX8MP_CLK_SAI5>; 288 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 289 assigned-clock-rates = <12288000>; 290 }; 291 292 eeprom2: eeprom@57 { 293 compatible = "atmel,24c32"; 294 reg = <0x57>; 295 pagesize = <32>; 296 vcc-supply = <®_3v3>; 297 }; 298}; 299 300&ldb_lvds_ch0 { 301 remote-endpoint = <&panel_in_lvds0>; 302}; 303 304&ldb_lvds_ch1 { 305 remote-endpoint = <&panel_in_lvds1>; 306}; 307 308&lcdif1 { 309 status = "okay"; 310}; 311 312&lcdif3 { 313 status = "okay"; 314}; 315 316&pcie_phy { 317 fsl,clkreq-unsupported; 318 status = "okay"; 319}; 320 321&pcie { 322 status = "okay"; 323}; 324 325®_usdhc2_vmmc { 326 startup-delay-us = <100>; 327 off-on-delay-us = <200000>; 328 status = "okay"; 329}; 330 331®_usdhc2_vqmmc { 332 status = "okay"; 333}; 334 335&sai3 { 336 status = "okay"; 337}; 338 339&sai5 { 340 status = "okay"; 341}; 342 343&snvs_pwrkey { 344 status = "okay"; 345}; 346 347&uart1 { 348 status = "okay"; 349}; 350 351&uart2 { 352 status = "okay"; 353}; 354 355&uart4 { 356 status = "okay"; 357}; 358 359&usb3_0 { 360 status = "okay"; 361}; 362 363&usb_dwc3_0 { 364 status = "okay"; 365 366 port { 367 usb3_dwc: endpoint { 368 remote-endpoint = <&usb_dr_connector>; 369 }; 370 }; 371}; 372 373&usdhc2 { 374 cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; 375 wp-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>; 376 vmmc-supply = <®_usdhc2_vmmc>; 377 no-mmc; 378 no-sdio; 379 status = "okay"; 380}; 381