1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright 2018-2019 Purism SPC 4 */ 5 6/dts-v1/; 7 8#include "dt-bindings/input/input.h" 9#include "dt-bindings/pwm/pwm.h" 10#include "dt-bindings/usb/pd.h" 11#include "imx8mq.dtsi" 12 13/ { 14 model = "Purism Librem 5 devkit"; 15 compatible = "purism,librem5-devkit", "fsl,imx8mq"; 16 17 backlight_dsi: backlight-dsi { 18 compatible = "pwm-backlight"; 19 /* 200 Hz for the PAM2841 */ 20 pwms = <&pwm1 0 5000000>; 21 brightness-levels = <0 100>; 22 num-interpolated-steps = <100>; 23 /* Default brightness level (index into the array defined by */ 24 /* the "brightness-levels" property) */ 25 default-brightness-level = <0>; 26 power-supply = <®_22v4_p>; 27 }; 28 29 chosen { 30 stdout-path = &uart1; 31 }; 32 33 gpio-keys { 34 compatible = "gpio-keys"; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&pinctrl_gpio_keys>; 37 38 btn1 { 39 label = "VOL_UP"; 40 gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; 41 wakeup-source; 42 linux,code = <KEY_VOLUMEUP>; 43 }; 44 45 btn2 { 46 label = "VOL_DOWN"; 47 gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; 48 wakeup-source; 49 linux,code = <KEY_VOLUMEDOWN>; 50 }; 51 52 hp-det { 53 label = "HP_DET"; 54 gpios = <&gpio3 20 GPIO_ACTIVE_LOW>; 55 wakeup-source; 56 linux,code = <KEY_HP>; 57 }; 58 }; 59 60 leds { 61 compatible = "gpio-leds"; 62 pinctrl-names = "default"; 63 pinctrl-0 = <&pinctrl_gpio_leds>; 64 65 led1 { 66 label = "LED 1"; 67 gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; 68 default-state = "off"; 69 }; 70 }; 71 72 pmic_osc: clock-pmic { 73 compatible = "fixed-clock"; 74 #clock-cells = <0>; 75 clock-frequency = <32768>; 76 clock-output-names = "pmic_osc"; 77 }; 78 79 reg_1v8_p: regulator-1v8-p { 80 compatible = "regulator-fixed"; 81 regulator-name = "1v8_p"; 82 regulator-min-microvolt = <1800000>; 83 regulator-max-microvolt = <1800000>; 84 vin-supply = <®_pwr_en>; 85 }; 86 87 reg_2v8_p: regulator-2v8-p { 88 compatible = "regulator-fixed"; 89 regulator-name = "2v8_p"; 90 regulator-min-microvolt = <2800000>; 91 regulator-max-microvolt = <2800000>; 92 vin-supply = <®_pwr_en>; 93 }; 94 95 reg_3v3_p: regulator-3v3-p { 96 compatible = "regulator-fixed"; 97 regulator-name = "3v3_p"; 98 regulator-min-microvolt = <3300000>; 99 regulator-max-microvolt = <3300000>; 100 vin-supply = <®_pwr_en>; 101 102 regulator-state-mem { 103 regulator-on-in-suspend; 104 }; 105 }; 106 107 reg_5v_p: regulator-5v-p { 108 compatible = "regulator-fixed"; 109 regulator-name = "5v_p"; 110 regulator-min-microvolt = <5000000>; 111 regulator-max-microvolt = <5000000>; 112 vin-supply = <®_pwr_en>; 113 114 regulator-state-mem { 115 regulator-on-in-suspend; 116 }; 117 }; 118 119 reg_22v4_p: regulator-22v4-p { 120 compatible = "regulator-fixed"; 121 regulator-name = "22v4_P"; 122 regulator-min-microvolt = <22400000>; 123 regulator-max-microvolt = <22400000>; 124 vin-supply = <®_pwr_en>; 125 }; 126 127 reg_pwr_en: regulator-pwr-en { 128 compatible = "regulator-fixed"; 129 pinctrl-names = "default"; 130 pinctrl-0 = <&pinctrl_pwr_en>; 131 regulator-name = "PWR_EN"; 132 regulator-min-microvolt = <3300000>; 133 regulator-max-microvolt = <3300000>; 134 gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>; 135 enable-active-high; 136 regulator-always-on; 137 }; 138 139 reg_usdhc2_vmmc: regulator-usdhc2-vmmc { 140 compatible = "regulator-fixed"; 141 pinctrl-names = "default"; 142 pinctrl-0 = <&pinctrl_usdhc2_pwr>; 143 regulator-name = "VSD_3V3"; 144 regulator-min-microvolt = <3300000>; 145 regulator-max-microvolt = <3300000>; 146 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; 147 enable-active-high; 148 regulator-always-on; 149 }; 150 151 vibrator { 152 compatible = "gpio-vibrator"; 153 pinctrl-names = "default"; 154 pinctrl-0 = <&pinctrl_haptic>; 155 enable-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>; 156 vcc-supply = <®_3v3_p>; 157 }; 158 159 wifi_pwr_en: regulator-wifi-en { 160 compatible = "regulator-fixed"; 161 pinctrl-names = "default"; 162 pinctrl-0 = <&pinctrl_wifi_pwr_en>; 163 regulator-name = "WIFI_EN"; 164 regulator-min-microvolt = <3300000>; 165 regulator-max-microvolt = <3300000>; 166 gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>; 167 enable-active-high; 168 regulator-always-on; 169 }; 170}; 171 172&clk { 173 assigned-clocks = <&clk IMX8MQ_AUDIO_PLL1>, <&clk IMX8MQ_AUDIO_PLL2>; 174 assigned-clock-rates = <786432000>, <722534400>; 175}; 176 177&dphy { 178 status = "okay"; 179}; 180 181&fec1 { 182 pinctrl-names = "default"; 183 pinctrl-0 = <&pinctrl_fec1>; 184 phy-mode = "rgmii-id"; 185 phy-handle = <ðphy0>; 186 fsl,magic-packet; 187 phy-supply = <®_3v3_p>; 188 status = "okay"; 189 190 mdio { 191 #address-cells = <1>; 192 #size-cells = <0>; 193 194 ethphy0: ethernet-phy@1 { 195 compatible = "ethernet-phy-ieee802.3-c22"; 196 reg = <1>; 197 }; 198 }; 199}; 200 201&i2c1 { 202 clock-frequency = <100000>; 203 pinctrl-names = "default"; 204 pinctrl-0 = <&pinctrl_i2c1>; 205 status = "okay"; 206 207 pmic: pmic@4b { 208 compatible = "rohm,bd71837"; 209 reg = <0x4b>; 210 pinctrl-names = "default"; 211 pinctrl-0 = <&pinctrl_pmic>; 212 clocks = <&pmic_osc>; 213 clock-names = "osc"; 214 clock-output-names = "pmic_clk"; 215 interrupt-parent = <&gpio1>; 216 interrupts = <3 GPIO_ACTIVE_LOW>; 217 interrupt-names = "irq"; 218 rohm,reset-snvs-powered; 219 220 regulators { 221 buck1_reg: BUCK1 { 222 regulator-name = "buck1"; 223 regulator-min-microvolt = <700000>; 224 regulator-max-microvolt = <1300000>; 225 regulator-boot-on; 226 regulator-ramp-delay = <1250>; 227 rohm,dvs-run-voltage = <900000>; 228 rohm,dvs-idle-voltage = <850000>; 229 rohm,dvs-suspend-voltage = <800000>; 230 }; 231 232 buck2_reg: BUCK2 { 233 regulator-name = "buck2"; 234 regulator-min-microvolt = <700000>; 235 regulator-max-microvolt = <1300000>; 236 regulator-boot-on; 237 regulator-ramp-delay = <1250>; 238 rohm,dvs-run-voltage = <1000000>; 239 rohm,dvs-idle-voltage = <900000>; 240 }; 241 242 buck3_reg: BUCK3 { 243 regulator-name = "buck3"; 244 regulator-min-microvolt = <700000>; 245 regulator-max-microvolt = <1300000>; 246 regulator-boot-on; 247 rohm,dvs-run-voltage = <1000000>; 248 }; 249 250 buck4_reg: BUCK4 { 251 regulator-name = "buck4"; 252 regulator-min-microvolt = <700000>; 253 regulator-max-microvolt = <1300000>; 254 rohm,dvs-run-voltage = <1000000>; 255 }; 256 257 buck5_reg: BUCK5 { 258 regulator-name = "buck5"; 259 regulator-min-microvolt = <700000>; 260 regulator-max-microvolt = <1350000>; 261 regulator-boot-on; 262 }; 263 264 buck6_reg: BUCK6 { 265 regulator-name = "buck6"; 266 regulator-min-microvolt = <3000000>; 267 regulator-max-microvolt = <3300000>; 268 regulator-boot-on; 269 }; 270 271 buck7_reg: BUCK7 { 272 regulator-name = "buck7"; 273 regulator-min-microvolt = <1605000>; 274 regulator-max-microvolt = <1995000>; 275 regulator-boot-on; 276 }; 277 278 buck8_reg: BUCK8 { 279 regulator-name = "buck8"; 280 regulator-min-microvolt = <800000>; 281 regulator-max-microvolt = <1400000>; 282 regulator-boot-on; 283 }; 284 285 ldo1_reg: LDO1 { 286 regulator-name = "ldo1"; 287 regulator-min-microvolt = <3000000>; 288 regulator-max-microvolt = <3300000>; 289 regulator-boot-on; 290 /* leave on for snvs power button */ 291 regulator-always-on; 292 }; 293 294 ldo2_reg: LDO2 { 295 regulator-name = "ldo2"; 296 regulator-min-microvolt = <900000>; 297 regulator-max-microvolt = <900000>; 298 regulator-boot-on; 299 /* leave on for snvs power button */ 300 regulator-always-on; 301 }; 302 303 ldo3_reg: LDO3 { 304 regulator-name = "ldo3"; 305 regulator-min-microvolt = <1800000>; 306 regulator-max-microvolt = <3300000>; 307 regulator-boot-on; 308 }; 309 310 ldo4_reg: LDO4 { 311 regulator-name = "ldo4"; 312 regulator-min-microvolt = <900000>; 313 regulator-max-microvolt = <1800000>; 314 regulator-boot-on; 315 }; 316 317 ldo5_reg: LDO5 { 318 regulator-name = "ldo5"; 319 regulator-min-microvolt = <1800000>; 320 regulator-max-microvolt = <3300000>; 321 }; 322 323 ldo6_reg: LDO6 { 324 regulator-name = "ldo6"; 325 regulator-min-microvolt = <900000>; 326 regulator-max-microvolt = <1800000>; 327 regulator-boot-on; 328 }; 329 330 ldo7_reg: LDO7 { 331 regulator-name = "ldo7"; 332 regulator-min-microvolt = <1800000>; 333 regulator-max-microvolt = <3300000>; 334 regulator-boot-on; 335 }; 336 }; 337 }; 338 339 typec_ptn5100: usb_typec@52 { 340 compatible = "nxp,ptn5110"; 341 reg = <0x52>; 342 pinctrl-names = "default"; 343 pinctrl-0 = <&pinctrl_typec>; 344 interrupt-parent = <&gpio3>; 345 interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 346 347 connector { 348 compatible = "usb-c-connector"; 349 label = "USB-C"; 350 data-role = "dual"; 351 power-role = "dual"; 352 try-power-role = "sink"; 353 source-pdos = <PDO_FIXED(5000, 2000, 354 PDO_FIXED_USB_COMM | 355 PDO_FIXED_DUAL_ROLE | 356 PDO_FIXED_DATA_SWAP )>; 357 sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM | 358 PDO_FIXED_DUAL_ROLE | 359 PDO_FIXED_DATA_SWAP ) 360 PDO_VAR(5000, 3000, 3000)>; 361 op-sink-microwatt = <10000000>; 362 363 ports { 364 #address-cells = <1>; 365 #size-cells = <0>; 366 367 port@0 { 368 reg = <0>; 369 370 usb_con_hs: endpoint { 371 remote-endpoint = <&typec_hs>; 372 }; 373 }; 374 375 port@1 { 376 reg = <1>; 377 378 usb_con_ss: endpoint { 379 remote-endpoint = <&typec_ss>; 380 }; 381 }; 382 }; 383 }; 384 }; 385 386 rtc@68 { 387 compatible = "microcrystal,rv4162"; 388 reg = <0x68>; 389 pinctrl-names = "default"; 390 pinctrl-0 = <&pinctrl_rtc>; 391 interrupt-parent = <&gpio4>; 392 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 393 }; 394 395 charger@6b { /* bq25896 */ 396 compatible = "ti,bq25890"; 397 reg = <0x6b>; 398 pinctrl-names = "default"; 399 pinctrl-0 = <&pinctrl_charger>; 400 interrupt-parent = <&gpio3>; 401 interrupts = <25 IRQ_TYPE_EDGE_FALLING>; 402 ti,battery-regulation-voltage = <4192000>; /* 4.192V */ 403 ti,charge-current = <1600000>; /* 1.6A */ 404 ti,termination-current = <66000>; /* 66mA */ 405 ti,precharge-current = <130000>; /* 130mA */ 406 ti,minimum-sys-voltage = <3000000>; /* 3V */ 407 ti,boost-voltage = <5000000>; /* 5V */ 408 ti,boost-max-current = <50000>; /* 50mA */ 409 }; 410}; 411 412&i2c3 { 413 clock-frequency = <100000>; 414 pinctrl-names = "default"; 415 pinctrl-0 = <&pinctrl_i2c3>; 416 status = "okay"; 417 418 magnetometer@1e { 419 compatible = "st,lsm9ds1-magn"; 420 reg = <0x1e>; 421 pinctrl-names = "default"; 422 pinctrl-0 = <&pinctrl_imu>; 423 interrupt-parent = <&gpio3>; 424 interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; 425 vdd-supply = <®_3v3_p>; 426 vddio-supply = <®_3v3_p>; 427 }; 428 429 touchscreen@5d { 430 compatible = "goodix,gt5688"; 431 reg = <0x5d>; 432 pinctrl-names = "default"; 433 pinctrl-0 = <&pinctrl_ts>; 434 interrupt-parent = <&gpio3>; 435 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 436 reset-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; 437 irq-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>; 438 touchscreen-size-x = <720>; 439 touchscreen-size-y = <1440>; 440 AVDD28-supply = <®_2v8_p>; 441 VDDIO-supply = <®_1v8_p>; 442 }; 443 444 proximity-sensor@60 { 445 compatible = "vishay,vcnl4040"; 446 reg = <0x60>; 447 pinctrl-0 = <&pinctrl_prox>; 448 }; 449 450 accel-gyro@6a { 451 compatible = "st,lsm9ds1-imu"; 452 reg = <0x6a>; 453 vdd-supply = <®_3v3_p>; 454 vddio-supply = <®_3v3_p>; 455 }; 456}; 457 458&iomuxc { 459 pinctrl_bl: blgrp { 460 fsl,pins = < 461 MX8MQ_IOMUXC_GPIO1_IO01_PWM1_OUT 0x6 /* DSI_BL_PWM */ 462 >; 463 }; 464 465 pinctrl_bt: btgrp { 466 fsl,pins = < 467 MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11 0x16 /* nBT_DISABLE */ 468 MX8MQ_IOMUXC_NAND_DATA01_GPIO3_IO7 0x10 /* BT_HOST_WAKE */ 469 >; 470 }; 471 472 pinctrl_charger: chargergrp { 473 fsl,pins = < 474 MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x80 /* CHRG_nINT */ 475 >; 476 }; 477 478 pinctrl_fec1: fec1grp { 479 fsl,pins = < 480 MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC 0x3 481 MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3 482 MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f 483 MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f 484 MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f 485 MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f 486 MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91 487 MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91 488 MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91 489 MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91 490 MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f 491 MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91 492 MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91 493 MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f 494 MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x19 495 MX8MQ_IOMUXC_GPIO1_IO15_CCMSRCGPCMIX_CLKO2 0x1f 496 >; 497 }; 498 499 pinctrl_ts: tsgrp { 500 fsl,pins = < 501 MX8MQ_IOMUXC_NAND_ALE_GPIO3_IO0 0x16 /* TOUCH INT */ 502 MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x19 /* TOUCH RST */ 503 >; 504 }; 505 506 pinctrl_gpio_leds: gpioledgrp { 507 fsl,pins = < 508 MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x16 509 >; 510 }; 511 512 pinctrl_gpio_keys: gpiokeygrp { 513 fsl,pins = < 514 MX8MQ_IOMUXC_SAI2_RXFS_GPIO4_IO21 0x16 515 MX8MQ_IOMUXC_SAI2_RXC_GPIO4_IO22 0x16 516 MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20 0x180 /* HP_DET */ 517 >; 518 }; 519 520 pinctrl_haptic: hapticgrp { 521 fsl,pins = < 522 MX8MQ_IOMUXC_SPDIF_RX_GPIO5_IO4 0xc6 /* nHAPTIC */ 523 >; 524 }; 525 526 pinctrl_i2c1: i2c1grp { 527 fsl,pins = < 528 MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x4000001f 529 MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA 0x4000001f 530 >; 531 }; 532 533 pinctrl_i2c3: i2c3grp { 534 fsl,pins = < 535 MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x4000001f 536 MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x4000001f 537 >; 538 }; 539 540 pinctrl_imu: imugrp { 541 fsl,pins = < 542 MX8MQ_IOMUXC_SAI5_RXFS_GPIO3_IO19 0x8 /* IMU_INT */ 543 >; 544 }; 545 546 pinctrl_pmic: pmicgrp { 547 fsl,pins = < 548 MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x80 /* PMIC intr */ 549 >; 550 }; 551 552 pinctrl_prox: proxgrp { 553 fsl,pins = < 554 MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x80 /* prox intr */ 555 >; 556 }; 557 558 pinctrl_pwr_en: pwrengrp { 559 fsl,pins = < 560 MX8MQ_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x06 561 >; 562 }; 563 564 pinctrl_rtc: rtcgrp { 565 fsl,pins = < 566 MX8MQ_IOMUXC_SAI3_RXC_GPIO4_IO29 0x80 /* RTC intr */ 567 >; 568 }; 569 570 pinctrl_typec: typecgrp { 571 fsl,pins = < 572 MX8MQ_IOMUXC_NAND_DATA06_GPIO3_IO12 0x16 573 MX8MQ_IOMUXC_NAND_CE0_B_GPIO3_IO1 0x80 574 >; 575 }; 576 577 pinctrl_uart1: uart1grp { 578 fsl,pins = < 579 MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x49 580 MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX 0x49 581 >; 582 }; 583 584 pinctrl_uart2: uart2grp { 585 fsl,pins = < 586 MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49 587 MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49 588 MX8MQ_IOMUXC_UART4_RXD_UART2_DCE_CTS_B 0x49 589 MX8MQ_IOMUXC_UART4_TXD_UART2_DCE_RTS_B 0x49 590 >; 591 }; 592 593 pinctrl_uart3: uart3grp { 594 fsl,pins = < 595 MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX 0x49 596 MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX 0x49 597 >; 598 }; 599 600 pinctrl_uart4: uart4grp { 601 fsl,pins = < 602 MX8MQ_IOMUXC_ECSPI2_SCLK_UART4_DCE_RX 0x49 603 MX8MQ_IOMUXC_ECSPI2_MOSI_UART4_DCE_TX 0x49 604 MX8MQ_IOMUXC_ECSPI2_MISO_UART4_DCE_CTS_B 0x49 605 MX8MQ_IOMUXC_ECSPI2_SS0_UART4_DCE_RTS_B 0x49 606 MX8MQ_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K 0x49 607 >; 608 }; 609 610 pinctrl_usdhc1: usdhc1grp { 611 fsl,pins = < 612 MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x83 613 MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc3 614 MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xc3 615 MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xc3 616 MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xc3 617 MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xc3 618 MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xc3 619 MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xc3 620 MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xc3 621 MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xc3 622 MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x83 623 MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 624 >; 625 }; 626 627 pinctrl_usdhc1_100mhz: usdhc1grp100mhz { 628 fsl,pins = < 629 MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d 630 MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd 631 MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xcd 632 MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xcd 633 MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xcd 634 MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xcd 635 MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xcd 636 MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xcd 637 MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xcd 638 MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xcd 639 MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x8d 640 MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 641 >; 642 }; 643 644 pinctrl_usdhc1_200mhz: usdhc1grp200mhz { 645 fsl,pins = < 646 MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f 647 MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf 648 MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xdf 649 MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xdf 650 MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xdf 651 MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xdf 652 MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xdf 653 MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xdf 654 MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xdf 655 MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xdf 656 MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x9f 657 MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1 658 >; 659 }; 660 661 pinctrl_usdhc2_pwr: usdhc2grppwr { 662 fsl,pins = < 663 MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41 664 >; 665 }; 666 667 pinctrl_usdhc2_gpio: usdhc2grpgpio { 668 fsl,pins = < 669 MX8MQ_IOMUXC_SD2_WP_GPIO2_IO20 0x80 /* WIFI_WAKE */ 670 >; 671 }; 672 673 pinctrl_usdhc2: usdhc2grp { 674 fsl,pins = < 675 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83 676 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3 677 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3 678 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3 679 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3 680 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3 681 >; 682 }; 683 684 pinctrl_usdhc2_100mhz: usdhc2grp100mhz { 685 fsl,pins = < 686 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d 687 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd 688 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcd 689 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcd 690 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcd 691 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcd 692 >; 693 }; 694 695 pinctrl_usdhc2_200mhz: usdhc2grp200mhz { 696 fsl,pins = < 697 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f 698 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcf 699 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcf 700 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcf 701 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcf 702 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcf 703 >; 704 }; 705 706 pinctrl_wdog: wdoggrp { 707 fsl,pins = < 708 MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6 709 >; 710 }; 711 712 pinctrl_wifi_pwr_en: wifipwrengrp { 713 fsl,pins = < 714 MX8MQ_IOMUXC_NAND_CLE_GPIO3_IO5 0x06 715 >; 716 }; 717 718 pinctrl_wwan: wwangrp { 719 fsl,pins = < 720 MX8MQ_IOMUXC_NAND_CE3_B_GPIO3_IO4 0x09 /* nWWAN_DISABLE */ 721 MX8MQ_IOMUXC_NAND_DATA02_GPIO3_IO8 0x80 /* nWoWWAN */ 722 MX8MQ_IOMUXC_NAND_DATA03_GPIO3_IO9 0x19 /* WWAN_RESET */ 723 >; 724 }; 725}; 726 727&pgc_gpu { 728 power-supply = <&buck3_reg>; 729}; 730 731&pgc_vpu { 732 power-supply = <&buck4_reg>; 733}; 734 735&pwm1 { 736 pinctrl-names = "default"; 737 pinctrl-0 = <&pinctrl_bl>; 738 status = "okay"; 739}; 740 741&snvs_pwrkey { 742 status = "okay"; 743}; 744 745&uart1 { /* console */ 746 pinctrl-names = "default"; 747 pinctrl-0 = <&pinctrl_uart1>; 748 status = "okay"; 749}; 750 751&uart3 { /* GNSS */ 752 pinctrl-names = "default"; 753 pinctrl-0 = <&pinctrl_uart3>; 754 status = "okay"; 755}; 756 757&uart4 { /* BT */ 758 pinctrl-names = "default"; 759 pinctrl-0 = <&pinctrl_uart4>, <&pinctrl_bt>; 760 uart-has-rtscts; 761 status = "okay"; 762}; 763 764&usb3_phy0 { 765 vbus-supply = <®_5v_p>; 766 status = "okay"; 767}; 768 769&usb3_phy1 { 770 vbus-supply = <®_5v_p>; 771 status = "okay"; 772}; 773 774&usb_dwc3_0 { 775 #address-cells = <1>; 776 #size-cells = <0>; 777 dr_mode = "otg"; 778 status = "okay"; 779 780 port@0 { 781 reg = <0>; 782 783 typec_hs: endpoint { 784 remote-endpoint = <&usb_con_hs>; 785 }; 786 }; 787 788 port@1 { 789 reg = <1>; 790 791 typec_ss: endpoint { 792 remote-endpoint = <&usb_con_ss>; 793 }; 794 }; 795}; 796 797&usb_dwc3_1 { 798 dr_mode = "host"; 799 status = "okay"; 800}; 801 802&usdhc1 { 803 assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>; 804 assigned-clock-rates = <400000000>; 805 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 806 pinctrl-0 = <&pinctrl_usdhc1>; 807 pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 808 pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 809 bus-width = <8>; 810 non-removable; 811 status = "okay"; 812}; 813 814&usdhc2 { 815 assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>; 816 assigned-clock-rates = <200000000>; 817 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 818 pinctrl-0 = <&pinctrl_usdhc2>; 819 pinctrl-1 = <&pinctrl_usdhc2_100mhz>; 820 pinctrl-2 = <&pinctrl_usdhc2_200mhz>; 821 bus-width = <4>; 822 vmmc-supply = <®_usdhc2_vmmc>; 823 power-supply = <&wifi_pwr_en>; 824 non-removable; 825 disable-wp; 826 cap-sdio-irq; 827 keep-power-in-suspend; 828 wakeup-source; 829 status = "okay"; 830}; 831 832&wdog1 { 833 pinctrl-names = "default"; 834 pinctrl-0 = <&pinctrl_wdog>; 835 fsl,ext-reset-output; 836 status = "okay"; 837}; 838