1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright 2018-2020 Purism SPC 4 */ 5 6/dts-v1/; 7 8#include "dt-bindings/input/input.h" 9#include <dt-bindings/interrupt-controller/irq.h> 10#include <dt-bindings/leds/common.h> 11#include "dt-bindings/pwm/pwm.h" 12#include "dt-bindings/usb/pd.h" 13#include "imx8mq.dtsi" 14 15/ { 16 model = "Purism Librem 5"; 17 compatible = "purism,librem5", "fsl,imx8mq"; 18 chassis-type = "handset"; 19 20 aliases { 21 rtc0 = &rtc; 22 rtc1 = &snvs_rtc; 23 }; 24 25 backlight_dsi: backlight-dsi { 26 compatible = "led-backlight"; 27 leds = <&led_backlight>; 28 brightness-levels = <255>; 29 default-brightness-level = <190>; 30 }; 31 32 pmic_osc: clock-pmic { 33 compatible = "fixed-clock"; 34 #clock-cells = <0>; 35 clock-frequency = <32768>; 36 clock-output-names = "pmic_osc"; 37 }; 38 39 chosen { 40 stdout-path = &uart1; 41 }; 42 43 gpio-keys { 44 compatible = "gpio-keys"; 45 pinctrl-names = "default"; 46 pinctrl-0 = <&pinctrl_keys>; 47 48 key-vol-down { 49 label = "VOL_DOWN"; 50 gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; 51 linux,code = <KEY_VOLUMEDOWN>; 52 debounce-interval = <50>; 53 }; 54 55 key-vol-up { 56 label = "VOL_UP"; 57 gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; 58 linux,code = <KEY_VOLUMEUP>; 59 debounce-interval = <50>; 60 }; 61 }; 62 63 led-controller { 64 compatible = "pwm-leds-multicolor"; 65 66 multi-led { 67 color = <LED_COLOR_ID_RGB>; 68 function = LED_FUNCTION_STATUS; 69 max-brightness = <248>; 70 71 led-0 { 72 color = <LED_COLOR_ID_BLUE>; 73 pwms = <&pwm2 0 50000 0>; 74 }; 75 76 led-1 { 77 color = <LED_COLOR_ID_GREEN>; 78 pwms = <&pwm4 0 50000 0>; 79 }; 80 81 led-2 { 82 color = <LED_COLOR_ID_RED>; 83 pwms = <&pwm3 0 50000 0>; 84 }; 85 }; 86 }; 87 88 reg_aud_1v8: regulator-audio-1v8 { 89 compatible = "regulator-fixed"; 90 pinctrl-names = "default"; 91 pinctrl-0 = <&pinctrl_audiopwr>; 92 regulator-name = "AUD_1V8"; 93 regulator-min-microvolt = <1800000>; 94 regulator-max-microvolt = <1800000>; 95 gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>; 96 enable-active-high; 97 regulator-always-on; 98 }; 99 100 reg_mic_2v4: regulator-mic-2v4 { 101 compatible = "regulator-fixed"; 102 regulator-name = "MIC_2V4"; 103 regulator-min-microvolt = <2400000>; 104 regulator-max-microvolt = <2400000>; 105 vin-supply = <®_aud_1v8>; 106 }; 107 108 /* 109 * the pinctrl for reg_csi_1v8 and reg_vcam_1v8 is added to the PMIC 110 * since we can't have it twice in the 2 different regulator nodes. 111 */ 112 reg_csi_1v8: regulator-csi-1v8 { 113 compatible = "regulator-fixed"; 114 regulator-name = "CAMERA_VDDIO_1V8"; 115 regulator-min-microvolt = <1800000>; 116 regulator-max-microvolt = <1800000>; 117 vin-supply = <®_vdd_3v3>; 118 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>; 119 enable-active-high; 120 }; 121 122 /* controlled by the CAMERA_POWER_KEY HKS */ 123 reg_vcam_1v2: regulator-vcam-1v2 { 124 compatible = "regulator-fixed"; 125 regulator-name = "CAMERA_VDDD_1V2"; 126 regulator-min-microvolt = <1200000>; 127 regulator-max-microvolt = <1200000>; 128 vin-supply = <®_vdd_1v8>; 129 enable-active-high; 130 }; 131 132 reg_vcam_2v8: regulator-vcam-2v8 { 133 compatible = "regulator-fixed"; 134 regulator-name = "CAMERA_VDDA_2V8"; 135 regulator-min-microvolt = <2800000>; 136 regulator-max-microvolt = <2800000>; 137 vin-supply = <®_vdd_3v3>; 138 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>; 139 enable-active-high; 140 }; 141 142 reg_gnss: regulator-gnss { 143 compatible = "regulator-fixed"; 144 pinctrl-names = "default"; 145 pinctrl-0 = <&pinctrl_gnsspwr>; 146 regulator-name = "GNSS"; 147 regulator-min-microvolt = <3300000>; 148 regulator-max-microvolt = <3300000>; 149 gpio = <&gpio3 12 GPIO_ACTIVE_HIGH>; 150 enable-active-high; 151 }; 152 153 reg_hub: regulator-hub { 154 compatible = "regulator-fixed"; 155 pinctrl-names = "default"; 156 pinctrl-0 = <&pinctrl_hub_pwr>; 157 regulator-name = "HUB"; 158 regulator-min-microvolt = <3300000>; 159 regulator-max-microvolt = <3300000>; 160 gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>; 161 enable-active-high; 162 }; 163 164 reg_lcd_1v8: regulator-lcd-1v8 { 165 compatible = "regulator-fixed"; 166 pinctrl-names = "default"; 167 pinctrl-0 = <&pinctrl_dsien>; 168 regulator-name = "LCD_1V8"; 169 regulator-min-microvolt = <1800000>; 170 regulator-max-microvolt = <1800000>; 171 vin-supply = <®_vdd_1v8>; 172 gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>; 173 enable-active-high; 174 /* Otherwise i2c3 is not functional */ 175 regulator-always-on; 176 }; 177 178 reg_lcd_3v4: regulator-lcd-3v4 { 179 compatible = "regulator-fixed"; 180 regulator-name = "LCD_3V4"; 181 pinctrl-names = "default"; 182 pinctrl-0 = <&pinctrl_dsibiasen>; 183 vin-supply = <®_vsys_3v4>; 184 gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>; 185 enable-active-high; 186 }; 187 188 reg_vdd_sen: regulator-vdd-sen { 189 compatible = "regulator-fixed"; 190 regulator-name = "VDD_SEN"; 191 regulator-min-microvolt = <3300000>; 192 regulator-max-microvolt = <3300000>; 193 }; 194 195 reg_vdd_1v8: regulator-vdd-1v8 { 196 compatible = "regulator-fixed"; 197 regulator-name = "VDD_1V8"; 198 regulator-min-microvolt = <1800000>; 199 regulator-max-microvolt = <1800000>; 200 vin-supply = <&buck7_reg>; 201 }; 202 203 reg_vdd_3v3: regulator-vdd-3v3 { 204 compatible = "regulator-fixed"; 205 regulator-name = "VDD_3V3"; 206 regulator-min-microvolt = <3300000>; 207 regulator-max-microvolt = <3300000>; 208 }; 209 210 reg_vsys_3v4: regulator-vsys-3v4 { 211 compatible = "regulator-fixed"; 212 regulator-name = "VSYS_3V4"; 213 regulator-min-microvolt = <3400000>; 214 regulator-max-microvolt = <3400000>; 215 regulator-always-on; 216 }; 217 218 reg_wifi_3v3: regulator-wifi-3v3 { 219 compatible = "regulator-fixed"; 220 pinctrl-names = "default"; 221 pinctrl-0 = <&pinctrl_wifi_pwr>; 222 regulator-name = "3V3_WIFI"; 223 regulator-min-microvolt = <3300000>; 224 regulator-max-microvolt = <3300000>; 225 gpio = <&gpio3 10 GPIO_ACTIVE_HIGH>; 226 enable-active-high; 227 vin-supply = <®_vdd_3v3>; 228 }; 229 230 sound { 231 compatible = "simple-audio-card"; 232 pinctrl-names = "default"; 233 pinctrl-0 = <&pinctrl_hp>; 234 simple-audio-card,name = "Librem 5"; 235 simple-audio-card,format = "i2s"; 236 simple-audio-card,widgets = 237 "Headphone", "Headphones", 238 "Microphone", "Headset Mic", 239 "Microphone", "Digital Mic", 240 "Speaker", "Speaker"; 241 simple-audio-card,routing = 242 "Headphones", "HPOUTL", 243 "Headphones", "HPOUTR", 244 "Speaker", "SPKOUTL", 245 "Speaker", "SPKOUTR", 246 "Headset Mic", "MICBIAS", 247 "IN3R", "Headset Mic", 248 "DMICDAT", "Digital Mic"; 249 simple-audio-card,hp-det-gpios = <&gpio3 9 GPIO_ACTIVE_HIGH>; 250 251 simple-audio-card,cpu { 252 sound-dai = <&sai2>; 253 }; 254 255 simple-audio-card,codec { 256 sound-dai = <&codec>; 257 clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>; 258 frame-master; 259 bitclock-master; 260 }; 261 }; 262 263 sound-wwan { 264 compatible = "simple-audio-card"; 265 simple-audio-card,name = "Modem"; 266 simple-audio-card,format = "i2s"; 267 268 simple-audio-card,cpu { 269 sound-dai = <&sai6>; 270 frame-inversion; 271 }; 272 273 simple-audio-card,codec { 274 sound-dai = <&bm818_codec>; 275 frame-master; 276 bitclock-master; 277 }; 278 }; 279 280 usdhc2_pwrseq: pwrseq { 281 pinctrl-names = "default"; 282 pinctrl-0 = <&pinctrl_bt>, <&pinctrl_wifi_disable>; 283 compatible = "mmc-pwrseq-simple"; 284 reset-gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>, 285 <&gpio4 29 GPIO_ACTIVE_HIGH>; 286 }; 287 288 bm818_codec: sound-wwan-codec { 289 compatible = "broadmobi,bm818", "option,gtm601"; 290 #sound-dai-cells = <0>; 291 }; 292 293 vibrator { 294 compatible = "pwm-vibrator"; 295 pwms = <&pwm1 0 50000 0>; 296 pwm-names = "enable"; 297 vcc-supply = <®_vdd_3v3>; 298 }; 299}; 300 301&A53_0 { 302 cpu-supply = <&buck2_reg>; 303}; 304 305&A53_1 { 306 cpu-supply = <&buck2_reg>; 307}; 308 309&A53_2 { 310 cpu-supply = <&buck2_reg>; 311}; 312 313&A53_3 { 314 cpu-supply = <&buck2_reg>; 315}; 316 317&csi1 { 318 status = "okay"; 319}; 320 321&ddrc { 322 operating-points-v2 = <&ddrc_opp_table>; 323 status = "okay"; 324 325 ddrc_opp_table: opp-table { 326 compatible = "operating-points-v2"; 327 328 opp-25000000 { 329 opp-hz = /bits/ 64 <25000000>; 330 }; 331 332 opp-100000000 { 333 opp-hz = /bits/ 64 <100000000>; 334 }; 335 336 opp-166000000 { 337 opp-hz = /bits/ 64 <166935483>; 338 }; 339 340 opp-800000000 { 341 opp-hz = /bits/ 64 <800000000>; 342 }; 343 }; 344}; 345 346&dphy { 347 status = "okay"; 348}; 349 350&ecspi1 { 351 pinctrl-names = "default"; 352 pinctrl-0 = <&pinctrl_ecspi1>; 353 cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; 354 #address-cells = <1>; 355 #size-cells = <0>; 356 status = "okay"; 357 358 nor_flash: flash@0 { 359 compatible = "jedec,spi-nor"; 360 reg = <0>; 361 spi-max-frequency = <1000000>; 362 #address-cells = <1>; 363 #size-cells = <1>; 364 365 partition@0 { 366 label = "protected0"; 367 reg = <0x0 0x30000>; 368 read-only; 369 }; 370 371 partition@30000 { 372 label = "firmware"; 373 reg = <0x30000 0x1d0000>; 374 read-only; 375 }; 376 }; 377}; 378 379&gpio1 { 380 pinctrl-names = "default"; 381 pinctrl-0 = <&pinctrl_pmic_5v>; 382 383 pmic-5v-hog { 384 gpio-hog; 385 gpios = <1 GPIO_ACTIVE_HIGH>; 386 input; 387 line-name = "pmic-5v"; 388 }; 389}; 390 391&iomuxc { 392 pinctrl-names = "default"; 393 pinctrl-0 = <&pinctrl_hog>; 394 395 pinctrl_hog: hoggrp { 396 fsl,pins = < 397 /* CLKO2 for cameras on both CSI1 and CSI2 */ 398 MX8MQ_IOMUXC_GPIO1_IO15_CCMSRCGPCMIX_CLKO2 0x1f 399 >; 400 }; 401 402 pinctrl_audiopwr: audiopwrgrp { 403 fsl,pins = < 404 /* AUDIO_POWER_EN_3V3 */ 405 MX8MQ_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x83 406 >; 407 }; 408 409 pinctrl_bl: blgrp { 410 fsl,pins = < 411 /* BACKLINGE_EN */ 412 MX8MQ_IOMUXC_NAND_DQS_GPIO3_IO14 0x83 413 >; 414 }; 415 416 pinctrl_bt: btgrp { 417 fsl,pins = < 418 /* BT_REG_ON */ 419 MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x83 420 >; 421 }; 422 423 pinctrl_camera_pwr: camerapwrgrp { 424 fsl,pins = < 425 /* CAMERA_PWR_EN_3V3 */ 426 MX8MQ_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x83 427 >; 428 }; 429 430 pinctrl_csi1: csi1grp { 431 fsl,pins = < 432 /* CSI1_NRST */ 433 MX8MQ_IOMUXC_ENET_RXC_GPIO1_IO25 0x83 434 >; 435 }; 436 437 pinctrl_charger_in: chargeringrp { 438 fsl,pins = < 439 /* CHRG_INT */ 440 MX8MQ_IOMUXC_NAND_CE2_B_GPIO3_IO3 0x80 441 >; 442 }; 443 444 pinctrl_dsibiasen: dsibiasengrp { 445 fsl,pins = < 446 /* DSI_BIAS_EN */ 447 MX8MQ_IOMUXC_ENET_TD1_GPIO1_IO20 0x83 448 >; 449 }; 450 451 pinctrl_dsien: dsiengrp { 452 fsl,pins = < 453 /* DSI_EN_3V3 */ 454 MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x83 455 >; 456 }; 457 458 pinctrl_dsirst: dsirstgrp { 459 fsl,pins = < 460 /* DSI_RST */ 461 MX8MQ_IOMUXC_ENET_RD3_GPIO1_IO29 0x83 462 /* DSI_TE */ 463 MX8MQ_IOMUXC_ENET_RD2_GPIO1_IO28 0x83 464 /* TP_RST */ 465 MX8MQ_IOMUXC_ENET_RX_CTL_GPIO1_IO24 0x83 466 >; 467 }; 468 469 pinctrl_ecspi1: ecspigrp { 470 fsl,pins = < 471 MX8MQ_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x83 472 MX8MQ_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x83 473 MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19 474 MX8MQ_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x83 475 >; 476 }; 477 478 pinctrl_gauge: gaugegrp { 479 fsl,pins = < 480 /* BAT_LOW */ 481 MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20 0x80 482 >; 483 }; 484 485 pinctrl_gnsspwr: gnsspwrgrp { 486 fsl,pins = < 487 /* GPS3V3_EN */ 488 MX8MQ_IOMUXC_NAND_DATA06_GPIO3_IO12 0x83 489 >; 490 }; 491 492 pinctrl_haptic: hapticgrp { 493 fsl,pins = < 494 /* MOTO */ 495 MX8MQ_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT 0x83 496 >; 497 }; 498 499 pinctrl_hp: hpgrp { 500 fsl,pins = < 501 /* HEADPHONE_DET_1V8 */ 502 MX8MQ_IOMUXC_NAND_DATA03_GPIO3_IO9 0x180 503 >; 504 }; 505 506 pinctrl_hub_pwr: hubpwrgrp { 507 fsl,pins = < 508 /* HUB_PWR_3V3_EN */ 509 MX8MQ_IOMUXC_GPIO1_IO14_GPIO1_IO14 0x83 510 >; 511 }; 512 513 pinctrl_i2c1: i2c1grp { 514 fsl,pins = < 515 MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000026 516 MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000026 517 >; 518 }; 519 520 pinctrl_i2c1_gpio: i2c1-gpiogrp { 521 fsl,pins = < 522 MX8MQ_IOMUXC_I2C1_SCL_GPIO5_IO14 0x26 523 MX8MQ_IOMUXC_I2C1_SDA_GPIO5_IO15 0x26 524 >; 525 }; 526 527 pinctrl_i2c2: i2c2grp { 528 fsl,pins = < 529 MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL 0x40000026 530 MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA 0x40000026 531 >; 532 }; 533 534 pinctrl_i2c2_gpio: i2c2-gpiogrp { 535 fsl,pins = < 536 MX8MQ_IOMUXC_I2C2_SCL_GPIO5_IO16 0x26 537 MX8MQ_IOMUXC_I2C2_SDA_GPIO5_IO17 0x26 538 >; 539 }; 540 541 pinctrl_i2c3: i2c3grp { 542 fsl,pins = < 543 MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x40000026 544 MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x40000026 545 >; 546 }; 547 548 pinctrl_i2c3_gpio: i2c3-gpiogrp { 549 fsl,pins = < 550 MX8MQ_IOMUXC_I2C3_SCL_GPIO5_IO18 0x26 551 MX8MQ_IOMUXC_I2C3_SDA_GPIO5_IO19 0x26 552 >; 553 }; 554 555 pinctrl_i2c4: i2c4grp { 556 fsl,pins = < 557 MX8MQ_IOMUXC_I2C4_SCL_I2C4_SCL 0x40000026 558 MX8MQ_IOMUXC_I2C4_SDA_I2C4_SDA 0x40000026 559 >; 560 }; 561 562 pinctrl_i2c4_gpio: i2c4-gpiogrp { 563 fsl,pins = < 564 MX8MQ_IOMUXC_I2C4_SCL_GPIO5_IO20 0x26 565 MX8MQ_IOMUXC_I2C4_SDA_GPIO5_IO21 0x26 566 >; 567 }; 568 569 pinctrl_keys: keysgrp { 570 fsl,pins = < 571 /* VOL- */ 572 MX8MQ_IOMUXC_ENET_MDIO_GPIO1_IO17 0x01c0 573 /* VOL+ */ 574 MX8MQ_IOMUXC_ENET_MDC_GPIO1_IO16 0x01c0 575 >; 576 }; 577 578 pinctrl_led_b: ledbgrp { 579 fsl,pins = < 580 /* LED_B */ 581 MX8MQ_IOMUXC_GPIO1_IO13_PWM2_OUT 0x06 582 >; 583 }; 584 585 pinctrl_led_g: ledggrp { 586 fsl,pins = < 587 /* LED_G */ 588 MX8MQ_IOMUXC_SAI3_MCLK_PWM4_OUT 0x06 589 >; 590 }; 591 592 pinctrl_led_r: ledrgrp { 593 fsl,pins = < 594 /* LED_R */ 595 MX8MQ_IOMUXC_SPDIF_TX_PWM3_OUT 0x06 596 >; 597 }; 598 599 pinctrl_mag: maggrp { 600 fsl,pins = < 601 /* INT_MAG */ 602 MX8MQ_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x80 603 >; 604 }; 605 606 pinctrl_pmic: pmicgrp { 607 fsl,pins = < 608 /* PMIC_NINT */ 609 MX8MQ_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x80 610 >; 611 }; 612 613 pinctrl_pmic_5v: pmic5vgrp { 614 fsl,pins = < 615 /* PMIC_5V */ 616 MX8MQ_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x80 617 >; 618 }; 619 620 pinctrl_prox: proxgrp { 621 fsl,pins = < 622 /* INT_LIGHT */ 623 MX8MQ_IOMUXC_NAND_DATA01_GPIO3_IO7 0x80 624 >; 625 }; 626 627 pinctrl_rtc: rtcgrp { 628 fsl,pins = < 629 /* RTC_INT */ 630 MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x80 631 >; 632 }; 633 634 pinctrl_sai2: sai2grp { 635 fsl,pins = < 636 MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0 0xd6 637 MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC 0xd6 638 MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK 0xd6 639 MX8MQ_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0 0xd6 640 MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK 0xd6 641 >; 642 }; 643 644 pinctrl_sai6: sai6grp { 645 fsl,pins = < 646 MX8MQ_IOMUXC_SAI1_RXD5_SAI6_RX_DATA0 0xd6 647 MX8MQ_IOMUXC_SAI1_RXD6_SAI6_RX_SYNC 0xd6 648 MX8MQ_IOMUXC_SAI1_TXD4_SAI6_RX_BCLK 0xd6 649 MX8MQ_IOMUXC_SAI1_TXD5_SAI6_TX_DATA0 0xd6 650 >; 651 }; 652 653 pinctrl_tcpc: tcpcgrp { 654 fsl,pins = < 655 /* TCPC_INT */ 656 MX8MQ_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x01c0 657 >; 658 }; 659 660 pinctrl_touch: touchgrp { 661 fsl,pins = < 662 /* TP_INT */ 663 MX8MQ_IOMUXC_ENET_RD1_GPIO1_IO27 0x80 664 >; 665 }; 666 667 pinctrl_typec: typecgrp { 668 fsl,pins = < 669 /* TYPEC_MUX_EN */ 670 MX8MQ_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x83 671 >; 672 }; 673 674 pinctrl_uart1: uart1grp { 675 fsl,pins = < 676 MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x49 677 MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX 0x49 678 >; 679 }; 680 681 pinctrl_uart2: uart2grp { 682 fsl,pins = < 683 MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49 684 MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49 685 >; 686 }; 687 688 pinctrl_uart3: uart3grp { 689 fsl,pins = < 690 MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX 0x49 691 MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX 0x49 692 >; 693 }; 694 695 pinctrl_uart4: uart4grp { 696 fsl,pins = < 697 MX8MQ_IOMUXC_ECSPI2_SCLK_UART4_DCE_RX 0x49 698 MX8MQ_IOMUXC_ECSPI2_MOSI_UART4_DCE_TX 0x49 699 MX8MQ_IOMUXC_ECSPI2_MISO_UART4_DCE_CTS_B 0x49 700 MX8MQ_IOMUXC_ECSPI2_SS0_UART4_DCE_RTS_B 0x49 701 >; 702 }; 703 704 pinctrl_usdhc1: usdhc1grp { 705 fsl,pins = < 706 MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x83 707 MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc3 708 MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xc3 709 MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xc3 710 MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xc3 711 MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xc3 712 MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xc3 713 MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xc3 714 MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xc3 715 MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xc3 716 MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x83 717 MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 718 >; 719 }; 720 721 pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 722 fsl,pins = < 723 MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d 724 MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd 725 MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xcd 726 MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xcd 727 MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xcd 728 MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xcd 729 MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xcd 730 MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xcd 731 MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xcd 732 MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xcd 733 MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x8d 734 MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 735 >; 736 }; 737 738 pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 739 fsl,pins = < 740 MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f 741 MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf 742 MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xdf 743 MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xdf 744 MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xdf 745 MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xdf 746 MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xdf 747 MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xdf 748 MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xdf 749 MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xdf 750 MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x9f 751 MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 752 >; 753 }; 754 755 pinctrl_usdhc2: usdhc2grp { 756 fsl,pins = < 757 MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80 758 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83 759 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3 760 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3 761 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3 762 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3 763 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3 764 MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1 765 >; 766 }; 767 768 pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { 769 fsl,pins = < 770 MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80 771 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d 772 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd 773 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcd 774 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcd 775 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcd 776 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcd 777 MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1 778 >; 779 }; 780 781 pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { 782 fsl,pins = < 783 MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80 784 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f 785 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcf 786 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcf 787 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcf 788 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcf 789 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcf 790 MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1 791 >; 792 }; 793 794 pinctrl_wifi_disable: wifidisablegrp { 795 fsl,pins = < 796 /* WIFI_REG_ON */ 797 MX8MQ_IOMUXC_SAI3_RXC_GPIO4_IO29 0x83 798 >; 799 }; 800 801 pinctrl_wifi_pwr: wifipwrgrp { 802 fsl,pins = < 803 /* WIFI3V3_EN */ 804 MX8MQ_IOMUXC_NAND_DATA04_GPIO3_IO10 0x83 805 >; 806 }; 807 808 pinctrl_wdog: wdoggrp { 809 fsl,pins = < 810 /* nWDOG */ 811 MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x1f 812 >; 813 }; 814}; 815 816&i2c1 { 817 clock-frequency = <384000>; 818 pinctrl-names = "default", "gpio"; 819 pinctrl-0 = <&pinctrl_i2c1>; 820 pinctrl-1 = <&pinctrl_i2c1_gpio>; 821 scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 822 sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 823 status = "okay"; 824 825 typec_pd: usb-pd@3f { 826 compatible = "ti,tps6598x"; 827 reg = <0x3f>; 828 pinctrl-names = "default"; 829 pinctrl-0 = <&pinctrl_typec>, <&pinctrl_tcpc>; 830 interrupt-parent = <&gpio1>; 831 interrupts = <10 IRQ_TYPE_LEVEL_LOW>; 832 interrupt-names = "irq"; 833 wakeup-source; 834 835 connector { 836 compatible = "usb-c-connector"; 837 label = "USB-C"; 838 data-role = "dual"; 839 840 ports { 841 #address-cells = <1>; 842 #size-cells = <0>; 843 844 port@0 { 845 reg = <0>; 846 847 usb_con_hs: endpoint { 848 remote-endpoint = <&typec_hs>; 849 }; 850 }; 851 852 port@1 { 853 reg = <1>; 854 855 usb_con_ss: endpoint { 856 remote-endpoint = <&typec_ss>; 857 }; 858 }; 859 }; 860 }; 861 }; 862 863 pmic: pmic@4b { 864 compatible = "rohm,bd71837"; 865 reg = <0x4b>; 866 pinctrl-names = "default"; 867 pinctrl-0 = <&pinctrl_pmic>, <&pinctrl_camera_pwr>; 868 clocks = <&pmic_osc>; 869 #clock-cells = <0>; 870 clock-names = "osc"; 871 clock-output-names = "pmic_clk"; 872 interrupt-parent = <&gpio1>; 873 interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 874 rohm,reset-snvs-powered; 875 876 regulators { 877 buck1_reg: BUCK1 { 878 regulator-name = "buck1"; 879 regulator-min-microvolt = <700000>; 880 regulator-max-microvolt = <1300000>; 881 regulator-boot-on; 882 regulator-ramp-delay = <1250>; 883 rohm,dvs-run-voltage = <900000>; 884 rohm,dvs-idle-voltage = <850000>; 885 rohm,dvs-suspend-voltage = <850000>; 886 regulator-always-on; 887 }; 888 889 buck2_reg: BUCK2 { 890 regulator-name = "buck2"; 891 regulator-min-microvolt = <700000>; 892 regulator-max-microvolt = <1300000>; 893 regulator-boot-on; 894 regulator-ramp-delay = <1250>; 895 rohm,dvs-run-voltage = <1000000>; 896 rohm,dvs-idle-voltage = <900000>; 897 regulator-always-on; 898 }; 899 900 buck3_reg: BUCK3 { 901 regulator-name = "buck3"; 902 regulator-min-microvolt = <700000>; 903 regulator-max-microvolt = <1300000>; 904 regulator-boot-on; 905 rohm,dvs-run-voltage = <900000>; 906 }; 907 908 buck4_reg: BUCK4 { 909 regulator-name = "buck4"; 910 regulator-min-microvolt = <700000>; 911 regulator-max-microvolt = <1300000>; 912 rohm,dvs-run-voltage = <1000000>; 913 }; 914 915 buck5_reg: BUCK5 { 916 regulator-name = "buck5"; 917 regulator-min-microvolt = <700000>; 918 regulator-max-microvolt = <1350000>; 919 regulator-boot-on; 920 regulator-always-on; 921 }; 922 923 buck6_reg: BUCK6 { 924 regulator-name = "buck6"; 925 regulator-min-microvolt = <3000000>; 926 regulator-max-microvolt = <3300000>; 927 regulator-boot-on; 928 regulator-always-on; 929 }; 930 931 buck7_reg: BUCK7 { 932 regulator-name = "buck7"; 933 regulator-min-microvolt = <1605000>; 934 regulator-max-microvolt = <1995000>; 935 regulator-boot-on; 936 regulator-always-on; 937 }; 938 939 buck8_reg: BUCK8 { 940 regulator-name = "buck8"; 941 regulator-min-microvolt = <800000>; 942 regulator-max-microvolt = <1400000>; 943 regulator-boot-on; 944 regulator-always-on; 945 }; 946 947 ldo1_reg: LDO1 { 948 regulator-name = "ldo1"; 949 regulator-min-microvolt = <3000000>; 950 regulator-max-microvolt = <3300000>; 951 regulator-boot-on; 952 /* leave on for snvs power button */ 953 regulator-always-on; 954 }; 955 956 ldo2_reg: LDO2 { 957 regulator-name = "ldo2"; 958 regulator-min-microvolt = <900000>; 959 regulator-max-microvolt = <900000>; 960 regulator-boot-on; 961 /* leave on for snvs power button */ 962 regulator-always-on; 963 }; 964 965 ldo3_reg: LDO3 { 966 regulator-name = "ldo3"; 967 regulator-min-microvolt = <1800000>; 968 regulator-max-microvolt = <3300000>; 969 regulator-boot-on; 970 regulator-always-on; 971 }; 972 973 ldo4_reg: LDO4 { 974 regulator-name = "ldo4"; 975 regulator-min-microvolt = <900000>; 976 regulator-max-microvolt = <1800000>; 977 regulator-boot-on; 978 regulator-always-on; 979 }; 980 981 ldo5_reg: LDO5 { 982 /* VDD_PHY_0V9 - MIPI and HDMI domains */ 983 regulator-name = "ldo5"; 984 regulator-min-microvolt = <1800000>; 985 regulator-max-microvolt = <3300000>; 986 regulator-always-on; 987 }; 988 989 ldo6_reg: LDO6 { 990 /* VDD_PHY_0V9 - MIPI, HDMI and USB domains */ 991 regulator-name = "ldo6"; 992 regulator-min-microvolt = <900000>; 993 regulator-max-microvolt = <1800000>; 994 regulator-boot-on; 995 regulator-always-on; 996 }; 997 998 ldo7_reg: LDO7 { 999 /* VDD_PHY_3V3 - USB domain */ 1000 regulator-name = "ldo7"; 1001 regulator-min-microvolt = <1800000>; 1002 regulator-max-microvolt = <3300000>; 1003 regulator-boot-on; 1004 regulator-always-on; 1005 }; 1006 }; 1007 }; 1008 1009 rtc: rtc@68 { 1010 compatible = "microcrystal,rv4162"; 1011 reg = <0x68>; 1012 pinctrl-names = "default"; 1013 pinctrl-0 = <&pinctrl_rtc>; 1014 interrupt-parent = <&gpio1>; 1015 interrupts = <9 IRQ_TYPE_LEVEL_LOW>; 1016 }; 1017}; 1018 1019&i2c2 { 1020 clock-frequency = <384000>; 1021 pinctrl-names = "default", "gpio"; 1022 pinctrl-0 = <&pinctrl_i2c2>; 1023 pinctrl-1 = <&pinctrl_i2c2_gpio>; 1024 scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 1025 sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 1026 status = "okay"; 1027 1028 magnetometer: magnetometer@1e { 1029 compatible = "st,lsm9ds1-magn"; 1030 reg = <0x1e>; 1031 pinctrl-names = "default"; 1032 pinctrl-0 = <&pinctrl_mag>; 1033 interrupt-parent = <&gpio3>; 1034 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; 1035 vdd-supply = <®_vdd_sen>; 1036 vddio-supply = <®_vdd_1v8>; 1037 }; 1038 1039 regulator@3e { 1040 compatible = "ti,tps65132"; 1041 reg = <0x3e>; 1042 1043 reg_lcd_avdd: outp { 1044 regulator-name = "LCD_AVDD"; 1045 vin-supply = <®_lcd_3v4>; 1046 }; 1047 1048 reg_lcd_avee: outn { 1049 regulator-name = "LCD_AVEE"; 1050 vin-supply = <®_lcd_3v4>; 1051 }; 1052 }; 1053 1054 proximity: prox@60 { 1055 compatible = "vishay,vcnl4040"; 1056 reg = <0x60>; 1057 pinctrl-names = "default"; 1058 pinctrl-0 = <&pinctrl_prox>; 1059 interrupt-parent = <&gpio3>; 1060 interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 1061 }; 1062 1063 accel_gyro: accel-gyro@6a { 1064 compatible = "st,lsm9ds1-imu"; 1065 reg = <0x6a>; 1066 vdd-supply = <®_vdd_sen>; 1067 vddio-supply = <®_vdd_1v8>; 1068 }; 1069}; 1070 1071&i2c3 { 1072 clock-frequency = <384000>; 1073 pinctrl-names = "default", "gpio"; 1074 pinctrl-0 = <&pinctrl_i2c3>; 1075 pinctrl-1 = <&pinctrl_i2c3_gpio>; 1076 scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 1077 sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 1078 status = "okay"; 1079 1080 codec: audio-codec@1a { 1081 compatible = "wlf,wm8962"; 1082 reg = <0x1a>; 1083 clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>; 1084 assigned-clocks = <&clk IMX8MQ_CLK_SAI2>; 1085 assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>; 1086 assigned-clock-rates = <24576000>; 1087 #sound-dai-cells = <0>; 1088 DCVDD-supply = <®_aud_1v8>; 1089 DBVDD-supply = <®_aud_1v8>; 1090 AVDD-supply = <®_aud_1v8>; 1091 CPVDD-supply = <®_aud_1v8>; 1092 MICVDD-supply = <®_mic_2v4>; 1093 PLLVDD-supply = <®_aud_1v8>; 1094 SPKVDD1-supply = <®_vsys_3v4>; 1095 SPKVDD2-supply = <®_vsys_3v4>; 1096 gpio-cfg = < 1097 0x0000 /* n/c */ 1098 0x0001 /* gpio2, 1: default */ 1099 0x0013 /* gpio3, 2: dmicclk */ 1100 0x0000 /* n/c, 3: default */ 1101 0x8014 /* gpio5, 4: dmic_dat */ 1102 0x0000 /* gpio6, 5: default */ 1103 >; 1104 }; 1105 1106 camera_front: camera@20 { 1107 compatible = "hynix,hi846"; 1108 reg = <0x20>; 1109 pinctrl-names = "default"; 1110 pinctrl-0 = <&pinctrl_csi1>; 1111 clocks = <&clk IMX8MQ_CLK_CLKO2>; 1112 assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>; 1113 assigned-clock-rates = <25000000>; 1114 reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; 1115 vdda-supply = <®_vcam_2v8>; 1116 vddd-supply = <®_vcam_1v2>; 1117 vddio-supply = <®_csi_1v8>; 1118 rotation = <90>; 1119 orientation = <0>; 1120 1121 port { 1122 camera1_ep: endpoint { 1123 data-lanes = <1 2>; 1124 link-frequencies = /bits/ 64 1125 <80000000 200000000 300000000>; 1126 remote-endpoint = <&mipi1_sensor_ep>; 1127 }; 1128 }; 1129 }; 1130 1131 backlight@36 { 1132 compatible = "ti,lm36922"; 1133 reg = <0x36>; 1134 pinctrl-names = "default"; 1135 pinctrl-0 = <&pinctrl_bl>; 1136 #address-cells = <1>; 1137 #size-cells = <0>; 1138 enable-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; 1139 vled-supply = <®_vsys_3v4>; 1140 ti,ovp-microvolt = <25000000>; 1141 1142 led_backlight: led@0 { 1143 reg = <0>; 1144 label = ":backlight"; 1145 linux,default-trigger = "backlight"; 1146 led-max-microamp = <20000>; 1147 }; 1148 }; 1149 1150 touchscreen@38 { 1151 compatible = "edt,edt-ft5506"; 1152 reg = <0x38>; 1153 pinctrl-names = "default"; 1154 pinctrl-0 = <&pinctrl_touch>; 1155 interrupt-parent = <&gpio1>; 1156 interrupts = <27 IRQ_TYPE_EDGE_FALLING>; 1157 touchscreen-size-x = <720>; 1158 touchscreen-size-y = <1440>; 1159 vcc-supply = <®_lcd_1v8>; 1160 }; 1161}; 1162 1163&i2c4 { 1164 clock-frequency = <384000>; 1165 pinctrl-names = "default", "gpio"; 1166 pinctrl-0 = <&pinctrl_i2c4>; 1167 pinctrl-1 = <&pinctrl_i2c4_gpio>; 1168 scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 1169 sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 1170 status = "okay"; 1171 1172 vcm@c { 1173 compatible = "dongwoon,dw9714"; 1174 reg = <0x0c>; 1175 vcc-supply = <®_csi_1v8>; 1176 }; 1177 1178 bat: fuel-gauge@36 { 1179 compatible = "maxim,max17055"; 1180 reg = <0x36>; 1181 interrupt-parent = <&gpio3>; 1182 interrupts = <20 IRQ_TYPE_LEVEL_LOW>; 1183 pinctrl-names = "default"; 1184 pinctrl-0 = <&pinctrl_gauge>; 1185 power-supplies = <&bq25895>; 1186 maxim,over-heat-temp = <700>; 1187 maxim,over-volt = <4500>; 1188 maxim,rsns-microohm = <5000>; 1189 }; 1190 1191 bq25895: charger@6a { 1192 compatible = "ti,bq25895", "ti,bq25890"; 1193 reg = <0x6a>; 1194 pinctrl-names = "default"; 1195 pinctrl-0 = <&pinctrl_charger_in>; 1196 interrupt-parent = <&gpio3>; 1197 interrupts = <3 IRQ_TYPE_EDGE_FALLING>; 1198 ti,battery-regulation-voltage = <4208000>; /* uV */ 1199 ti,termination-current = <128000>; /* uA */ 1200 ti,precharge-current = <128000>; /* uA */ 1201 ti,minimum-sys-voltage = <3700000>; /* uV */ 1202 ti,boost-voltage = <5000000>; /* uV */ 1203 ti,boost-max-current = <1500000>; /* uA */ 1204 monitored-battery = <&bat>; 1205 power-supplies = <&typec_pd>; 1206 }; 1207}; 1208 1209&lcdif { 1210 status = "okay"; 1211}; 1212 1213&mipi_csi1 { 1214 assigned-clock-rates = <266000000>, <200000000>, <66000000>; 1215 status = "okay"; 1216 1217 ports { 1218 port@0 { 1219 reg = <0>; 1220 1221 mipi1_sensor_ep: endpoint { 1222 remote-endpoint = <&camera1_ep>; 1223 data-lanes = <1 2>; 1224 }; 1225 }; 1226 }; 1227}; 1228 1229&mipi_dsi { 1230 #address-cells = <1>; 1231 #size-cells = <0>; 1232 status = "okay"; 1233 1234 lcd_panel: panel@0 { 1235 compatible = "mantix,mlaf057we51-x"; 1236 reg = <0>; 1237 pinctrl-names = "default"; 1238 pinctrl-0 = <&pinctrl_dsirst>; 1239 avdd-supply = <®_lcd_avdd>; 1240 avee-supply = <®_lcd_avee>; 1241 vddi-supply = <®_lcd_1v8>; 1242 backlight = <&backlight_dsi>; 1243 reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; 1244 mantix,tp-rstn-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; 1245 1246 port { 1247 panel_in: endpoint { 1248 remote-endpoint = <&mipi_dsi_out>; 1249 }; 1250 }; 1251 }; 1252 1253 ports { 1254 port@1 { 1255 reg = <1>; 1256 1257 mipi_dsi_out: endpoint { 1258 remote-endpoint = <&panel_in>; 1259 }; 1260 }; 1261 }; 1262}; 1263 1264&pgc_gpu { 1265 power-supply = <&buck3_reg>; 1266}; 1267 1268&pgc_mipi { 1269 power-supply = <&ldo5_reg>; 1270}; 1271 1272&pgc_vpu { 1273 power-supply = <&buck4_reg>; 1274}; 1275 1276&pwm1 { 1277 pinctrl-names = "default"; 1278 pinctrl-0 = <&pinctrl_haptic>; 1279 status = "okay"; 1280}; 1281 1282&pwm2 { 1283 pinctrl-names = "default"; 1284 pinctrl-0 = <&pinctrl_led_b>; 1285 status = "okay"; 1286}; 1287 1288&pwm3 { 1289 pinctrl-names = "default"; 1290 pinctrl-0 = <&pinctrl_led_r>; 1291 status = "okay"; 1292}; 1293 1294&pwm4 { 1295 pinctrl-names = "default"; 1296 pinctrl-0 = <&pinctrl_led_g>; 1297 status = "okay"; 1298}; 1299 1300&sai2 { 1301 pinctrl-names = "default"; 1302 pinctrl-0 = <&pinctrl_sai2>; 1303 assigned-clocks = <&clk IMX8MQ_CLK_SAI2>; 1304 assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>; 1305 assigned-clock-rates = <24576000>; 1306 status = "okay"; 1307}; 1308 1309&sai6 { 1310 pinctrl-names = "default"; 1311 pinctrl-0 = <&pinctrl_sai6>; 1312 assigned-clocks = <&clk IMX8MQ_CLK_SAI6>; 1313 assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>; 1314 assigned-clock-rates = <24576000>; 1315 fsl,sai-synchronous-rx; 1316 status = "okay"; 1317}; 1318 1319&snvs_pwrkey { 1320 status = "okay"; 1321}; 1322 1323&uart1 { /* console */ 1324 pinctrl-names = "default"; 1325 pinctrl-0 = <&pinctrl_uart1>; 1326 status = "okay"; 1327}; 1328 1329&uart2 { /* TPS - GPS - DEBUG */ 1330 pinctrl-names = "default"; 1331 pinctrl-0 = <&pinctrl_uart2>; 1332 status = "okay"; 1333 1334 gnss { 1335 compatible = "globaltop,pa6h"; 1336 vcc-supply = <®_gnss>; 1337 current-speed = <9600>; 1338 }; 1339}; 1340 1341&uart3 { /* SMC */ 1342 pinctrl-names = "default"; 1343 pinctrl-0 = <&pinctrl_uart3>; 1344 status = "okay"; 1345}; 1346 1347&uart4 { /* BT */ 1348 pinctrl-names = "default"; 1349 pinctrl-0 = <&pinctrl_uart4>; 1350 uart-has-rtscts; 1351 status = "okay"; 1352}; 1353 1354&usb3_phy0 { 1355 status = "okay"; 1356}; 1357 1358&usb3_phy1 { 1359 vbus-supply = <®_hub>; 1360 status = "okay"; 1361}; 1362 1363&usb_dwc3_0 { 1364 dr_mode = "otg"; 1365 usb-role-switch; 1366 status = "okay"; 1367 1368 ports { 1369 #address-cells = <1>; 1370 #size-cells = <0>; 1371 1372 port@0 { 1373 reg = <0>; 1374 1375 typec_hs: endpoint { 1376 remote-endpoint = <&usb_con_hs>; 1377 }; 1378 }; 1379 1380 port@1 { 1381 reg = <1>; 1382 1383 typec_ss: endpoint { 1384 remote-endpoint = <&usb_con_ss>; 1385 }; 1386 }; 1387 }; 1388}; 1389 1390&usb_dwc3_1 { 1391 dr_mode = "host"; 1392 status = "okay"; 1393 #address-cells = <1>; 1394 #size-cells = <0>; 1395 1396 /* Microchip USB2642 */ 1397 hub@1 { 1398 compatible = "usb424,2640"; 1399 reg = <1>; 1400 #address-cells = <1>; 1401 #size-cells = <0>; 1402 1403 mass-storage@1 { 1404 compatible = "usb424,4041"; 1405 reg = <1>; 1406 }; 1407 }; 1408}; 1409 1410&usdhc1 { 1411 assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>; 1412 assigned-clock-rates = <400000000>; 1413 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 1414 pinctrl-0 = <&pinctrl_usdhc1>; 1415 pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 1416 pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 1417 bus-width = <8>; 1418 vmmc-supply = <®_vdd_3v3>; 1419 vqmmc-supply = <®_vdd_1v8>; 1420 non-removable; 1421 status = "okay"; 1422}; 1423 1424&usdhc2 { 1425 assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>; 1426 assigned-clock-rates = <50000000>; 1427 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 1428 pinctrl-0 = <&pinctrl_usdhc2>; 1429 pinctrl-1 = <&pinctrl_usdhc2_100mhz>; 1430 pinctrl-2 = <&pinctrl_usdhc2_200mhz>; 1431 bus-width = <4>; 1432 vmmc-supply = <®_wifi_3v3>; 1433 mmc-pwrseq = <&usdhc2_pwrseq>; 1434 post-power-on-delay-ms = <20>; 1435 cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; 1436 max-frequency = <50000000>; 1437 disable-wp; 1438 cap-sdio-irq; 1439 cap-power-off-card; 1440 keep-power-in-suspend; 1441 wakeup-source; 1442 status = "okay"; 1443}; 1444 1445&wdog1 { 1446 pinctrl-names = "default"; 1447 pinctrl-0 = <&pinctrl_wdog>; 1448 fsl,ext-reset-output; 1449 status = "okay"; 1450}; 1451