0001 // SPDX-License-Identifier: GPL-2.0+
0002 /*
0003 * Copyright 2018-2020 Purism SPC
0004 */
0005
0006 /dts-v1/;
0007
0008 #include "dt-bindings/input/input.h"
0009 #include <dt-bindings/interrupt-controller/irq.h>
0010 #include "dt-bindings/pwm/pwm.h"
0011 #include "dt-bindings/usb/pd.h"
0012 #include "imx8mq.dtsi"
0013
0014 / {
0015 model = "Purism Librem 5";
0016 compatible = "purism,librem5", "fsl,imx8mq";
0017 chassis-type = "handset";
0018
0019 backlight_dsi: backlight-dsi {
0020 compatible = "led-backlight";
0021 leds = <&led_backlight>;
0022 };
0023
0024 pmic_osc: clock-pmic {
0025 compatible = "fixed-clock";
0026 #clock-cells = <0>;
0027 clock-frequency = <32768>;
0028 clock-output-names = "pmic_osc";
0029 };
0030
0031 chosen {
0032 stdout-path = &uart1;
0033 };
0034
0035 gpio-keys {
0036 compatible = "gpio-keys";
0037 pinctrl-names = "default";
0038 pinctrl-0 = <&pinctrl_keys>;
0039
0040 key-vol-down {
0041 label = "VOL_DOWN";
0042 gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
0043 linux,code = <KEY_VOLUMEDOWN>;
0044 debounce-interval = <50>;
0045 wakeup-source;
0046 };
0047
0048 key-vol-up {
0049 label = "VOL_UP";
0050 gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
0051 linux,code = <KEY_VOLUMEUP>;
0052 debounce-interval = <50>;
0053 wakeup-source;
0054 };
0055 };
0056
0057 reg_aud_1v8: regulator-audio-1v8 {
0058 compatible = "regulator-fixed";
0059 pinctrl-names = "default";
0060 pinctrl-0 = <&pinctrl_audiopwr>;
0061 regulator-name = "AUDIO_PWR_EN";
0062 regulator-min-microvolt = <1800000>;
0063 regulator-max-microvolt = <1800000>;
0064 gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
0065 enable-active-high;
0066 };
0067
0068 /*
0069 * the pinctrl for reg_csi_1v8 and reg_vcam_1v8 is added to the PMIC
0070 * since we can't have it twice in the 2 different regulator nodes.
0071 */
0072 reg_csi_1v8: regulator-csi-1v8 {
0073 compatible = "regulator-fixed";
0074 regulator-name = "CAMERA_VDDIO_1V8";
0075 regulator-min-microvolt = <1800000>;
0076 regulator-max-microvolt = <1800000>;
0077 vin-supply = <®_vdd_3v3>;
0078 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
0079 enable-active-high;
0080 };
0081
0082 /* controlled by the CAMERA_POWER_KEY HKS */
0083 reg_vcam_1v2: regulator-vcam-1v2 {
0084 compatible = "regulator-fixed";
0085 regulator-name = "CAMERA_VDDD_1V2";
0086 regulator-min-microvolt = <1200000>;
0087 regulator-max-microvolt = <1200000>;
0088 vin-supply = <®_vdd_1v8>;
0089 enable-active-high;
0090 };
0091
0092 reg_vcam_2v8: regulator-vcam-2v8 {
0093 compatible = "regulator-fixed";
0094 regulator-name = "CAMERA_VDDA_2V8";
0095 regulator-min-microvolt = <2800000>;
0096 regulator-max-microvolt = <2800000>;
0097 vin-supply = <®_vdd_3v3>;
0098 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
0099 enable-active-high;
0100 };
0101
0102 reg_gnss: regulator-gnss {
0103 compatible = "regulator-fixed";
0104 pinctrl-names = "default";
0105 pinctrl-0 = <&pinctrl_gnsspwr>;
0106 regulator-name = "GNSS";
0107 regulator-min-microvolt = <3300000>;
0108 regulator-max-microvolt = <3300000>;
0109 gpio = <&gpio3 12 GPIO_ACTIVE_HIGH>;
0110 enable-active-high;
0111 };
0112
0113 reg_hub: regulator-hub {
0114 compatible = "regulator-fixed";
0115 pinctrl-names = "default";
0116 pinctrl-0 = <&pinctrl_hub_pwr>;
0117 regulator-name = "HUB";
0118 regulator-min-microvolt = <3300000>;
0119 regulator-max-microvolt = <3300000>;
0120 gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
0121 enable-active-high;
0122 };
0123
0124 reg_lcd_1v8: regulator-lcd-1v8 {
0125 compatible = "regulator-fixed";
0126 pinctrl-names = "default";
0127 pinctrl-0 = <&pinctrl_dsien>;
0128 regulator-name = "LCD_1V8";
0129 regulator-min-microvolt = <1800000>;
0130 regulator-max-microvolt = <1800000>;
0131 vin-supply = <®_vdd_1v8>;
0132 gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
0133 enable-active-high;
0134 /* Otherwise i2c3 is not functional */
0135 regulator-always-on;
0136 };
0137
0138 reg_lcd_3v4: regulator-lcd-3v4 {
0139 compatible = "regulator-fixed";
0140 regulator-name = "LCD_3V4";
0141 pinctrl-names = "default";
0142 pinctrl-0 = <&pinctrl_dsibiasen>;
0143 vin-supply = <®_vsys_3v4>;
0144 gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
0145 enable-active-high;
0146 };
0147
0148 reg_vdd_sen: regulator-vdd-sen {
0149 compatible = "regulator-fixed";
0150 regulator-name = "VDD_SEN";
0151 regulator-min-microvolt = <3300000>;
0152 regulator-max-microvolt = <3300000>;
0153 };
0154
0155 reg_vdd_1v8: regulator-vdd-1v8 {
0156 compatible = "regulator-fixed";
0157 regulator-name = "VDD_1V8";
0158 regulator-min-microvolt = <1800000>;
0159 regulator-max-microvolt = <1800000>;
0160 vin-supply = <&buck7_reg>;
0161 };
0162
0163 reg_vdd_3v3: regulator-vdd-3v3 {
0164 compatible = "regulator-fixed";
0165 regulator-name = "VDD_3V3";
0166 regulator-min-microvolt = <3300000>;
0167 regulator-max-microvolt = <3300000>;
0168 };
0169
0170 reg_vsys_3v4: regulator-vsys-3v4 {
0171 compatible = "regulator-fixed";
0172 regulator-name = "VSYS_3V4";
0173 regulator-min-microvolt = <3400000>;
0174 regulator-max-microvolt = <3400000>;
0175 regulator-always-on;
0176 };
0177
0178 reg_wifi_3v3: regulator-wifi-3v3 {
0179 compatible = "regulator-fixed";
0180 pinctrl-names = "default";
0181 pinctrl-0 = <&pinctrl_wifi_pwr>;
0182 regulator-name = "3V3_WIFI";
0183 regulator-min-microvolt = <3300000>;
0184 regulator-max-microvolt = <3300000>;
0185 gpio = <&gpio3 10 GPIO_ACTIVE_HIGH>;
0186 enable-active-high;
0187 vin-supply = <®_vdd_3v3>;
0188 };
0189
0190 sound {
0191 compatible = "simple-audio-card";
0192 pinctrl-names = "default";
0193 pinctrl-0 = <&pinctrl_hp>;
0194 simple-audio-card,name = "Librem 5";
0195 simple-audio-card,format = "i2s";
0196 simple-audio-card,widgets =
0197 "Headphone", "Headphones",
0198 "Microphone", "Headset Mic",
0199 "Microphone", "Digital Mic",
0200 "Speaker", "Speaker";
0201 simple-audio-card,routing =
0202 "Headphones", "HPOUTL",
0203 "Headphones", "HPOUTR",
0204 "Speaker", "SPKOUTL",
0205 "Speaker", "SPKOUTR",
0206 "Headset Mic", "MICBIAS",
0207 "IN3R", "Headset Mic",
0208 "DMICDAT", "Digital Mic";
0209 simple-audio-card,hp-det-gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>;
0210
0211 simple-audio-card,cpu {
0212 sound-dai = <&sai2>;
0213 };
0214
0215 simple-audio-card,codec {
0216 sound-dai = <&codec>;
0217 clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
0218 frame-master;
0219 bitclock-master;
0220 };
0221 };
0222
0223 sound-wwan {
0224 compatible = "simple-audio-card";
0225 simple-audio-card,name = "Modem";
0226 simple-audio-card,format = "i2s";
0227
0228 simple-audio-card,cpu {
0229 sound-dai = <&sai6>;
0230 frame-inversion;
0231 };
0232
0233 simple-audio-card,codec {
0234 sound-dai = <&bm818_codec>;
0235 frame-master;
0236 bitclock-master;
0237 };
0238 };
0239
0240 usdhc2_pwrseq: pwrseq {
0241 pinctrl-names = "default";
0242 pinctrl-0 = <&pinctrl_bt>, <&pinctrl_wifi_disable>;
0243 compatible = "mmc-pwrseq-simple";
0244 reset-gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>,
0245 <&gpio4 29 GPIO_ACTIVE_HIGH>;
0246 };
0247
0248 bm818_codec: sound-wwan-codec {
0249 compatible = "broadmobi,bm818", "option,gtm601";
0250 #sound-dai-cells = <0>;
0251 };
0252
0253 vibrator {
0254 compatible = "pwm-vibrator";
0255 pwms = <&pwm1 0 1000000000 0>;
0256 pwm-names = "enable";
0257 vcc-supply = <®_vdd_3v3>;
0258 };
0259 };
0260
0261 &A53_0 {
0262 cpu-supply = <&buck2_reg>;
0263 };
0264
0265 &A53_1 {
0266 cpu-supply = <&buck2_reg>;
0267 };
0268
0269 &A53_2 {
0270 cpu-supply = <&buck2_reg>;
0271 };
0272
0273 &A53_3 {
0274 cpu-supply = <&buck2_reg>;
0275 };
0276
0277 &csi1 {
0278 status = "okay";
0279 };
0280
0281 &ddrc {
0282 operating-points-v2 = <&ddrc_opp_table>;
0283 status = "okay";
0284
0285 ddrc_opp_table: opp-table {
0286 compatible = "operating-points-v2";
0287
0288 opp-25M {
0289 opp-hz = /bits/ 64 <25000000>;
0290 };
0291
0292 opp-100M {
0293 opp-hz = /bits/ 64 <100000000>;
0294 };
0295
0296 opp-800M {
0297 opp-hz = /bits/ 64 <800000000>;
0298 };
0299 };
0300 };
0301
0302 &dphy {
0303 status = "okay";
0304 };
0305
0306 &ecspi1 {
0307 pinctrl-names = "default";
0308 pinctrl-0 = <&pinctrl_ecspi1>;
0309 cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
0310 #address-cells = <1>;
0311 #size-cells = <0>;
0312 status = "okay";
0313
0314 nor_flash: flash@0 {
0315 compatible = "jedec,spi-nor";
0316 reg = <0>;
0317 spi-max-frequency = <1000000>;
0318 #address-cells = <1>;
0319 #size-cells = <1>;
0320
0321 partition@0 {
0322 label = "protected0";
0323 reg = <0x0 0x30000>;
0324 read-only;
0325 };
0326
0327 partition@30000 {
0328 label = "firmware";
0329 reg = <0x30000 0x1d0000>;
0330 read-only;
0331 };
0332 };
0333 };
0334
0335 &gpio1 {
0336 pinctrl-names = "default";
0337 pinctrl-0 = <&pinctrl_pmic_5v>;
0338
0339 pmic-5v-hog {
0340 gpio-hog;
0341 gpios = <1 GPIO_ACTIVE_HIGH>;
0342 input;
0343 lane-mapping = "pmic-5v";
0344 };
0345 };
0346
0347 &iomuxc {
0348 pinctrl_audiopwr: audiopwrgrp {
0349 fsl,pins = <
0350 /* AUDIO_POWER_EN_3V3 */
0351 MX8MQ_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x83
0352 >;
0353 };
0354
0355 pinctrl_bl: blgrp {
0356 fsl,pins = <
0357 /* BACKLINGE_EN */
0358 MX8MQ_IOMUXC_NAND_DQS_GPIO3_IO14 0x83
0359 >;
0360 };
0361
0362 pinctrl_bt: btgrp {
0363 fsl,pins = <
0364 /* BT_REG_ON */
0365 MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x83
0366 >;
0367 };
0368
0369 pinctrl_camera_pwr: camerapwrgrp {
0370 fsl,pins = <
0371 /* CAMERA_PWR_EN_3V3 */
0372 MX8MQ_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x83
0373 >;
0374 };
0375
0376 pinctrl_csi1: csi1grp {
0377 fsl,pins = <
0378 /* CSI1_NRST */
0379 MX8MQ_IOMUXC_ENET_RXC_GPIO1_IO25 0x83
0380 >;
0381 };
0382
0383 pinctrl_charger_in: chargeringrp {
0384 fsl,pins = <
0385 /* CHRG_INT */
0386 MX8MQ_IOMUXC_NAND_CE2_B_GPIO3_IO3 0x80
0387 >;
0388 };
0389
0390 pinctrl_dsibiasen: dsibiasengrp {
0391 fsl,pins = <
0392 /* DSI_BIAS_EN */
0393 MX8MQ_IOMUXC_ENET_TD1_GPIO1_IO20 0x83
0394 >;
0395 };
0396
0397 pinctrl_dsien: dsiengrp {
0398 fsl,pins = <
0399 /* DSI_EN_3V3 */
0400 MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x83
0401 >;
0402 };
0403
0404 pinctrl_dsirst: dsirstgrp {
0405 fsl,pins = <
0406 /* DSI_RST */
0407 MX8MQ_IOMUXC_ENET_RD3_GPIO1_IO29 0x83
0408 /* DSI_TE */
0409 MX8MQ_IOMUXC_ENET_RD2_GPIO1_IO28 0x83
0410 /* TP_RST */
0411 MX8MQ_IOMUXC_ENET_RX_CTL_GPIO1_IO24 0x83
0412 >;
0413 };
0414
0415 pinctrl_ecspi1: ecspigrp {
0416 fsl,pins = <
0417 MX8MQ_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x83
0418 MX8MQ_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x83
0419 MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19
0420 MX8MQ_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x83
0421 >;
0422 };
0423
0424 pinctrl_gauge: gaugegrp {
0425 fsl,pins = <
0426 /* BAT_LOW */
0427 MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20 0x80
0428 >;
0429 };
0430
0431 pinctrl_gnsspwr: gnsspwrgrp {
0432 fsl,pins = <
0433 /* GPS3V3_EN */
0434 MX8MQ_IOMUXC_NAND_DATA06_GPIO3_IO12 0x83
0435 >;
0436 };
0437
0438 pinctrl_haptic: hapticgrp {
0439 fsl,pins = <
0440 /* MOTO */
0441 MX8MQ_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT 0x83
0442 >;
0443 };
0444
0445 pinctrl_hp: hpgrp {
0446 fsl,pins = <
0447 /* HEADPHONE_DET_1V8 */
0448 MX8MQ_IOMUXC_NAND_DATA03_GPIO3_IO9 0x180
0449 >;
0450 };
0451
0452 pinctrl_hub_pwr: hubpwrgrp {
0453 fsl,pins = <
0454 /* HUB_PWR_3V3_EN */
0455 MX8MQ_IOMUXC_GPIO1_IO14_GPIO1_IO14 0x83
0456 >;
0457 };
0458
0459 pinctrl_i2c1: i2c1grp {
0460 fsl,pins = <
0461 MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000026
0462 MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000026
0463 >;
0464 };
0465
0466 pinctrl_i2c2: i2c2grp {
0467 fsl,pins = <
0468 MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL 0x40000026
0469 MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA 0x40000026
0470 >;
0471 };
0472
0473 pinctrl_i2c3: i2c3grp {
0474 fsl,pins = <
0475 MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x40000026
0476 MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x40000026
0477 >;
0478 };
0479
0480 pinctrl_i2c4: i2c4grp {
0481 fsl,pins = <
0482 MX8MQ_IOMUXC_I2C4_SCL_I2C4_SCL 0x40000026
0483 MX8MQ_IOMUXC_I2C4_SDA_I2C4_SDA 0x40000026
0484 >;
0485 };
0486
0487 pinctrl_keys: keysgrp {
0488 fsl,pins = <
0489 /* VOL- */
0490 MX8MQ_IOMUXC_ENET_MDIO_GPIO1_IO17 0x01C0
0491 /* VOL+ */
0492 MX8MQ_IOMUXC_ENET_MDC_GPIO1_IO16 0x01C0
0493 >;
0494 };
0495
0496 pinctrl_led_b: ledbgrp {
0497 fsl,pins = <
0498 /* LED_B */
0499 MX8MQ_IOMUXC_GPIO1_IO13_PWM2_OUT 0x06
0500 >;
0501 };
0502
0503 pinctrl_led_g: ledggrp {
0504 fsl,pins = <
0505 /* LED_G */
0506 MX8MQ_IOMUXC_SAI3_MCLK_PWM4_OUT 0x06
0507 >;
0508 };
0509
0510 pinctrl_led_r: ledrgrp {
0511 fsl,pins = <
0512 /* LED_R */
0513 MX8MQ_IOMUXC_SPDIF_TX_PWM3_OUT 0x06
0514 >;
0515 };
0516
0517 pinctrl_mag: maggrp {
0518 fsl,pins = <
0519 /* INT_MAG */
0520 MX8MQ_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x80
0521 >;
0522 };
0523
0524 pinctrl_pmic: pmicgrp {
0525 fsl,pins = <
0526 /* PMIC_NINT */
0527 MX8MQ_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x80
0528 >;
0529 };
0530
0531 pinctrl_pmic_5v: pmic5vgrp {
0532 fsl,pins = <
0533 /* PMIC_5V */
0534 MX8MQ_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x80
0535 >;
0536 };
0537
0538 pinctrl_prox: proxgrp {
0539 fsl,pins = <
0540 /* INT_LIGHT */
0541 MX8MQ_IOMUXC_NAND_DATA01_GPIO3_IO7 0x80
0542 >;
0543 };
0544
0545 pinctrl_rtc: rtcgrp {
0546 fsl,pins = <
0547 /* RTC_INT */
0548 MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x80
0549 >;
0550 };
0551
0552 pinctrl_sai2: sai2grp {
0553 fsl,pins = <
0554 MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0 0xd6
0555 MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC 0xd6
0556 MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK 0xd6
0557 MX8MQ_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0 0xd6
0558 MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK 0xd6
0559 >;
0560 };
0561
0562 pinctrl_sai6: sai6grp {
0563 fsl,pins = <
0564 MX8MQ_IOMUXC_SAI1_RXD5_SAI6_RX_DATA0 0xd6
0565 MX8MQ_IOMUXC_SAI1_RXD6_SAI6_RX_SYNC 0xd6
0566 MX8MQ_IOMUXC_SAI1_TXD4_SAI6_RX_BCLK 0xd6
0567 MX8MQ_IOMUXC_SAI1_TXD5_SAI6_TX_DATA0 0xd6
0568 >;
0569 };
0570
0571 pinctrl_tcpc: tcpcgrp {
0572 fsl,pins = <
0573 /* TCPC_INT */
0574 MX8MQ_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x01C0
0575 >;
0576 };
0577
0578 pinctrl_touch: touchgrp {
0579 fsl,pins = <
0580 /* TP_INT */
0581 MX8MQ_IOMUXC_ENET_RD1_GPIO1_IO27 0x80
0582 >;
0583 };
0584
0585 pinctrl_typec: typecgrp {
0586 fsl,pins = <
0587 /* TYPEC_MUX_EN */
0588 MX8MQ_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x83
0589 >;
0590 };
0591
0592 pinctrl_uart1: uart1grp {
0593 fsl,pins = <
0594 MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX 0x49
0595 MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX 0x49
0596 >;
0597 };
0598
0599 pinctrl_uart2: uart2grp {
0600 fsl,pins = <
0601 MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49
0602 MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49
0603 >;
0604 };
0605
0606 pinctrl_uart3: uart3grp {
0607 fsl,pins = <
0608 MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX 0x49
0609 MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX 0x49
0610 >;
0611 };
0612
0613 pinctrl_uart4: uart4grp {
0614 fsl,pins = <
0615 MX8MQ_IOMUXC_ECSPI2_SCLK_UART4_DCE_RX 0x49
0616 MX8MQ_IOMUXC_ECSPI2_MOSI_UART4_DCE_TX 0x49
0617 MX8MQ_IOMUXC_ECSPI2_MISO_UART4_DCE_CTS_B 0x49
0618 MX8MQ_IOMUXC_ECSPI2_SS0_UART4_DCE_RTS_B 0x49
0619 >;
0620 };
0621
0622 pinctrl_usdhc1: usdhc1grp {
0623 fsl,pins = <
0624 MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x83
0625 MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc3
0626 MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xc3
0627 MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xc3
0628 MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xc3
0629 MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xc3
0630 MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xc3
0631 MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xc3
0632 MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xc3
0633 MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xc3
0634 MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x83
0635 MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1
0636 >;
0637 };
0638
0639 pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
0640 fsl,pins = <
0641 MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d
0642 MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd
0643 MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xcd
0644 MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xcd
0645 MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xcd
0646 MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xcd
0647 MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xcd
0648 MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xcd
0649 MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xcd
0650 MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xcd
0651 MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x8d
0652 MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1
0653 >;
0654 };
0655
0656 pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
0657 fsl,pins = <
0658 MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f
0659 MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf
0660 MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0 0xdf
0661 MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1 0xdf
0662 MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2 0xdf
0663 MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3 0xdf
0664 MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4 0xdf
0665 MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5 0xdf
0666 MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6 0xdf
0667 MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7 0xdf
0668 MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x9f
0669 MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0xc1
0670 >;
0671 };
0672
0673 pinctrl_usdhc2: usdhc2grp {
0674 fsl,pins = <
0675 MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80
0676 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83
0677 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3
0678 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3
0679 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3
0680 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3
0681 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3
0682 MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1
0683 >;
0684 };
0685
0686 pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
0687 fsl,pins = <
0688 MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80
0689 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d
0690 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd
0691 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcd
0692 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcd
0693 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcd
0694 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcd
0695 MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1
0696 >;
0697 };
0698
0699 pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
0700 fsl,pins = <
0701 MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x80
0702 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f
0703 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcf
0704 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcf
0705 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcf
0706 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcf
0707 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcf
0708 MX8MQ_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0xc1
0709 >;
0710 };
0711
0712 pinctrl_wifi_disable: wifidisablegrp {
0713 fsl,pins = <
0714 /* WIFI_REG_ON */
0715 MX8MQ_IOMUXC_SAI3_RXC_GPIO4_IO29 0x83
0716 >;
0717 };
0718
0719 pinctrl_wifi_pwr: wifipwrgrp {
0720 fsl,pins = <
0721 /* WIFI3V3_EN */
0722 MX8MQ_IOMUXC_NAND_DATA04_GPIO3_IO10 0x83
0723 >;
0724 };
0725
0726 pinctrl_wdog: wdoggrp {
0727 fsl,pins = <
0728 /* nWDOG */
0729 MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x1f
0730 >;
0731 };
0732 };
0733
0734 &i2c1 {
0735 clock-frequency = <387000>;
0736 pinctrl-names = "default";
0737 pinctrl-0 = <&pinctrl_i2c1>;
0738 status = "okay";
0739
0740 typec_pd: usb-pd@3f {
0741 compatible = "ti,tps6598x";
0742 reg = <0x3f>;
0743 pinctrl-names = "default";
0744 pinctrl-0 = <&pinctrl_typec>, <&pinctrl_tcpc>;
0745 interrupt-parent = <&gpio1>;
0746 interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
0747 interrupt-names = "irq";
0748
0749 connector {
0750 ports {
0751 #address-cells = <1>;
0752 #size-cells = <0>;
0753
0754 port@0 {
0755 reg = <0>;
0756
0757 usb_con_hs: endpoint {
0758 remote-endpoint = <&typec_hs>;
0759 };
0760 };
0761
0762 port@1 {
0763 reg = <1>;
0764
0765 usb_con_ss: endpoint {
0766 remote-endpoint = <&typec_ss>;
0767 };
0768 };
0769 };
0770 };
0771 };
0772
0773 pmic: pmic@4b {
0774 compatible = "rohm,bd71837";
0775 reg = <0x4b>;
0776 pinctrl-names = "default";
0777 pinctrl-0 = <&pinctrl_pmic>, <&pinctrl_camera_pwr>;
0778 clocks = <&pmic_osc>;
0779 clock-names = "osc";
0780 clock-output-names = "pmic_clk";
0781 interrupt-parent = <&gpio1>;
0782 interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
0783 rohm,reset-snvs-powered;
0784
0785 regulators {
0786 buck1_reg: BUCK1 {
0787 regulator-name = "buck1";
0788 regulator-min-microvolt = <700000>;
0789 regulator-max-microvolt = <1300000>;
0790 regulator-boot-on;
0791 regulator-ramp-delay = <1250>;
0792 rohm,dvs-run-voltage = <900000>;
0793 rohm,dvs-idle-voltage = <850000>;
0794 rohm,dvs-suspend-voltage = <800000>;
0795 regulator-always-on;
0796 };
0797
0798 buck2_reg: BUCK2 {
0799 regulator-name = "buck2";
0800 regulator-min-microvolt = <700000>;
0801 regulator-max-microvolt = <1300000>;
0802 regulator-boot-on;
0803 regulator-ramp-delay = <1250>;
0804 rohm,dvs-run-voltage = <1000000>;
0805 rohm,dvs-idle-voltage = <900000>;
0806 regulator-always-on;
0807 };
0808
0809 buck3_reg: BUCK3 {
0810 regulator-name = "buck3";
0811 regulator-min-microvolt = <700000>;
0812 regulator-max-microvolt = <1300000>;
0813 regulator-boot-on;
0814 rohm,dvs-run-voltage = <900000>;
0815 };
0816
0817 buck4_reg: BUCK4 {
0818 regulator-name = "buck4";
0819 regulator-min-microvolt = <700000>;
0820 regulator-max-microvolt = <1300000>;
0821 rohm,dvs-run-voltage = <1000000>;
0822 };
0823
0824 buck5_reg: BUCK5 {
0825 regulator-name = "buck5";
0826 regulator-min-microvolt = <700000>;
0827 regulator-max-microvolt = <1350000>;
0828 regulator-boot-on;
0829 regulator-always-on;
0830 };
0831
0832 buck6_reg: BUCK6 {
0833 regulator-name = "buck6";
0834 regulator-min-microvolt = <3000000>;
0835 regulator-max-microvolt = <3300000>;
0836 regulator-boot-on;
0837 regulator-always-on;
0838 };
0839
0840 buck7_reg: BUCK7 {
0841 regulator-name = "buck7";
0842 regulator-min-microvolt = <1605000>;
0843 regulator-max-microvolt = <1995000>;
0844 regulator-boot-on;
0845 regulator-always-on;
0846 };
0847
0848 buck8_reg: BUCK8 {
0849 regulator-name = "buck8";
0850 regulator-min-microvolt = <800000>;
0851 regulator-max-microvolt = <1400000>;
0852 regulator-boot-on;
0853 regulator-always-on;
0854 };
0855
0856 ldo1_reg: LDO1 {
0857 regulator-name = "ldo1";
0858 regulator-min-microvolt = <3000000>;
0859 regulator-max-microvolt = <3300000>;
0860 regulator-boot-on;
0861 /* leave on for snvs power button */
0862 regulator-always-on;
0863 };
0864
0865 ldo2_reg: LDO2 {
0866 regulator-name = "ldo2";
0867 regulator-min-microvolt = <900000>;
0868 regulator-max-microvolt = <900000>;
0869 regulator-boot-on;
0870 /* leave on for snvs power button */
0871 regulator-always-on;
0872 };
0873
0874 ldo3_reg: LDO3 {
0875 regulator-name = "ldo3";
0876 regulator-min-microvolt = <1800000>;
0877 regulator-max-microvolt = <3300000>;
0878 regulator-boot-on;
0879 regulator-always-on;
0880 };
0881
0882 ldo4_reg: LDO4 {
0883 regulator-name = "ldo4";
0884 regulator-min-microvolt = <900000>;
0885 regulator-max-microvolt = <1800000>;
0886 regulator-boot-on;
0887 regulator-always-on;
0888 };
0889
0890 ldo5_reg: LDO5 {
0891 /* VDD_PHY_0V9 - MIPI and HDMI domains */
0892 regulator-name = "ldo5";
0893 regulator-min-microvolt = <1800000>;
0894 regulator-max-microvolt = <3300000>;
0895 regulator-always-on;
0896 };
0897
0898 ldo6_reg: LDO6 {
0899 /* VDD_PHY_0V9 - MIPI, HDMI and USB domains */
0900 regulator-name = "ldo6";
0901 regulator-min-microvolt = <900000>;
0902 regulator-max-microvolt = <1800000>;
0903 regulator-boot-on;
0904 regulator-always-on;
0905 };
0906
0907 ldo7_reg: LDO7 {
0908 /* VDD_PHY_3V3 - USB domain */
0909 regulator-name = "ldo7";
0910 regulator-min-microvolt = <1800000>;
0911 regulator-max-microvolt = <3300000>;
0912 regulator-boot-on;
0913 regulator-always-on;
0914 };
0915 };
0916 };
0917
0918 rtc@68 {
0919 compatible = "microcrystal,rv4162";
0920 reg = <0x68>;
0921 pinctrl-names = "default";
0922 pinctrl-0 = <&pinctrl_rtc>;
0923 interrupt-parent = <&gpio1>;
0924 interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
0925 };
0926 };
0927
0928 &i2c2 {
0929 clock-frequency = <387000>;
0930 pinctrl-names = "default";
0931 pinctrl-0 = <&pinctrl_i2c2>;
0932 status = "okay";
0933
0934 magnetometer@1e {
0935 compatible = "st,lsm9ds1-magn";
0936 reg = <0x1e>;
0937 pinctrl-names = "default";
0938 pinctrl-0 = <&pinctrl_mag>;
0939 interrupt-parent = <&gpio3>;
0940 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
0941 vdd-supply = <®_vdd_sen>;
0942 vddio-supply = <®_vdd_1v8>;
0943 };
0944
0945 regulator@3e {
0946 compatible = "tps65132";
0947 reg = <0x3e>;
0948
0949 reg_lcd_avdd: outp {
0950 regulator-name = "LCD_AVDD";
0951 vin-supply = <®_lcd_3v4>;
0952 };
0953
0954 reg_lcd_avee: outn {
0955 regulator-name = "LCD_AVEE";
0956 vin-supply = <®_lcd_3v4>;
0957 };
0958 };
0959
0960 proximity: prox@60 {
0961 compatible = "vishay,vcnl4040";
0962 reg = <0x60>;
0963 pinctrl-names = "default";
0964 pinctrl-0 = <&pinctrl_prox>;
0965 interrupt-parent = <&gpio3>;
0966 interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
0967 };
0968
0969 accel_gyro: accel-gyro@6a {
0970 compatible = "st,lsm9ds1-imu";
0971 reg = <0x6a>;
0972 vdd-supply = <®_vdd_sen>;
0973 vddio-supply = <®_vdd_1v8>;
0974 };
0975 };
0976
0977 &i2c3 {
0978 clock-frequency = <387000>;
0979 pinctrl-names = "default";
0980 pinctrl-0 = <&pinctrl_i2c3>;
0981 status = "okay";
0982
0983 codec: audio-codec@1a {
0984 compatible = "wlf,wm8962";
0985 reg = <0x1a>;
0986 clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
0987 assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
0988 assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
0989 assigned-clock-rates = <24576000>;
0990 #sound-dai-cells = <0>;
0991 mic-cfg = <0x200>;
0992 DCVDD-supply = <®_aud_1v8>;
0993 DBVDD-supply = <®_aud_1v8>;
0994 AVDD-supply = <®_aud_1v8>;
0995 CPVDD-supply = <®_aud_1v8>;
0996 MICVDD-supply = <®_aud_1v8>;
0997 PLLVDD-supply = <®_aud_1v8>;
0998 SPKVDD1-supply = <®_vsys_3v4>;
0999 SPKVDD2-supply = <®_vsys_3v4>;
1000 gpio-cfg = <
1001 0x0000 /* n/c */
1002 0x0001 /* gpio2, 1: default */
1003 0x0013 /* gpio3, 2: dmicclk */
1004 0x0000 /* n/c, 3: default */
1005 0x8014 /* gpio5, 4: dmic_dat */
1006 0x0000 /* gpio6, 5: default */
1007 >;
1008 };
1009
1010 camera_front: camera@20 {
1011 compatible = "hynix,hi846";
1012 reg = <0x20>;
1013 pinctrl-names = "default";
1014 pinctrl-0 = <&pinctrl_csi1>;
1015 clocks = <&clk IMX8MQ_CLK_CLKO2>;
1016 assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>;
1017 assigned-clock-rates = <25000000>;
1018 reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
1019 vdda-supply = <®_vcam_2v8>;
1020 vddd-supply = <®_vcam_1v2>;
1021 vddio-supply = <®_csi_1v8>;
1022 rotation = <90>;
1023 orientation = <0>;
1024
1025 port {
1026 camera1_ep: endpoint {
1027 data-lanes = <1 2>;
1028 link-frequencies = /bits/ 64
1029 <80000000 200000000 300000000>;
1030 remote-endpoint = <&mipi1_sensor_ep>;
1031 };
1032 };
1033 };
1034
1035 backlight@36 {
1036 compatible = "ti,lm36922";
1037 reg = <0x36>;
1038 pinctrl-names = "default";
1039 pinctrl-0 = <&pinctrl_bl>;
1040 #address-cells = <1>;
1041 #size-cells = <0>;
1042 enable-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
1043 vled-supply = <®_vsys_3v4>;
1044 ti,ovp-microvolt = <25000000>;
1045
1046 led_backlight: led@0 {
1047 reg = <0>;
1048 label = ":backlight";
1049 linux,default-trigger = "backlight";
1050 led-max-microamp = <20000>;
1051 };
1052 };
1053
1054 touchscreen@38 {
1055 compatible = "edt,edt-ft5506";
1056 reg = <0x38>;
1057 pinctrl-names = "default";
1058 pinctrl-0 = <&pinctrl_touch>;
1059 interrupt-parent = <&gpio1>;
1060 interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
1061 touchscreen-size-x = <720>;
1062 touchscreen-size-y = <1440>;
1063 vcc-supply = <®_lcd_1v8>;
1064 };
1065 };
1066
1067 &i2c4 {
1068 clock-frequency = <387000>;
1069 pinctrl-names = "default";
1070 pinctrl-0 = <&pinctrl_i2c4>;
1071 status = "okay";
1072
1073 bat: fuel-gauge@36 {
1074 compatible = "maxim,max17055";
1075 reg = <0x36>;
1076 interrupt-parent = <&gpio3>;
1077 interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
1078 pinctrl-names = "default";
1079 pinctrl-0 = <&pinctrl_gauge>;
1080 maxim,over-heat-temp = <700>;
1081 maxim,over-volt = <4500>;
1082 maxim,rsns-microohm = <5000>;
1083 };
1084
1085 bq25895: charger@6a {
1086 compatible = "ti,bq25895", "ti,bq25890";
1087 reg = <0x6a>;
1088 pinctrl-names = "default";
1089 pinctrl-0 = <&pinctrl_charger_in>;
1090 interrupt-parent = <&gpio3>;
1091 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
1092 phys = <&usb3_phy0>;
1093 ti,precharge-current = <130000>; /* uA */
1094 ti,minimum-sys-voltage = <3700000>; /* uV */
1095 ti,boost-voltage = <5000000>; /* uV */
1096 ti,boost-max-current = <1500000>; /* uA */
1097 ti,use-vinmin-threshold = <1>; /* enable VINDPM */
1098 ti,vinmin-threshold = <3900000>; /* uV */
1099 monitored-battery = <&bat>;
1100 power-supplies = <&typec_pd>;
1101 };
1102 };
1103
1104 &lcdif {
1105 status = "okay";
1106 };
1107
1108 &mipi_csi1 {
1109 #address-cells = <1>;
1110 #size-cells = <0>;
1111 status = "okay";
1112
1113 ports {
1114 port@0 {
1115 reg = <0>;
1116
1117 mipi1_sensor_ep: endpoint {
1118 remote-endpoint = <&camera1_ep>;
1119 data-lanes = <1 2>;
1120 };
1121 };
1122 };
1123 };
1124
1125 &mipi_dsi {
1126 #address-cells = <1>;
1127 #size-cells = <0>;
1128 status = "okay";
1129
1130 lcd_panel: panel@0 {
1131 compatible = "mantix,mlaf057we51-x";
1132 reg = <0>;
1133 pinctrl-names = "default";
1134 pinctrl-0 = <&pinctrl_dsirst>;
1135 avdd-supply = <®_lcd_avdd>;
1136 avee-supply = <®_lcd_avee>;
1137 vddi-supply = <®_lcd_1v8>;
1138 backlight = <&backlight_dsi>;
1139 reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
1140 mantix,tp-rstn-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
1141
1142 port {
1143 panel_in: endpoint {
1144 remote-endpoint = <&mipi_dsi_out>;
1145 };
1146 };
1147 };
1148
1149 ports {
1150 port@1 {
1151 reg = <1>;
1152
1153 mipi_dsi_out: endpoint {
1154 remote-endpoint = <&panel_in>;
1155 };
1156 };
1157 };
1158 };
1159
1160 &pgc_gpu {
1161 power-supply = <&buck3_reg>;
1162 };
1163
1164 &pgc_mipi {
1165 power-supply = <&ldo5_reg>;
1166 };
1167
1168 &pgc_vpu {
1169 power-supply = <&buck4_reg>;
1170 };
1171
1172 &pwm1 {
1173 pinctrl-names = "default";
1174 pinctrl-0 = <&pinctrl_haptic>;
1175 status = "okay";
1176 };
1177
1178 &pwm2 {
1179 pinctrl-names = "default";
1180 pinctrl-0 = <&pinctrl_led_b>;
1181 status = "okay";
1182 };
1183
1184 &pwm3 {
1185 pinctrl-names = "default";
1186 pinctrl-0 = <&pinctrl_led_r>;
1187 status = "okay";
1188 };
1189
1190 &pwm4 {
1191 pinctrl-names = "default";
1192 pinctrl-0 = <&pinctrl_led_g>;
1193 status = "okay";
1194 };
1195
1196 &sai2 {
1197 pinctrl-names = "default";
1198 pinctrl-0 = <&pinctrl_sai2>;
1199 assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
1200 assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
1201 assigned-clock-rates = <24576000>;
1202 status = "okay";
1203 };
1204
1205 &sai6 {
1206 pinctrl-names = "default";
1207 pinctrl-0 = <&pinctrl_sai6>;
1208 assigned-clocks = <&clk IMX8MQ_CLK_SAI6>;
1209 assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
1210 assigned-clock-rates = <24576000>;
1211 fsl,sai-synchronous-rx;
1212 status = "okay";
1213 };
1214
1215 &snvs_pwrkey {
1216 status = "okay";
1217 };
1218
1219 &snvs_rtc {
1220 status = "disabled";
1221 };
1222
1223 &uart1 { /* console */
1224 pinctrl-names = "default";
1225 pinctrl-0 = <&pinctrl_uart1>;
1226 status = "okay";
1227 };
1228
1229 &uart2 { /* TPS - GPS - DEBUG */
1230 pinctrl-names = "default";
1231 pinctrl-0 = <&pinctrl_uart2>;
1232 status = "okay";
1233
1234 gnss {
1235 compatible = "globaltop,pa6h";
1236 vcc-supply = <®_gnss>;
1237 current-speed = <9600>;
1238 };
1239 };
1240
1241 &uart3 { /* SMC */
1242 pinctrl-names = "default";
1243 pinctrl-0 = <&pinctrl_uart3>;
1244 status = "okay";
1245 };
1246
1247 &uart4 { /* BT */
1248 pinctrl-names = "default";
1249 pinctrl-0 = <&pinctrl_uart4>;
1250 uart-has-rtscts;
1251 status = "okay";
1252 };
1253
1254 &usb3_phy0 {
1255 status = "okay";
1256 };
1257
1258 &usb3_phy1 {
1259 vbus-supply = <®_hub>;
1260 status = "okay";
1261 };
1262
1263 &usb_dwc3_0 {
1264 #address-cells = <1>;
1265 #size-cells = <0>;
1266 dr_mode = "otg";
1267 snps,dis_u3_susphy_quirk;
1268 status = "okay";
1269
1270 port@0 {
1271 reg = <0>;
1272
1273 typec_hs: endpoint {
1274 remote-endpoint = <&usb_con_hs>;
1275 };
1276 };
1277
1278 port@1 {
1279 reg = <1>;
1280
1281 typec_ss: endpoint {
1282 remote-endpoint = <&usb_con_ss>;
1283 };
1284 };
1285 };
1286
1287 &usb_dwc3_1 {
1288 dr_mode = "host";
1289 status = "okay";
1290 #address-cells = <1>;
1291 #size-cells = <0>;
1292
1293 /* Microchip USB2642 */
1294 hub@1 {
1295 compatible = "usb424,2640";
1296 reg = <1>;
1297 #address-cells = <1>;
1298 #size-cells = <0>;
1299
1300 mass-storage@1 {
1301 compatible = "usb424,4041";
1302 reg = <1>;
1303 };
1304 };
1305 };
1306
1307 &usdhc1 {
1308 assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
1309 assigned-clock-rates = <400000000>;
1310 pinctrl-names = "default", "state_100mhz", "state_200mhz";
1311 pinctrl-0 = <&pinctrl_usdhc1>;
1312 pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
1313 pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
1314 bus-width = <8>;
1315 vmmc-supply = <®_vdd_3v3>;
1316 power-supply = <®_vdd_1v8>;
1317 non-removable;
1318 status = "okay";
1319 };
1320
1321 &usdhc2 {
1322 assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
1323 assigned-clock-rates = <200000000>;
1324 pinctrl-names = "default", "state_100mhz", "state_200mhz";
1325 pinctrl-0 = <&pinctrl_usdhc2>;
1326 pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
1327 pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
1328 bus-width = <4>;
1329 vmmc-supply = <®_wifi_3v3>;
1330 mmc-pwrseq = <&usdhc2_pwrseq>;
1331 post-power-on-delay-ms = <1000>;
1332 cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
1333 max-frequency = <50000000>;
1334 disable-wp;
1335 cap-sdio-irq;
1336 keep-power-in-suspend;
1337 wakeup-source;
1338 status = "okay";
1339 };
1340
1341 &wdog1 {
1342 pinctrl-names = "default";
1343 pinctrl-0 = <&pinctrl_wdog>;
1344 fsl,ext-reset-output;
1345 status = "okay";
1346 };