1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * Copyright (c) 2025, Arduino SRL 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/leds/common.h> 9#include "agatti.dtsi" 10#include "pm4125.dtsi" 11 12/delete-node/ &cont_splash_memory; 13 14/ { 15 model = "Arduino UnoQ"; 16 compatible = "arduino,imola", "qcom,qrb2210", "qcom,qcm2290"; 17 chassis-type = "embedded"; 18 19 aliases { 20 serial0 = &uart4; 21 serial1 = &uart2; 22 serial2 = &uart3; 23 sdhc1 = &sdhc_1; 24 }; 25 26 chosen { 27 stdout-path = "serial0:115200n8"; 28 }; 29 30 gpio-keys { 31 compatible = "gpio-keys"; 32 label = "gpio-keys"; 33 pinctrl-0 = <&key_volp_n>, <&key_vold_n>; 34 pinctrl-names = "default"; 35 36 key-volume-up { 37 label = "Volume Up"; 38 linux,code = <KEY_VOLUMEUP>; 39 gpios = <&tlmm 96 GPIO_ACTIVE_LOW>; 40 debounce-interval = <15>; 41 linux,can-disable; 42 wakeup-source; 43 }; 44 45 key-volume-down { 46 label = "Volume Down"; 47 linux,code = <KEY_VOLUMEDOWN>; 48 gpios = <&tlmm 36 GPIO_ACTIVE_LOW>; 49 debounce-interval = <15>; 50 linux,can-disable; 51 wakeup-source; 52 }; 53 }; 54 55 leds: leds { 56 compatible = "gpio-leds"; 57 58 led-bt { 59 label = "unoq:bt-blue2"; 60 function = LED_FUNCTION_BLUETOOTH; 61 color = <LED_COLOR_ID_BLUE>; 62 gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>; 63 linux,default-trigger = "bluetooth-power"; 64 default-state = "off"; 65 }; 66 67 led-panic { 68 label = "unoq:panic-red2"; 69 function = LED_FUNCTION_INDICATOR; 70 color = <LED_COLOR_ID_RED>; 71 gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>; 72 linux,default-trigger = "none"; 73 default-state = "off"; 74 panic-indicator; 75 }; 76 77 led-wlan { 78 label = "unoq:wlan-green2"; 79 function = LED_FUNCTION_WLAN; 80 color = <LED_COLOR_ID_GREEN>; 81 gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>; 82 linux,default-trigger = "phy0tx"; 83 default-state = "off"; 84 }; 85 86 ledb: led-user-blue { 87 label = "unoq:user-blue1"; 88 gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>; 89 color = <LED_COLOR_ID_BLUE>; 90 }; 91 92 ledg: led-user-green { 93 label = "unoq:user-green1"; 94 gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>; 95 color = <LED_COLOR_ID_GREEN>; 96 }; 97 98 ledr: led-user-red { 99 label = "unoq:user-red1"; 100 gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>; 101 color = <LED_COLOR_ID_RED>; 102 }; 103 }; 104 105 multi-led { 106 compatible = "leds-group-multicolor"; 107 color = <LED_COLOR_ID_RGB>; 108 function = LED_FUNCTION_INDICATOR; 109 leds = <&ledr>, <&ledg>, <&ledb>; 110 }; 111 112 /* PM4125 charger out, supplied by VBAT */ 113 vph_pwr: regulator-vph-pwr { 114 compatible = "regulator-fixed"; 115 regulator-name = "vph_pwr"; 116 regulator-min-microvolt = <3700000>; 117 regulator-max-microvolt = <3700000>; 118 regulator-always-on; 119 regulator-boot-on; 120 }; 121}; 122 123&gpi_dma0 { 124 status = "okay"; 125}; 126 127&gpu { 128 status = "okay"; 129}; 130 131&gpu_zap_shader { 132 firmware-name = "qcom/qcm2290/a702_zap.mbn"; 133}; 134 135&i2c0 { 136 clock-frequency = <100000>; 137 138 status = "okay"; 139}; 140 141&i2c1 { 142 clock-frequency = <100000>; 143 144 status = "okay"; 145}; 146 147&pm4125_vbus { 148 regulator-min-microamp = <500000>; 149 regulator-max-microamp = <500000>; 150 151 status = "okay"; 152}; 153 154&qupv3_id_0 { 155 status = "okay"; 156}; 157 158&remoteproc_adsp { 159 firmware-name = "qcom/qcm2290/adsp.mbn"; 160 161 status = "okay"; 162}; 163 164&remoteproc_mpss { 165 firmware-name = "qcom/qcm2290/modem.mbn"; 166 167 status = "okay"; 168}; 169 170&rpm_requests { 171 regulators { 172 compatible = "qcom,rpm-pm2250-regulators"; 173 vdd_s3-supply = <&vph_pwr>; 174 vdd_s4-supply = <&vph_pwr>; 175 vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm4125_s3>; 176 vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>; 177 vdd_l13_l14_l15_l16-supply = <&pm4125_s4>; 178 179 pm4125_s3: s3 { 180 /* 0.4V-1.6625V -> 1.3V (Power tree requirements) */ 181 regulator-min-microvolt = <1352000>; 182 regulator-max-microvolt = <1352000>; 183 regulator-boot-on; 184 }; 185 186 pm4125_s4: s4 { 187 /* 1.2V-2.35V -> 2.05V (Power tree requirements) */ 188 regulator-min-microvolt = <2072000>; 189 regulator-max-microvolt = <2072000>; 190 regulator-boot-on; 191 }; 192 193 pm4125_l2: l2 { 194 /* LPDDR4X VDD2 */ 195 regulator-min-microvolt = <1136000>; 196 regulator-max-microvolt = <1136000>; 197 regulator-always-on; 198 regulator-boot-on; 199 }; 200 201 pm4125_l3: l3 { 202 /* LPDDR4X VDDQ */ 203 regulator-min-microvolt = <616000>; 204 regulator-max-microvolt = <616000>; 205 regulator-always-on; 206 regulator-boot-on; 207 }; 208 209 pm4125_l4: l4 { 210 /* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */ 211 regulator-min-microvolt = <1800000>; 212 regulator-max-microvolt = <2700000>; 213 regulator-allow-set-load; 214 }; 215 216 pm4125_l5: l5 { 217 /* CSI/DSI */ 218 regulator-min-microvolt = <1232000>; 219 regulator-max-microvolt = <1232000>; 220 regulator-allow-set-load; 221 regulator-boot-on; 222 }; 223 224 pm4125_l6: l6 { 225 /* DRAM PLL */ 226 regulator-min-microvolt = <928000>; 227 regulator-max-microvolt = <928000>; 228 regulator-always-on; 229 regulator-boot-on; 230 }; 231 232 pm4125_l7: l7 { 233 /* Wi-Fi CX */ 234 regulator-min-microvolt = <664000>; 235 regulator-max-microvolt = <664000>; 236 }; 237 238 pm4125_l10: l10 { 239 /* Wi-Fi RFA */ 240 regulator-min-microvolt = <1304000>; 241 regulator-max-microvolt = <1304000>; 242 }; 243 244 pm4125_l11: l11 { 245 /* ANX7625 DVDD1P0V/AVDD1P0V */ 246 regulator-min-microvolt = <1000000>; 247 regulator-max-microvolt = <1000000>; 248 regulator-boot-on; 249 regulator-always-on; 250 }; 251 252 pm4125_l12: l12 { 253 /* USB PHYs */ 254 regulator-min-microvolt = <928000>; 255 regulator-max-microvolt = <928000>; 256 regulator-allow-set-load; 257 regulator-boot-on; 258 }; 259 260 pm4125_l13: l13 { 261 /* USB/QFPROM/PLLs */ 262 regulator-min-microvolt = <1800000>; 263 regulator-max-microvolt = <1800000>; 264 regulator-allow-set-load; 265 regulator-boot-on; 266 }; 267 268 pm4125_l14: l14 { 269 /* SDHCI1 EMMC VCCQ */ 270 regulator-min-microvolt = <1800000>; 271 regulator-max-microvolt = <1800000>; 272 regulator-allow-set-load; 273 /* Broken hardware, never turn it off! */ 274 regulator-always-on; 275 }; 276 277 pm4125_l15: l15 { 278 /* VDDIO */ 279 regulator-min-microvolt = <1800000>; 280 regulator-max-microvolt = <1800000>; 281 regulator-allow-set-load; 282 regulator-always-on; 283 regulator-boot-on; 284 }; 285 286 pm4125_l20: l20 { 287 /* SDHCI1 EMMC */ 288 regulator-min-microvolt = <2400000>; 289 regulator-max-microvolt = <3600000>; 290 regulator-allow-set-load; 291 }; 292 293 pm4125_l21: l21 { 294 /* USB HS */ 295 regulator-min-microvolt = <2960000>; 296 regulator-max-microvolt = <3300000>; 297 regulator-allow-set-load; 298 regulator-boot-on; 299 }; 300 301 pm4125_l22: l22 { 302 /* Wi-Fi VDD */ 303 regulator-min-microvolt = <3312000>; 304 regulator-max-microvolt = <3312000>; 305 }; 306 }; 307}; 308 309&sdhc_1 { 310 vmmc-supply = <&pm4125_l20>; 311 vqmmc-supply = <&pm4125_l14>; 312 pinctrl-0 = <&sdc1_state_on>; 313 pinctrl-1 = <&sdc1_state_off>; 314 pinctrl-names = "default", "sleep"; 315 mmc-hs400-1_8v; 316 mmc-hs200-1_8v; 317 non-removable; 318 supports-cqe; 319 no-sdio; 320 no-sd; 321 322 status = "okay"; 323}; 324 325&spi5 { 326 status = "okay"; 327 328 spidev@0 { 329 reg = <0>; 330 compatible = "arduino,unoq-mcu"; 331 pinctrl-0 = <&spidev_cs>; 332 pinctrl-names = "default"; 333 }; 334}; 335 336&tlmm { 337 spidev_cs: spidev-cs-state { 338 pins = "gpio17"; 339 function = "gpio"; 340 drive-strength = <16>; 341 }; 342 343 jmisc_gpio18: jmisc-gpio18-state { 344 pins = "gpio18"; 345 function = "gpio"; 346 drive-strength = <2>; 347 bias-pull-down; 348 }; 349 350 jmisc_gpio28: jmisc-gpio28-state { 351 pins = "gpio28"; 352 function = "gpio"; 353 drive-strength = <2>; 354 bias-pull-down; 355 }; 356 357 key_vold_n: key-vold-n-state { 358 pins = "gpio36"; 359 function = "gpio"; 360 bias-pull-up; 361 output-disable; 362 }; 363 364 key_volp_n: key-volp-n-state { 365 pins = "gpio96"; 366 function = "gpio"; 367 bias-pull-up; 368 output-disable; 369 }; 370 371 jmisc_gpio98: jmisc-gpio98-state { 372 pins = "gpio98"; 373 function = "gpio"; 374 drive-strength = <2>; 375 bias-pull-down; 376 }; 377 378 jmisc_gpio99: jmisc-gpio99-state { 379 pins = "gpio99"; 380 function = "gpio"; 381 drive-strength = <2>; 382 bias-pull-down; 383 }; 384 385 jmisc_gpio100: jmisc-gpio100-state { 386 pins = "gpio100"; 387 function = "gpio"; 388 drive-strength = <2>; 389 bias-pull-down; 390 }; 391 392 jmisc_gpio101: jmisc-gpio101-state { 393 pins = "gpio101"; 394 function = "gpio"; 395 drive-strength = <2>; 396 bias-pull-down; 397 }; 398}; 399 400&uart2 { 401 status = "okay"; 402}; 403 404/* UART connected to Bluetooth */ 405&uart3 { 406 status = "okay"; 407 408 bluetooth { 409 compatible = "qcom,wcn3988-bt"; 410 411 vddio-supply = <&pm4125_l15>; 412 vddxo-supply = <&pm4125_l13>; 413 vddrf-supply = <&pm4125_l10>; 414 vddch0-supply = <&pm4125_l22>; 415 enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>; 416 max-speed = <3000000>; 417 }; 418}; 419 420/* UART exposed in JCTL */ 421&uart4 { 422 compatible = "qcom,geni-debug-uart"; 423 424 status = "okay"; 425}; 426 427&usb { 428 status = "okay"; 429}; 430 431&usb_hsphy { 432 vdd-supply = <&pm4125_l12>; 433 vdda-pll-supply = <&pm4125_l13>; 434 vdda-phy-dpdm-supply = <&pm4125_l21>; 435 436 status = "okay"; 437}; 438 439&usb_qmpphy { 440 vdda-phy-supply = <&pm4125_l12>; 441 vdda-pll-supply = <&pm4125_l13>; 442 443 status = "okay"; 444}; 445 446&wifi { 447 vdd-0.8-cx-mx-supply = <&pm4125_l7>; 448 vdd-1.8-xo-supply = <&pm4125_l13>; 449 vdd-1.3-rfa-supply = <&pm4125_l10>; 450 vdd-3.3-ch0-supply = <&pm4125_l22>; 451 qcom,ath10k-calibration-variant = "ArduinoImola"; 452 firmware-name = "qcm2290"; 453 454 status = "okay"; 455}; 456 457&xo_board { 458 clock-frequency = <38400000>; 459}; 460