Back to home page

OSCL-LXR

 
 

    


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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_vdd_sen>;
0942                 vddio-supply = <&reg_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 = <&reg_lcd_3v4>;
0952                 };
0953 
0954                 reg_lcd_avee: outn {
0955                         regulator-name = "LCD_AVEE";
0956                         vin-supply = <&reg_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 = <&reg_vdd_sen>;
0973                 vddio-supply = <&reg_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 = <&reg_aud_1v8>;
0993                 DBVDD-supply = <&reg_aud_1v8>;
0994                 AVDD-supply = <&reg_aud_1v8>;
0995                 CPVDD-supply = <&reg_aud_1v8>;
0996                 MICVDD-supply = <&reg_aud_1v8>;
0997                 PLLVDD-supply = <&reg_aud_1v8>;
0998                 SPKVDD1-supply = <&reg_vsys_3v4>;
0999                 SPKVDD2-supply = <&reg_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 = <&reg_vcam_2v8>;
1020                 vddd-supply = <&reg_vcam_1v2>;
1021                 vddio-supply = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_lcd_avdd>;
1136                 avee-supply = <&reg_lcd_avee>;
1137                 vddi-supply = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_vdd_3v3>;
1316         power-supply = <&reg_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 = <&reg_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 };