Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0+
0002 /*
0003  * Copyright 2018-2019 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 devkit";
0016         compatible = "purism,librem5-devkit", "fsl,imx8mq";
0017 
0018         backlight_dsi: backlight-dsi {
0019                 compatible = "pwm-backlight";
0020                 /* 200 Hz for the PAM2841 */
0021                 pwms = <&pwm1 0 5000000 0>;
0022                 brightness-levels = <0 100>;
0023                 num-interpolated-steps = <100>;
0024                 /* Default brightness level (index into the array defined by */
0025                 /* the "brightness-levels" property) */
0026                 default-brightness-level = <0>;
0027                 power-supply = <&reg_22v4_p>;
0028         };
0029 
0030         chosen {
0031                 stdout-path = &uart1;
0032         };
0033 
0034         gpio-keys {
0035                 compatible = "gpio-keys";
0036                 pinctrl-names = "default";
0037                 pinctrl-0 = <&pinctrl_gpio_keys>;
0038 
0039                 button-1 {
0040                         label = "VOL_UP";
0041                         gpios = <&gpio4 21 GPIO_ACTIVE_LOW>;
0042                         wakeup-source;
0043                         linux,code = <KEY_VOLUMEUP>;
0044                 };
0045 
0046                 button-2 {
0047                         label = "VOL_DOWN";
0048                         gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
0049                         wakeup-source;
0050                         linux,code = <KEY_VOLUMEDOWN>;
0051                 };
0052 
0053                 button-3 {
0054                         label = "WWAN_WAKE";
0055                         gpios = <&gpio3 8 GPIO_ACTIVE_LOW>;
0056                         interrupt-parent = <&gpio3>;
0057                         interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
0058                         wakeup-source;
0059                         linux,code = <KEY_PHONE>;
0060                 };
0061         };
0062 
0063         leds {
0064                 compatible = "gpio-leds";
0065                 pinctrl-names = "default";
0066                 pinctrl-0 = <&pinctrl_gpio_leds>;
0067 
0068                 led1 {
0069                         label = "LED 1";
0070                         gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
0071                         default-state = "off";
0072                 };
0073         };
0074 
0075         pmic_osc: clock-pmic {
0076                 compatible = "fixed-clock";
0077                 #clock-cells = <0>;
0078                 clock-frequency = <32768>;
0079                 clock-output-names = "pmic_osc";
0080         };
0081 
0082         reg_1v8_p: regulator-1v8-p {
0083                 compatible = "regulator-fixed";
0084                 regulator-name = "1v8_p";
0085                 regulator-min-microvolt = <1800000>;
0086                 regulator-max-microvolt = <1800000>;
0087                 vin-supply = <&reg_pwr_en>;
0088         };
0089 
0090         reg_2v8_p: regulator-2v8-p {
0091                 compatible = "regulator-fixed";
0092                 regulator-name = "2v8_p";
0093                 regulator-min-microvolt = <2800000>;
0094                 regulator-max-microvolt = <2800000>;
0095                 vin-supply = <&reg_pwr_en>;
0096         };
0097 
0098         reg_3v3_p: regulator-3v3-p {
0099                 compatible = "regulator-fixed";
0100                 regulator-name = "3v3_p";
0101                 regulator-min-microvolt = <3300000>;
0102                 regulator-max-microvolt = <3300000>;
0103                 vin-supply = <&reg_pwr_en>;
0104 
0105                 regulator-state-mem {
0106                         regulator-on-in-suspend;
0107                 };
0108         };
0109 
0110         reg_5v_p: regulator-5v-p {
0111                 compatible = "regulator-fixed";
0112                 regulator-name = "5v_p";
0113                 regulator-min-microvolt = <5000000>;
0114                 regulator-max-microvolt = <5000000>;
0115                 vin-supply = <&reg_pwr_en>;
0116 
0117                 regulator-state-mem {
0118                         regulator-on-in-suspend;
0119                 };
0120         };
0121 
0122         reg_22v4_p: regulator-22v4-p  {
0123                 compatible = "regulator-fixed";
0124                 regulator-name = "22v4_P";
0125                 regulator-min-microvolt = <22400000>;
0126                 regulator-max-microvolt = <22400000>;
0127                 vin-supply = <&reg_pwr_en>;
0128         };
0129 
0130         reg_pwr_en: regulator-pwr-en {
0131                 compatible = "regulator-fixed";
0132                 pinctrl-names = "default";
0133                 pinctrl-0 = <&pinctrl_pwr_en>;
0134                 regulator-name = "PWR_EN";
0135                 regulator-min-microvolt = <3300000>;
0136                 regulator-max-microvolt = <3300000>;
0137                 gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
0138                 enable-active-high;
0139                 regulator-always-on;
0140         };
0141 
0142         reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
0143                 compatible = "regulator-fixed";
0144                 pinctrl-names = "default";
0145                 pinctrl-0 = <&pinctrl_usdhc2_pwr>;
0146                 regulator-name = "VSD_3V3";
0147                 regulator-min-microvolt = <3300000>;
0148                 regulator-max-microvolt = <3300000>;
0149                 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
0150                 enable-active-high;
0151                 regulator-always-on;
0152         };
0153 
0154         wwan_codec: sound-wwan-codec {
0155                 compatible = "option,gtm601";
0156                 #sound-dai-cells = <0>;
0157         };
0158 
0159         mic_mux: mic-mux {
0160                 compatible = "simple-audio-mux";
0161                 pinctrl-names = "default";
0162                 pinctrl-0 = <&pinctrl_micsel>;
0163                 mux-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
0164                 sound-name-prefix = "Mic Mux";
0165         };
0166 
0167         sound {
0168                 compatible = "simple-audio-card";
0169                 pinctrl-names = "default";
0170                 pinctrl-0 = <&pinctrl_hpdet>;
0171                 simple-audio-card,aux-devs = <&speaker_amp>, <&mic_mux>;
0172                 simple-audio-card,name = "Librem 5 Devkit";
0173                 simple-audio-card,format = "i2s";
0174                 simple-audio-card,widgets =
0175                         "Microphone", "Builtin Microphone",
0176                         "Microphone", "Headset Microphone",
0177                         "Headphone", "Headphones",
0178                         "Speaker", "Builtin Speaker";
0179                 simple-audio-card,routing =
0180                         "MIC_IN", "Mic Mux OUT",
0181                         "Mic Mux IN1", "Headset Microphone",
0182                         "Mic Mux IN2", "Builtin Microphone",
0183                         "Mic Mux OUT", "Mic Bias",
0184                         "Headphones", "HP_OUT",
0185                         "Builtin Speaker", "Speaker Amp OUTR",
0186                         "Speaker Amp INR", "LINE_OUT";
0187                 simple-audio-card,hp-det-gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
0188 
0189                 simple-audio-card,cpu {
0190                         sound-dai = <&sai2>;
0191                 };
0192 
0193                 simple-audio-card,codec {
0194                         sound-dai = <&sgtl5000>;
0195                         clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
0196                         frame-master;
0197                         bitclock-master;
0198                 };
0199         };
0200 
0201         sound-wwan {
0202                 compatible = "simple-audio-card";
0203                 simple-audio-card,name = "SIMCom SIM7100";
0204                 simple-audio-card,format = "dsp_a";
0205 
0206                 simple-audio-card,cpu {
0207                         sound-dai = <&sai6>;
0208                 };
0209 
0210                 telephony_link_master: simple-audio-card,codec {
0211                         sound-dai = <&wwan_codec>;
0212                         frame-master;
0213                         bitclock-master;
0214                 };
0215         };
0216 
0217         speaker_amp: speaker-amp {
0218                 compatible = "simple-audio-amplifier";
0219                 pinctrl-names = "default";
0220                 pinctrl-0 = <&pinctrl_spkamp>;
0221                 VCC-supply = <&reg_3v3_p>;
0222                 sound-name-prefix = "Speaker Amp";
0223                 enable-gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;
0224         };
0225 
0226         vibrator {
0227                 compatible = "gpio-vibrator";
0228                 pinctrl-names = "default";
0229                 pinctrl-0 = <&pinctrl_haptic>;
0230                 enable-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
0231                 vcc-supply = <&reg_3v3_p>;
0232         };
0233 
0234         wifi_pwr_en: regulator-wifi-en {
0235                 compatible = "regulator-fixed";
0236                 pinctrl-names = "default";
0237                 pinctrl-0 = <&pinctrl_wifi_pwr_en>;
0238                 regulator-name = "WIFI_EN";
0239                 regulator-min-microvolt = <3300000>;
0240                 regulator-max-microvolt = <3300000>;
0241                 gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>;
0242                 enable-active-high;
0243                 regulator-always-on;
0244         };
0245 };
0246 
0247 &A53_0 {
0248         cpu-supply = <&buck2_reg>;
0249 };
0250 
0251 &A53_1 {
0252         cpu-supply = <&buck2_reg>;
0253 };
0254 
0255 &A53_2 {
0256         cpu-supply = <&buck2_reg>;
0257 };
0258 
0259 &A53_3 {
0260         cpu-supply = <&buck2_reg>;
0261 };
0262 
0263 &dphy {
0264         status = "okay";
0265 };
0266 
0267 &fec1 {
0268         pinctrl-names = "default";
0269         pinctrl-0 = <&pinctrl_fec1>;
0270         phy-mode = "rgmii-id";
0271         phy-handle = <&ethphy0>;
0272         fsl,magic-packet;
0273         phy-supply = <&reg_3v3_p>;
0274         status = "okay";
0275 
0276         mdio {
0277                 #address-cells = <1>;
0278                 #size-cells = <0>;
0279 
0280                 ethphy0: ethernet-phy@1 {
0281                         compatible = "ethernet-phy-ieee802.3-c22";
0282                         reg = <1>;
0283                 };
0284         };
0285 };
0286 
0287 &i2c1 {
0288         clock-frequency = <100000>;
0289         pinctrl-names = "default";
0290         pinctrl-0 = <&pinctrl_i2c1>;
0291         status = "okay";
0292 
0293         pmic: pmic@4b {
0294                 compatible = "rohm,bd71837";
0295                 reg = <0x4b>;
0296                 pinctrl-names = "default";
0297                 pinctrl-0 = <&pinctrl_pmic>;
0298                 clocks = <&pmic_osc>;
0299                 clock-names = "osc";
0300                 #clock-cells = <0>;
0301                 clock-output-names = "pmic_clk";
0302                 interrupt-parent = <&gpio1>;
0303                 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
0304                 rohm,reset-snvs-powered;
0305 
0306                 regulators {
0307                         buck1_reg: BUCK1 {
0308                                 regulator-name = "buck1";
0309                                 regulator-min-microvolt = <700000>;
0310                                 regulator-max-microvolt = <1300000>;
0311                                 regulator-boot-on;
0312                                 regulator-always-on;
0313                                 regulator-ramp-delay = <1250>;
0314                                 rohm,dvs-run-voltage = <900000>;
0315                                 rohm,dvs-idle-voltage = <850000>;
0316                                 rohm,dvs-suspend-voltage = <800000>;
0317                         };
0318 
0319                         buck2_reg: BUCK2 {
0320                                 regulator-name = "buck2";
0321                                 regulator-min-microvolt = <700000>;
0322                                 regulator-max-microvolt = <1300000>;
0323                                 regulator-boot-on;
0324                                 regulator-ramp-delay = <1250>;
0325                                 rohm,dvs-run-voltage = <1000000>;
0326                                 rohm,dvs-idle-voltage = <900000>;
0327                         };
0328 
0329                         buck3_reg: BUCK3 {
0330                                 regulator-name = "buck3";
0331                                 regulator-min-microvolt = <700000>;
0332                                 regulator-max-microvolt = <1300000>;
0333                                 regulator-boot-on;
0334                                 rohm,dvs-run-voltage = <900000>;
0335                         };
0336 
0337                         buck4_reg: BUCK4 {
0338                                 regulator-name = "buck4";
0339                                 regulator-min-microvolt = <700000>;
0340                                 regulator-max-microvolt = <1300000>;
0341                                 rohm,dvs-run-voltage = <1000000>;
0342                         };
0343 
0344                         buck5_reg: BUCK5 {
0345                                 regulator-name = "buck5";
0346                                 regulator-min-microvolt = <700000>;
0347                                 regulator-max-microvolt = <1350000>;
0348                                 regulator-boot-on;
0349                                 regulator-always-on;
0350                         };
0351 
0352                         buck6_reg: BUCK6 {
0353                                 regulator-name = "buck6";
0354                                 regulator-min-microvolt = <3000000>;
0355                                 regulator-max-microvolt = <3300000>;
0356                                 regulator-boot-on;
0357                                 regulator-always-on;
0358                         };
0359 
0360                         buck7_reg: BUCK7 {
0361                                 regulator-name = "buck7";
0362                                 regulator-min-microvolt = <1605000>;
0363                                 regulator-max-microvolt = <1995000>;
0364                                 regulator-boot-on;
0365                                 regulator-always-on;
0366                         };
0367 
0368                         buck8_reg: BUCK8 {
0369                                 regulator-name = "buck8";
0370                                 regulator-min-microvolt = <800000>;
0371                                 regulator-max-microvolt = <1400000>;
0372                                 regulator-boot-on;
0373                                 regulator-always-on;
0374                         };
0375 
0376                         ldo1_reg: LDO1 {
0377                                 regulator-name = "ldo1";
0378                                 regulator-min-microvolt = <3000000>;
0379                                 regulator-max-microvolt = <3300000>;
0380                                 regulator-boot-on;
0381                                 /* leave on for snvs power button */
0382                                 regulator-always-on;
0383                         };
0384 
0385                         ldo2_reg: LDO2 {
0386                                 regulator-name = "ldo2";
0387                                 regulator-min-microvolt = <900000>;
0388                                 regulator-max-microvolt = <900000>;
0389                                 regulator-boot-on;
0390                                 /* leave on for snvs power button */
0391                                 regulator-always-on;
0392                         };
0393 
0394                         ldo3_reg: LDO3 {
0395                                 regulator-name = "ldo3";
0396                                 regulator-min-microvolt = <1800000>;
0397                                 regulator-max-microvolt = <3300000>;
0398                                 regulator-boot-on;
0399                                 regulator-always-on;
0400                         };
0401 
0402                         ldo4_reg: LDO4 {
0403                                 regulator-name = "ldo4";
0404                                 regulator-min-microvolt = <900000>;
0405                                 regulator-max-microvolt = <1800000>;
0406                                 regulator-boot-on;
0407                                 regulator-always-on;
0408                         };
0409 
0410                         ldo5_reg: LDO5 {
0411                                 regulator-name = "ldo5";
0412                                 regulator-min-microvolt = <1800000>;
0413                                 regulator-max-microvolt = <3300000>;
0414                                 regulator-always-on;
0415                         };
0416 
0417                         ldo6_reg: LDO6 {
0418                                 regulator-name = "ldo6";
0419                                 regulator-min-microvolt = <900000>;
0420                                 regulator-max-microvolt = <1800000>;
0421                                 regulator-boot-on;
0422                                 regulator-always-on;
0423                         };
0424 
0425                         ldo7_reg: LDO7 {
0426                                 regulator-name = "ldo7";
0427                                 regulator-min-microvolt = <1800000>;
0428                                 regulator-max-microvolt = <3300000>;
0429                                 regulator-boot-on;
0430                                 regulator-always-on;
0431                         };
0432                 };
0433         };
0434 
0435         typec_ptn5100: usb-typec@52 {
0436                 compatible = "nxp,ptn5110";
0437                 reg = <0x52>;
0438                 pinctrl-names = "default";
0439                 pinctrl-0 = <&pinctrl_typec>;
0440                 interrupt-parent = <&gpio3>;
0441                 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
0442 
0443                 connector {
0444                         compatible = "usb-c-connector";
0445                         label = "USB-C";
0446                         data-role = "dual";
0447                         power-role = "dual";
0448                         try-power-role = "sink";
0449                         source-pdos = <PDO_FIXED(5000, 2000,
0450                                 PDO_FIXED_USB_COMM |
0451                                 PDO_FIXED_DUAL_ROLE |
0452                                 PDO_FIXED_DATA_SWAP )>;
0453                         sink-pdos = <PDO_FIXED(5000, 3500, PDO_FIXED_USB_COMM |
0454                                 PDO_FIXED_DUAL_ROLE |
0455                                 PDO_FIXED_DATA_SWAP )
0456                              PDO_VAR(5000, 5000, 3500)>;
0457                         op-sink-microwatt = <10000000>;
0458 
0459                         ports {
0460                                 #address-cells = <1>;
0461                                 #size-cells = <0>;
0462 
0463                                 port@0 {
0464                                         reg = <0>;
0465 
0466                                         usb_con_hs: endpoint {
0467                                                 remote-endpoint = <&typec_hs>;
0468                                         };
0469                                 };
0470 
0471                                 port@1 {
0472                                         reg = <1>;
0473 
0474                                         usb_con_ss: endpoint {
0475                                                 remote-endpoint = <&typec_ss>;
0476                                         };
0477                                 };
0478                         };
0479                 };
0480         };
0481 
0482         rtc@68 {
0483                 compatible = "microcrystal,rv4162";
0484                 reg = <0x68>;
0485                 pinctrl-names = "default";
0486                 pinctrl-0 = <&pinctrl_rtc>;
0487                 interrupt-parent = <&gpio4>;
0488                 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
0489         };
0490 
0491         charger@6b { /* bq25896 */
0492                 compatible = "ti,bq25890";
0493                 reg = <0x6b>;
0494                 pinctrl-names = "default";
0495                 pinctrl-0 = <&pinctrl_charger>;
0496                 interrupt-parent = <&gpio3>;
0497                 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
0498                 ti,battery-regulation-voltage = <4192000>; /* 4.192V */
0499                 ti,charge-current = <1600000>; /* 1.6A */
0500                 ti,termination-current = <66000>;  /* 66mA */
0501                 ti,precharge-current = <130000>; /* 130mA */
0502                 ti,minimum-sys-voltage = <3000000>; /* 3V */
0503                 ti,boost-voltage = <5000000>; /* 5V */
0504                 ti,boost-max-current = <50000>; /* 50mA */
0505         };
0506 };
0507 
0508 &i2c3 {
0509         clock-frequency = <100000>;
0510         pinctrl-names = "default";
0511         pinctrl-0 = <&pinctrl_i2c3>;
0512         status = "okay";
0513 
0514         magnetometer@1e {
0515                 compatible = "st,lsm9ds1-magn";
0516                 reg = <0x1e>;
0517                 pinctrl-names = "default";
0518                 pinctrl-0 = <&pinctrl_imu>;
0519                 interrupt-parent = <&gpio3>;
0520                 interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
0521                 vdd-supply = <&reg_3v3_p>;
0522                 vddio-supply = <&reg_3v3_p>;
0523         };
0524 
0525         sgtl5000: audio-codec@a {
0526                 compatible = "fsl,sgtl5000";
0527                 clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
0528                 assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
0529                 assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
0530                 assigned-clock-rates = <24576000>;
0531                 #sound-dai-cells = <0>;
0532                 reg = <0x0a>;
0533                 VDDD-supply = <&reg_1v8_p>;
0534                 VDDIO-supply = <&reg_3v3_p>;
0535                 VDDA-supply = <&reg_3v3_p>;
0536         };
0537 
0538         touchscreen@5d {
0539                 compatible = "goodix,gt5688";
0540                 reg = <0x5d>;
0541                 pinctrl-names = "default";
0542                 pinctrl-0 = <&pinctrl_ts>;
0543                 interrupt-parent = <&gpio3>;
0544                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
0545                 reset-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
0546                 irq-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
0547                 touchscreen-size-x = <720>;
0548                 touchscreen-size-y = <1440>;
0549                 AVDD28-supply = <&reg_2v8_p>;
0550                 VDDIO-supply = <&reg_1v8_p>;
0551         };
0552 
0553         proximity-sensor@60 {
0554                 compatible = "vishay,vcnl4040";
0555                 reg = <0x60>;
0556                 pinctrl-0 = <&pinctrl_prox>;
0557         };
0558 
0559         accel-gyro@6a {
0560                 compatible = "st,lsm9ds1-imu";
0561                 reg = <0x6a>;
0562                 vdd-supply = <&reg_3v3_p>;
0563                 vddio-supply = <&reg_3v3_p>;
0564                 mount-matrix =  "1",  "0",  "0",
0565                                 "0",  "1",  "0",
0566                                 "0",  "0", "-1";
0567         };
0568 };
0569 
0570 &iomuxc {
0571         pinctrl_bl: blgrp {
0572                 fsl,pins = <
0573                         MX8MQ_IOMUXC_GPIO1_IO01_PWM1_OUT        0x6 /* DSI_BL_PWM */
0574                 >;
0575         };
0576 
0577         pinctrl_bt: btgrp {
0578                 fsl,pins = <
0579                         MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11     0x16 /* nBT_DISABLE */
0580                         MX8MQ_IOMUXC_NAND_DATA01_GPIO3_IO7      0x10 /* BT_HOST_WAKE */
0581                 >;
0582         };
0583 
0584         pinctrl_charger: chargergrp {
0585                 fsl,pins = <
0586                         MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25       0x80 /* CHRG_nINT */
0587                 >;
0588         };
0589 
0590         pinctrl_fec1: fec1grp {
0591                 fsl,pins = <
0592                         MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC                 0x3
0593                         MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO               0x3
0594                         MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x1f
0595                         MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x1f
0596                         MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x1f
0597                         MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x1f
0598                         MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x91
0599                         MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x91
0600                         MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x91
0601                         MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x91
0602                         MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x1f
0603                         MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x91
0604                         MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x91
0605                         MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x1f
0606                         MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9               0x19
0607                         MX8MQ_IOMUXC_GPIO1_IO15_CCMSRCGPCMIX_CLKO2      0x1f
0608                 >;
0609         };
0610 
0611         pinctrl_ts: tsgrp {
0612                 fsl,pins = <
0613                         MX8MQ_IOMUXC_NAND_ALE_GPIO3_IO0         0x16  /* TOUCH INT */
0614                         MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5       0x19  /* TOUCH RST */
0615                 >;
0616         };
0617 
0618         pinctrl_gpio_leds: gpioledgrp {
0619                 fsl,pins = <
0620                         MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13      0x16
0621                 >;
0622         };
0623 
0624         pinctrl_gpio_keys: gpiokeygrp {
0625                 fsl,pins = <
0626                         MX8MQ_IOMUXC_SAI2_RXFS_GPIO4_IO21       0x16
0627                         MX8MQ_IOMUXC_SAI2_RXC_GPIO4_IO22        0x16
0628                         MX8MQ_IOMUXC_NAND_DATA02_GPIO3_IO8      0x80   /* nWoWWAN */
0629                 >;
0630         };
0631 
0632         pinctrl_haptic: hapticgrp {
0633                 fsl,pins = <
0634                         MX8MQ_IOMUXC_SPDIF_RX_GPIO5_IO4         0xc6   /* nHAPTIC */
0635                 >;
0636         };
0637 
0638         pinctrl_hpdet: hpdetgrp {
0639                 fsl,pins = <
0640                         MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20        0xC0   /* HP_DET */
0641                 >;
0642         };
0643 
0644         pinctrl_i2c1: i2c1grp {
0645                 fsl,pins = <
0646                         MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL          0x4000001f
0647                         MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA          0x4000001f
0648                 >;
0649         };
0650 
0651         pinctrl_i2c3: i2c3grp {
0652                 fsl,pins = <
0653                         MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL          0x4000001f
0654                         MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA          0x4000001f
0655                 >;
0656         };
0657 
0658         pinctrl_imu: imugrp {
0659                 fsl,pins = <
0660                         MX8MQ_IOMUXC_SAI5_RXFS_GPIO3_IO19       0x8  /* IMU_INT */
0661                 >;
0662         };
0663 
0664         pinctrl_micsel: micselgrp {
0665                 fsl,pins = <
0666                         MX8MQ_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5    0xc6  /* MIC_SEL */
0667                 >;
0668         };
0669 
0670         pinctrl_spkamp: spkamp {
0671                 fsl,pins = <
0672                         MX8MQ_IOMUXC_SPDIF_TX_GPIO5_IO3         0x81  /* MUTE */
0673                 >;
0674         };
0675 
0676         pinctrl_pmic: pmicgrp {
0677                 fsl,pins = <
0678                         MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3       0x80  /* PMIC intr */
0679                 >;
0680         };
0681 
0682         pinctrl_prox: proxgrp {
0683                 fsl,pins = <
0684                         MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12      0x80  /* prox intr */
0685                 >;
0686         };
0687 
0688         pinctrl_pwr_en: pwrengrp {
0689                 fsl,pins = <
0690                         MX8MQ_IOMUXC_GPIO1_IO08_GPIO1_IO8       0x06
0691                 >;
0692         };
0693 
0694         pinctrl_rtc: rtcgrp {
0695                 fsl,pins = <
0696                         MX8MQ_IOMUXC_SAI3_RXC_GPIO4_IO29        0x80  /* RTC intr */
0697                 >;
0698         };
0699 
0700         pinctrl_sai2: sai2grp {
0701                 fsl,pins = <
0702                         MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC     0xd6
0703                         MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK      0xd6
0704                         MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0    0xd6
0705                         MX8MQ_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0    0xd6
0706                         MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK        0xd6
0707                 >;
0708         };
0709 
0710         pinctrl_sai6: sai6grp {
0711                 fsl,pins = <
0712                         MX8MQ_IOMUXC_SAI1_RXD5_SAI6_RX_DATA0    0xd6
0713                         MX8MQ_IOMUXC_SAI1_RXD6_SAI6_RX_SYNC     0xd6
0714                         MX8MQ_IOMUXC_SAI1_TXD4_SAI6_RX_BCLK     0xd6
0715                         MX8MQ_IOMUXC_SAI1_TXD5_SAI6_TX_DATA0    0xd6
0716                 >;
0717         };
0718 
0719         pinctrl_typec: typecgrp {
0720                 fsl,pins = <
0721                         MX8MQ_IOMUXC_NAND_DATA06_GPIO3_IO12             0x16
0722                         MX8MQ_IOMUXC_NAND_CE0_B_GPIO3_IO1               0x80
0723                 >;
0724         };
0725 
0726         pinctrl_uart1: uart1grp {
0727                 fsl,pins = <
0728                         MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX             0x49
0729                         MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX             0x49
0730                 >;
0731         };
0732 
0733         pinctrl_uart2: uart2grp {
0734                 fsl,pins = <
0735                         MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX             0x49
0736                         MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX             0x49
0737                         MX8MQ_IOMUXC_UART4_RXD_UART2_DCE_CTS_B          0x49
0738                         MX8MQ_IOMUXC_UART4_TXD_UART2_DCE_RTS_B          0x49
0739                 >;
0740         };
0741 
0742         pinctrl_uart3: uart3grp {
0743                 fsl,pins = <
0744                         MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX             0x49
0745                         MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX             0x49
0746                 >;
0747         };
0748 
0749         pinctrl_uart4: uart4grp {
0750                 fsl,pins = <
0751                         MX8MQ_IOMUXC_ECSPI2_SCLK_UART4_DCE_RX           0x49
0752                         MX8MQ_IOMUXC_ECSPI2_MOSI_UART4_DCE_TX           0x49
0753                         MX8MQ_IOMUXC_ECSPI2_MISO_UART4_DCE_CTS_B        0x49
0754                         MX8MQ_IOMUXC_ECSPI2_SS0_UART4_DCE_RTS_B         0x49
0755                         MX8MQ_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K      0x49
0756                 >;
0757         };
0758 
0759         pinctrl_usdhc1: usdhc1grp {
0760                 fsl,pins = <
0761                         MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x83
0762                         MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xc3
0763                         MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xc3
0764                         MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xc3
0765                         MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xc3
0766                         MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xc3
0767                         MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xc3
0768                         MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xc3
0769                         MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xc3
0770                         MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xc3
0771                         MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x83
0772                         MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
0773                 >;
0774         };
0775 
0776         pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
0777                 fsl,pins = <
0778                         MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x8d
0779                         MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xcd
0780                         MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xcd
0781                         MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xcd
0782                         MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xcd
0783                         MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xcd
0784                         MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xcd
0785                         MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xcd
0786                         MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xcd
0787                         MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xcd
0788                         MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x8d
0789                         MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
0790                 >;
0791         };
0792 
0793         pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
0794                 fsl,pins = <
0795                         MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK                 0x9f
0796                         MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                 0xdf
0797                         MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0             0xdf
0798                         MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1             0xdf
0799                         MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2             0xdf
0800                         MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3             0xdf
0801                         MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4             0xdf
0802                         MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5             0xdf
0803                         MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6             0xdf
0804                         MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7             0xdf
0805                         MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x9f
0806                         MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B         0xc1
0807                 >;
0808         };
0809 
0810         pinctrl_usdhc2_pwr: usdhc2pwrgrp {
0811                 fsl,pins = <
0812                         MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19     0x41
0813                 >;
0814         };
0815 
0816         pinctrl_usdhc2_gpio: usdhc2gpiogrp {
0817                 fsl,pins = <
0818                         MX8MQ_IOMUXC_SD2_WP_GPIO2_IO20          0x80 /* WIFI_WAKE */
0819                 >;
0820         };
0821 
0822         pinctrl_usdhc2: usdhc2grp {
0823                 fsl,pins = <
0824                         MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK         0x83
0825                         MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD         0xc3
0826                         MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0     0xc3
0827                         MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1     0xc3
0828                         MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2     0xc3
0829                         MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3     0xc3
0830                 >;
0831         };
0832 
0833         pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
0834                 fsl,pins = <
0835                         MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK         0x8d
0836                         MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD         0xcd
0837                         MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0     0xcd
0838                         MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1     0xcd
0839                         MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2     0xcd
0840                         MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3     0xcd
0841                 >;
0842         };
0843 
0844         pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
0845                 fsl,pins = <
0846                         MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK         0x9f
0847                         MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD         0xcf
0848                         MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0     0xcf
0849                         MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1     0xcf
0850                         MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2     0xcf
0851                         MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3     0xcf
0852                 >;
0853         };
0854 
0855         pinctrl_wdog: wdoggrp {
0856                 fsl,pins = <
0857                         MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B    0xc6
0858                 >;
0859         };
0860 
0861         pinctrl_wifi_pwr_en: wifipwrengrp {
0862                 fsl,pins = <
0863                         MX8MQ_IOMUXC_NAND_CLE_GPIO3_IO5         0x06
0864                 >;
0865         };
0866 
0867         pinctrl_wwan: wwangrp {
0868                 fsl,pins = <
0869                         MX8MQ_IOMUXC_NAND_CE3_B_GPIO3_IO4       0x09 /* nWWAN_DISABLE */
0870                         MX8MQ_IOMUXC_NAND_DATA02_GPIO3_IO8      0x80 /* nWoWWAN */
0871                         MX8MQ_IOMUXC_NAND_DATA03_GPIO3_IO9      0x19 /* WWAN_RESET */
0872                 >;
0873         };
0874 };
0875 
0876 &lcdif {
0877         status = "okay";
0878 };
0879 
0880 &mipi_dsi {
0881         status = "okay";
0882         #address-cells = <1>;
0883         #size-cells = <0>;
0884 
0885         panel@0 {
0886                 compatible = "rocktech,jh057n00900";
0887                 reg = <0>;
0888                 backlight = <&backlight_dsi>;
0889                 reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>;
0890                 iovcc-supply = <&reg_1v8_p>;
0891                 vcc-supply = <&reg_2v8_p>;
0892                 port {
0893                         panel_in: endpoint {
0894                                 remote-endpoint = <&mipi_dsi_out>;
0895                         };
0896                 };
0897         };
0898 
0899         ports {
0900                 port@1 {
0901                         reg = <1>;
0902                         mipi_dsi_out: endpoint {
0903                                 remote-endpoint = <&panel_in>;
0904                         };
0905                 };
0906         };
0907 };
0908 
0909 &pgc_gpu {
0910         power-supply = <&buck3_reg>;
0911 };
0912 
0913 &pgc_vpu {
0914         power-supply = <&buck4_reg>;
0915 };
0916 
0917 &pwm1 {
0918         pinctrl-names = "default";
0919         pinctrl-0 = <&pinctrl_bl>;
0920         status = "okay";
0921 };
0922 
0923 &snvs_pwrkey {
0924         status = "okay";
0925 };
0926 
0927 &snvs_rtc {
0928         status = "disabled";
0929 };
0930 
0931 &sai2 {
0932         pinctrl-names = "default";
0933         pinctrl-0 = <&pinctrl_sai2>;
0934         assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
0935         assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
0936         assigned-clock-rates = <24576000>;
0937         status = "okay";
0938 };
0939 
0940 &sai6 {
0941         pinctrl-names = "default";
0942         pinctrl-0 = <&pinctrl_sai6>;
0943         assigned-clocks = <&clk IMX8MQ_CLK_SAI6>;
0944         assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
0945         assigned-clock-rates = <24576000>;
0946         fsl,sai-synchronous-rx;
0947         status = "okay";
0948 };
0949 
0950 &uart1 { /* console */
0951         pinctrl-names = "default";
0952         pinctrl-0 = <&pinctrl_uart1>;
0953         status = "okay";
0954 };
0955 
0956 &uart3 { /* GNSS */
0957         pinctrl-names = "default";
0958         pinctrl-0 = <&pinctrl_uart3>;
0959         status = "okay";
0960 };
0961 
0962 &uart4 { /* BT */
0963         pinctrl-names = "default";
0964         pinctrl-0 = <&pinctrl_uart4>, <&pinctrl_bt>;
0965         uart-has-rtscts;
0966         status = "okay";
0967 };
0968 
0969 &usb3_phy0 {
0970         vbus-supply = <&reg_5v_p>;
0971         status = "okay";
0972 };
0973 
0974 &usb3_phy1 {
0975         vbus-supply = <&reg_5v_p>;
0976         status = "okay";
0977 };
0978 
0979 &usb_dwc3_0 {
0980         #address-cells = <1>;
0981         #size-cells = <0>;
0982         dr_mode = "otg";
0983         status = "okay";
0984 
0985         port@0 {
0986                 reg = <0>;
0987 
0988                 typec_hs: endpoint {
0989                         remote-endpoint = <&usb_con_hs>;
0990                 };
0991         };
0992 
0993         port@1 {
0994                 reg = <1>;
0995 
0996                 typec_ss: endpoint {
0997                         remote-endpoint = <&usb_con_ss>;
0998                 };
0999         };
1000 };
1001 
1002 &usb_dwc3_1 {
1003         dr_mode = "host";
1004         status = "okay";
1005 };
1006 
1007 &usdhc1 {
1008         assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
1009         assigned-clock-rates = <400000000>;
1010         pinctrl-names = "default", "state_100mhz", "state_200mhz";
1011         pinctrl-0 = <&pinctrl_usdhc1>;
1012         pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
1013         pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
1014         bus-width = <8>;
1015         non-removable;
1016         status = "okay";
1017 };
1018 
1019 &usdhc2 {
1020         assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
1021         assigned-clock-rates = <200000000>;
1022         pinctrl-names = "default", "state_100mhz", "state_200mhz";
1023         pinctrl-0 = <&pinctrl_usdhc2>;
1024         pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
1025         pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
1026         bus-width = <4>;
1027         vmmc-supply = <&reg_usdhc2_vmmc>;
1028         power-supply = <&wifi_pwr_en>;
1029         broken-cd;
1030         disable-wp;
1031         cap-sdio-irq;
1032         keep-power-in-suspend;
1033         wakeup-source;
1034         status = "okay";
1035 };
1036 
1037 &wdog1 {
1038         pinctrl-names = "default";
1039         pinctrl-0 = <&pinctrl_wdog>;
1040         fsl,ext-reset-output;
1041         status = "okay";
1042 };