1// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) 2/* 3 * Copyright (c) 2019-2026 TQ-Systems GmbH <linux@ew.tq-group.com>, 4 * D-82229 Seefeld, Germany. 5 * Author: Alexander Stein 6 */ 7 8#include <dt-bindings/firmware/imx/rsrc.h> 9#include <dt-bindings/gpio/gpio.h> 10#include <dt-bindings/thermal/thermal.h> 11 12#include "imx8qm.dtsi" 13 14/ { 15 model = "TQ-Systems i.MX8QM TQMa8QM"; 16 compatible = "tq,imx8qm-tqma8qm", "fsl,imx8qm"; 17 18 /* Due to missing workaround for ERR050104 */ 19 cpus { 20 /delete-node/ cpu-map; 21 /delete-node/ cpu@100; 22 /delete-node/ cpu@101; 23 }; 24 25 memory@80000000 { 26 device_type = "memory"; 27 /* 28 * DRAM base addr, size : 1024 MiB DRAM 29 * should be corrected by bootloader 30 */ 31 reg = <0x00000000 0x80000000 0 0x40000000>; 32 }; 33 34 reg_tqma8x_v3v3: regulator-tqma8x-v3v3 { 35 compatible = "regulator-fixed"; 36 regulator-name = "V_3V3"; 37 regulator-min-microvolt = <3300000>; 38 regulator-max-microvolt = <3300000>; 39 regulator-always-on; 40 }; 41 42 /* SW7 controlled by SCU */ 43 reg_1v8_io1: regulator-v1v8-io1 { 44 compatible = "regulator-fixed"; 45 regulator-name = "V_1V8_IO1"; 46 regulator-min-microvolt = <1800000>; 47 regulator-max-microvolt = <1800000>; 48 regulator-always-on; 49 }; 50 51 /* LDO4 controlled by SCU */ 52 reg_3v3_emmc: regulator-v3v3-emmc { 53 compatible = "regulator-fixed"; 54 regulator-name = "V_3V3_EMMC"; 55 regulator-min-microvolt = <3300000>; 56 regulator-max-microvolt = <3300000>; 57 regulator-always-on; 58 }; 59}; 60 61&acm { 62 status = "okay"; 63}; 64 65&adc0 { 66 pinctrl-names = "default"; 67 pinctrl-0 = <&pinctrl_adc0>; 68 vref-supply = <®_vref_v1v8>; 69 status = "okay"; 70}; 71 72/* TQMa8QM only uses industrial grade, reduce trip points accordingly */ 73&cpu_alert0 { 74 temperature = <95000>; 75}; 76 77&cpu_crit0 { 78 temperature = <100000>; 79}; 80 81&cpu_alert1 { 82 temperature = <95000>; 83}; 84 85&cpu_crit1 { 86 temperature = <100000>; 87}; 88 89&gpu_alert0 { 90 temperature = <95000>; 91}; 92 93&gpu_crit0 { 94 temperature = <100000>; 95}; 96 97&gpu_alert1 { 98 temperature = <95000>; 99}; 100 101&gpu_crit1 { 102 temperature = <100000>; 103}; 104 105&drc_alert0 { 106 temperature = <95000>; 107}; 108 109&drc_crit0 { 110 temperature = <100000>; 111}; 112/* end of temperature grade adjustments */ 113 114&flexspi0 { 115 pinctrl-names = "default"; 116 pinctrl-0 = <&pinctrl_flexspi0>; 117 status = "okay"; 118 119 flash0: flash@0 { 120 compatible = "jedec,spi-nor"; 121 reg = <0>; 122 spi-max-frequency = <66000000>; 123 spi-tx-bus-width = <4>; 124 spi-rx-bus-width = <4>; 125 vcc-supply = <®_1v8_io1>; 126 127 partitions { 128 compatible = "fixed-partitions"; 129 #address-cells = <1>; 130 #size-cells = <1>; 131 }; 132 }; 133}; 134 135&i2c1 { 136 clock-frequency = <400000>; 137 pinctrl-names = "default", "gpio"; 138 pinctrl-0 = <&pinctrl_lpi2c1>; 139 pinctrl-1 = <&pinctrl_lpi2c1gpio>; 140 scl-gpios = <&lsio_gpio0 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 141 sda-gpios = <&lsio_gpio0 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 142 status = "okay"; 143 144 se97: temperature-sensor@1b { 145 compatible = "nxp,se97b", "jedec,jc-42.4-temp"; 146 reg = <0x1b>; 147 }; 148 149 pcf85063: rtc@51 { 150 compatible = "nxp,pcf85063a"; 151 reg = <0x51>; 152 quartz-load-femtofarads = <7000>; 153 }; 154 155 at24c02: eeprom@53 { 156 compatible = "nxp,se97b", "atmel,24c02"; 157 reg = <0x53>; 158 pagesize = <16>; 159 read-only; 160 vcc-supply = <®_tqma8x_v3v3>; 161 }; 162 163 m24c64: eeprom@57 { 164 compatible = "atmel,24c64"; 165 reg = <0x57>; 166 pagesize = <32>; 167 vcc-supply = <®_tqma8x_v3v3>; 168 }; 169}; 170 171&mu_m0 { 172 status = "okay"; 173}; 174 175&mu1_m0 { 176 status = "okay"; 177}; 178 179&mu2_m0 { 180 status = "okay"; 181}; 182 183&thermal_zones { 184 /delete-node/ cpu1-thermal; 185 186 pmic0-thermal { 187 polling-delay-passive = <250>; 188 polling-delay = <2000>; 189 thermal-sensors = <&tsens IMX_SC_R_PMIC_0>; 190 191 trips { 192 pmic_alert0: trip0 { 193 temperature = <110000>; 194 hysteresis = <2000>; 195 type = "passive"; 196 }; 197 pmic_crit0: trip1 { 198 temperature = <125000>; 199 hysteresis = <2000>; 200 type = "critical"; 201 }; 202 }; 203 204 cooling-maps { 205 map0 { 206 trip = <&pmic_alert0>; 207 cooling-device = 208 <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 209 <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 210 <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 211 <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 212 }; 213 }; 214 }; 215}; 216 217&usdhc1 { 218 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 219 pinctrl-0 = <&pinctrl_usdhc1>; 220 pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 221 pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 222 bus-width = <8>; 223 vmmc-supply = <®_3v3_emmc>; 224 vqmmc-supply = <®_1v8_io1>; 225 no-sd; 226 no-sdio; 227 non-removable; 228 status = "okay"; 229}; 230 231&vpu { 232 compatible = "nxp,imx8qm-vpu"; 233 status = "okay"; 234}; 235 236&vpu_core0 { 237 memory-region = <&decoder_boot>, <&decoder_rpc>; 238 status = "okay"; 239}; 240 241&vpu_core1 { 242 memory-region = <&encoder1_boot>, <&encoder1_rpc>; 243 status = "okay"; 244}; 245 246&vpu_core2 { 247 memory-region = <&encoder2_boot>, <&encoder2_rpc>; 248 status = "okay"; 249}; 250 251&iomuxc { 252 pinctrl_lpi2c1: lpi2c1grp { 253 fsl,pins = <IMX8QM_GPT0_CAPTURE_DMA_I2C1_SDA 0x0600004d>, 254 <IMX8QM_GPT0_CLK_DMA_I2C1_SCL 0x0600004d>; 255 }; 256 257 pinctrl_lpi2c1gpio: lpi2c1gpiogrp { 258 fsl,pins = <IMX8QM_GPT0_CAPTURE_LSIO_GPIO0_IO15 0x0600004d>, 259 <IMX8QM_GPT0_CLK_LSIO_GPIO0_IO14 0x0600004d>; 260 }; 261 262 pinctrl_usdhc1: usdhc1grp { 263 fsl,pins = <IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK 0x06000041>, 264 <IMX8QM_EMMC0_CMD_CONN_EMMC0_CMD 0x00000021>, 265 <IMX8QM_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000021>, 266 <IMX8QM_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000021>, 267 <IMX8QM_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000021>, 268 <IMX8QM_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000021>, 269 <IMX8QM_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000021>, 270 <IMX8QM_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000021>, 271 <IMX8QM_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000021>, 272 <IMX8QM_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000021>, 273 <IMX8QM_EMMC0_STROBE_CONN_EMMC0_STROBE 0x00000041>, 274 <IMX8QM_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000021>; 275 }; 276 277 pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 278 fsl,pins = <IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK 0x06000040>, 279 <IMX8QM_EMMC0_CMD_CONN_EMMC0_CMD 0x00000021>, 280 <IMX8QM_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000021>, 281 <IMX8QM_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000021>, 282 <IMX8QM_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000021>, 283 <IMX8QM_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000021>, 284 <IMX8QM_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000021>, 285 <IMX8QM_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000021>, 286 <IMX8QM_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000021>, 287 <IMX8QM_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000021>, 288 <IMX8QM_EMMC0_STROBE_CONN_EMMC0_STROBE 0x00000041>, 289 <IMX8QM_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000021>; 290 }; 291 292 pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 293 fsl,pins = <IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK 0x06000040>, 294 <IMX8QM_EMMC0_CMD_CONN_EMMC0_CMD 0x00000021>, 295 <IMX8QM_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000021>, 296 <IMX8QM_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000021>, 297 <IMX8QM_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000021>, 298 <IMX8QM_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000021>, 299 <IMX8QM_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000021>, 300 <IMX8QM_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000021>, 301 <IMX8QM_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000021>, 302 <IMX8QM_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000021>, 303 <IMX8QM_EMMC0_STROBE_CONN_EMMC0_STROBE 0x00000041>, 304 <IMX8QM_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000021>; 305 }; 306 307 pinctrl_flexspi0: flexspi0grp { 308 fsl,pins = <IMX8QM_QSPI0A_DATA0_LSIO_QSPI0A_DATA0 0x0000004d>, 309 <IMX8QM_QSPI0A_DATA1_LSIO_QSPI0A_DATA1 0x0000004d>, 310 <IMX8QM_QSPI0A_DATA2_LSIO_QSPI0A_DATA2 0x0000004d>, 311 <IMX8QM_QSPI0A_DATA3_LSIO_QSPI0A_DATA3 0x0000004d>, 312 <IMX8QM_QSPI0A_DQS_LSIO_QSPI0A_DQS 0x0000004d>, 313 <IMX8QM_QSPI0A_SS0_B_LSIO_QSPI0A_SS0_B 0x0000004d>, 314 <IMX8QM_QSPI0A_SS1_B_LSIO_QSPI0A_SS1_B 0x0000004d>, 315 <IMX8QM_QSPI0A_SCLK_LSIO_QSPI0A_SCLK 0x0000004d>, 316 <IMX8QM_QSPI0B_SCLK_LSIO_QSPI0B_SCLK 0x0000004d>, 317 <IMX8QM_QSPI0B_DATA0_LSIO_QSPI0B_DATA0 0x0000004d>, 318 <IMX8QM_QSPI0B_DATA1_LSIO_QSPI0B_DATA1 0x0000004d>, 319 <IMX8QM_QSPI0B_DATA2_LSIO_QSPI0B_DATA2 0x0000004d>, 320 <IMX8QM_QSPI0B_DATA3_LSIO_QSPI0B_DATA3 0x0000004d>, 321 <IMX8QM_QSPI0B_DQS_LSIO_QSPI0B_DQS 0x0000004d>, 322 <IMX8QM_QSPI0B_SS0_B_LSIO_QSPI0B_SS0_B 0x0000004d>, 323 <IMX8QM_QSPI0B_SS1_B_LSIO_QSPI0B_SS1_B 0x0000004d>; 324 }; 325}; 326