Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003  * Copyright 2021 Gateworks Corporation
0004  */
0005 
0006 /dts-v1/;
0007 
0008 #include <dt-bindings/gpio/gpio.h>
0009 #include <dt-bindings/input/linux-event-codes.h>
0010 #include <dt-bindings/leds/common.h>
0011 #include <dt-bindings/net/ti-dp83867.h>
0012 #include <dt-bindings/phy/phy-imx8-pcie.h>
0013 
0014 #include "imx8mm.dtsi"
0015 
0016 / {
0017         model = "Gateworks Venice GW7902 i.MX8MM board";
0018         compatible = "gw,imx8mm-gw7902", "fsl,imx8mm";
0019 
0020         aliases {
0021                 ethernet1 = &eth1;
0022                 usb0 = &usbotg1;
0023                 usb1 = &usbotg2;
0024         };
0025 
0026         chosen {
0027                 stdout-path = &uart2;
0028         };
0029 
0030         memory@40000000 {
0031                 device_type = "memory";
0032                 reg = <0x0 0x40000000 0 0x80000000>;
0033         };
0034 
0035         can20m: can20m {
0036                 compatible = "fixed-clock";
0037                 #clock-cells = <0>;
0038                 clock-frequency = <20000000>;
0039                 clock-output-names = "can20m";
0040         };
0041 
0042         gpio-keys {
0043                 compatible = "gpio-keys";
0044 
0045                 key-user-pb {
0046                         label = "user_pb";
0047                         gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
0048                         linux,code = <BTN_0>;
0049                 };
0050 
0051                 key-user-pb1x {
0052                         label = "user_pb1x";
0053                         linux,code = <BTN_1>;
0054                         interrupt-parent = <&gsc>;
0055                         interrupts = <0>;
0056                 };
0057 
0058                 key-erased {
0059                         label = "key_erased";
0060                         linux,code = <BTN_2>;
0061                         interrupt-parent = <&gsc>;
0062                         interrupts = <1>;
0063                 };
0064 
0065                 key-eeprom-wp {
0066                         label = "eeprom_wp";
0067                         linux,code = <BTN_3>;
0068                         interrupt-parent = <&gsc>;
0069                         interrupts = <2>;
0070                 };
0071 
0072                 key-tamper {
0073                         label = "tamper";
0074                         linux,code = <BTN_4>;
0075                         interrupt-parent = <&gsc>;
0076                         interrupts = <5>;
0077                 };
0078 
0079                 switch-hold {
0080                         label = "switch_hold";
0081                         linux,code = <BTN_5>;
0082                         interrupt-parent = <&gsc>;
0083                         interrupts = <7>;
0084                 };
0085         };
0086 
0087         led-controller {
0088                 compatible = "gpio-leds";
0089                 pinctrl-names = "default";
0090                 pinctrl-0 = <&pinctrl_gpio_leds>;
0091 
0092                 led-0 {
0093                         function = LED_FUNCTION_STATUS;
0094                         color = <LED_COLOR_ID_GREEN>;
0095                         label = "panel1";
0096                         gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
0097                         default-state = "off";
0098                 };
0099 
0100                 led-1 {
0101                         function = LED_FUNCTION_STATUS;
0102                         color = <LED_COLOR_ID_GREEN>;
0103                         label = "panel2";
0104                         gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
0105                         default-state = "off";
0106                 };
0107 
0108                 led-2 {
0109                         function = LED_FUNCTION_STATUS;
0110                         color = <LED_COLOR_ID_GREEN>;
0111                         label = "panel3";
0112                         gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
0113                         default-state = "off";
0114                 };
0115 
0116                 led-3 {
0117                         function = LED_FUNCTION_STATUS;
0118                         color = <LED_COLOR_ID_GREEN>;
0119                         label = "panel4";
0120                         gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
0121                         default-state = "off";
0122                 };
0123 
0124                 led-4 {
0125                         function = LED_FUNCTION_STATUS;
0126                         color = <LED_COLOR_ID_GREEN>;
0127                         label = "panel5";
0128                         gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
0129                         default-state = "off";
0130                 };
0131         };
0132 
0133         pcie0_refclk: pcie0-refclk {
0134                 compatible = "fixed-clock";
0135                 #clock-cells = <0>;
0136                 clock-frequency = <100000000>;
0137         };
0138 
0139         pps {
0140                 compatible = "pps-gpio";
0141                 pinctrl-names = "default";
0142                 pinctrl-0 = <&pinctrl_pps>;
0143                 gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
0144                 status = "okay";
0145         };
0146 
0147         reg_3p3v: regulator-3p3v {
0148                 compatible = "regulator-fixed";
0149                 regulator-name = "3P3V";
0150                 regulator-min-microvolt = <3300000>;
0151                 regulator-max-microvolt = <3300000>;
0152                 regulator-always-on;
0153         };
0154 
0155         reg_usb1_vbus: regulator-usb1 {
0156                 compatible = "regulator-fixed";
0157                 pinctrl-names = "default";
0158                 pinctrl-0 = <&pinctrl_reg_usb1>;
0159                 regulator-name = "usb_usb1_vbus";
0160                 gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>;
0161                 enable-active-high;
0162                 regulator-min-microvolt = <5000000>;
0163                 regulator-max-microvolt = <5000000>;
0164         };
0165 
0166         reg_wifi: regulator-wifi {
0167                 compatible = "regulator-fixed";
0168                 pinctrl-names = "default";
0169                 pinctrl-0 = <&pinctrl_reg_wl>;
0170                 regulator-name = "wifi";
0171                 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
0172                 enable-active-high;
0173                 startup-delay-us = <100>;
0174                 regulator-min-microvolt = <3300000>;
0175                 regulator-max-microvolt = <3300000>;
0176         };
0177 };
0178 
0179 &A53_0 {
0180         cpu-supply = <&buck2>;
0181 };
0182 
0183 &A53_1 {
0184         cpu-supply = <&buck2>;
0185 };
0186 
0187 &A53_2 {
0188         cpu-supply = <&buck2>;
0189 };
0190 
0191 &A53_3 {
0192         cpu-supply = <&buck2>;
0193 };
0194 
0195 &ddrc {
0196         operating-points-v2 = <&ddrc_opp_table>;
0197 
0198         ddrc_opp_table: opp-table {
0199                 compatible = "operating-points-v2";
0200 
0201                 opp-25M {
0202                         opp-hz = /bits/ 64 <25000000>;
0203                 };
0204 
0205                 opp-100M {
0206                         opp-hz = /bits/ 64 <100000000>;
0207                 };
0208 
0209                 opp-750M {
0210                         opp-hz = /bits/ 64 <750000000>;
0211                 };
0212         };
0213 };
0214 
0215 &ecspi1 {
0216         pinctrl-names = "default";
0217         pinctrl-0 = <&pinctrl_spi1>;
0218         cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
0219         status = "okay";
0220 
0221         can@0 {
0222                 compatible = "microchip,mcp2515";
0223                 reg = <0>;
0224                 clocks = <&can20m>;
0225                 oscillator-frequency = <20000000>;
0226                 interrupt-parent = <&gpio2>;
0227                 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
0228                 spi-max-frequency = <10000000>;
0229         };
0230 };
0231 
0232 /* off-board header */
0233 &ecspi2 {
0234         pinctrl-names = "default";
0235         pinctrl-0 = <&pinctrl_spi2>;
0236         cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
0237         status = "okay";
0238 };
0239 
0240 &fec1 {
0241         pinctrl-names = "default";
0242         pinctrl-0 = <&pinctrl_fec1>;
0243         phy-mode = "rgmii-id";
0244         phy-handle = <&ethphy0>;
0245         local-mac-address = [00 00 00 00 00 00];
0246         status = "okay";
0247 
0248         mdio {
0249                 #address-cells = <1>;
0250                 #size-cells = <0>;
0251 
0252                 ethphy0: ethernet-phy@0 {
0253                         compatible = "ethernet-phy-ieee802.3-c22";
0254                         reg = <0>;
0255                         ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
0256                         ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
0257                         tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
0258                         rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
0259                 };
0260         };
0261 };
0262 
0263 &gpio1 {
0264         gpio-line-names = "", "", "", "", "", "", "", "",
0265                 "", "", "", "", "", "m2_reset", "", "m2_wdis#",
0266                 "", "", "", "", "", "", "", "",
0267                 "", "", "", "", "", "", "", "";
0268 };
0269 
0270 &gpio2 {
0271         gpio-line-names = "", "", "", "", "", "", "", "",
0272                 "uart2_en#", "", "", "", "", "", "", "",
0273                 "", "", "", "", "", "", "", "",
0274                 "", "", "", "", "", "", "", "";
0275 };
0276 
0277 &gpio3 {
0278         gpio-line-names = "", "m2_gdis#", "", "", "", "", "", "m2_off#",
0279                 "", "", "", "", "", "", "", "",
0280                 "", "", "", "", "", "", "", "",
0281                 "", "", "", "", "", "", "", "";
0282 };
0283 
0284 &gpio4 {
0285         gpio-line-names = "", "", "", "", "", "", "", "",
0286                 "", "", "", "amp_gpio3", "amp_gpio2", "", "amp_gpio1", "",
0287                 "", "", "", "", "amp_gpio4", "app_gpio1", "", "uart1_rs485",
0288                 "", "uart1_term", "uart1_half", "app_gpio2",
0289                 "mipi_gpio1", "", "", "";
0290 };
0291 
0292 &gpio5 {
0293         gpio-line-names = "", "", "", "mipi_gpio4",
0294                 "mipi_gpio3", "mipi_gpio2", "", "",
0295                 "", "", "", "", "", "", "", "",
0296                 "", "", "", "", "", "", "", "",
0297                 "", "", "", "", "", "", "", "";
0298 };
0299 
0300 &i2c1 {
0301         clock-frequency = <100000>;
0302         pinctrl-names = "default";
0303         pinctrl-0 = <&pinctrl_i2c1>;
0304         status = "okay";
0305 
0306         gsc: gsc@20 {
0307                 compatible = "gw,gsc";
0308                 reg = <0x20>;
0309                 pinctrl-0 = <&pinctrl_gsc>;
0310                 interrupt-parent = <&gpio2>;
0311                 interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
0312                 interrupt-controller;
0313                 #interrupt-cells = <1>;
0314 
0315                 adc {
0316                         compatible = "gw,gsc-adc";
0317                         #address-cells = <1>;
0318                         #size-cells = <0>;
0319 
0320                         channel@6 {
0321                                 gw,mode = <0>;
0322                                 reg = <0x06>;
0323                                 label = "temp";
0324                         };
0325 
0326                         channel@8 {
0327                                 gw,mode = <1>;
0328                                 reg = <0x08>;
0329                                 label = "vdd_bat";
0330                         };
0331 
0332                         channel@82 {
0333                                 gw,mode = <2>;
0334                                 reg = <0x82>;
0335                                 label = "vin";
0336                                 gw,voltage-divider-ohms = <22100 1000>;
0337                                 gw,voltage-offset-microvolt = <700000>;
0338                         };
0339 
0340                         channel@84 {
0341                                 gw,mode = <2>;
0342                                 reg = <0x84>;
0343                                 label = "vin_4p0";
0344                                 gw,voltage-divider-ohms = <10000 10000>;
0345                         };
0346 
0347                         channel@86 {
0348                                 gw,mode = <2>;
0349                                 reg = <0x86>;
0350                                 label = "vdd_3p3";
0351                                 gw,voltage-divider-ohms = <10000 10000>;
0352                         };
0353 
0354                         channel@88 {
0355                                 gw,mode = <2>;
0356                                 reg = <0x88>;
0357                                 label = "vdd_0p9";
0358                         };
0359 
0360                         channel@8c {
0361                                 gw,mode = <2>;
0362                                 reg = <0x8c>;
0363                                 label = "vdd_soc";
0364                         };
0365 
0366                         channel@8e {
0367                                 gw,mode = <2>;
0368                                 reg = <0x8e>;
0369                                 label = "vdd_arm";
0370                         };
0371 
0372                         channel@90 {
0373                                 gw,mode = <2>;
0374                                 reg = <0x90>;
0375                                 label = "vdd_1p8";
0376                         };
0377 
0378                         channel@92 {
0379                                 gw,mode = <2>;
0380                                 reg = <0x92>;
0381                                 label = "vdd_dram";
0382                         };
0383 
0384                         channel@98 {
0385                                 gw,mode = <2>;
0386                                 reg = <0x98>;
0387                                 label = "vdd_1p0";
0388                         };
0389 
0390                         channel@9a {
0391                                 gw,mode = <2>;
0392                                 reg = <0x9a>;
0393                                 label = "vdd_2p5";
0394                                 gw,voltage-divider-ohms = <10000 10000>;
0395                         };
0396 
0397                         channel@9c {
0398                                 gw,mode = <2>;
0399                                 reg = <0x9c>;
0400                                 label = "vdd_5p0";
0401                                 gw,voltage-divider-ohms = <10000 10000>;
0402                         };
0403 
0404                         channel@a2 {
0405                                 gw,mode = <2>;
0406                                 reg = <0xa2>;
0407                                 label = "vdd_gsc";
0408                                 gw,voltage-divider-ohms = <10000 10000>;
0409                         };
0410                 };
0411         };
0412 
0413         gpio: gpio@23 {
0414                 compatible = "nxp,pca9555";
0415                 reg = <0x23>;
0416                 gpio-controller;
0417                 #gpio-cells = <2>;
0418                 interrupt-parent = <&gsc>;
0419                 interrupts = <4>;
0420         };
0421 
0422         pmic@4b {
0423                 compatible = "rohm,bd71847";
0424                 reg = <0x4b>;
0425                 pinctrl-names = "default";
0426                 pinctrl-0 = <&pinctrl_pmic>;
0427                 interrupt-parent = <&gpio3>;
0428                 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
0429                 rohm,reset-snvs-powered;
0430                 #clock-cells = <0>;
0431                 clocks = <&osc_32k 0>;
0432                 clock-output-names = "clk-32k-out";
0433 
0434                 regulators {
0435                         /* vdd_soc: 0.805-0.900V (typ=0.8V) */
0436                         BUCK1 {
0437                                 regulator-name = "buck1";
0438                                 regulator-min-microvolt = <700000>;
0439                                 regulator-max-microvolt = <1300000>;
0440                                 regulator-boot-on;
0441                                 regulator-always-on;
0442                                 regulator-ramp-delay = <1250>;
0443                         };
0444 
0445                         /* vdd_arm: 0.805-1.0V (typ=0.9V) */
0446                         buck2: BUCK2 {
0447                                 regulator-name = "buck2";
0448                                 regulator-min-microvolt = <700000>;
0449                                 regulator-max-microvolt = <1300000>;
0450                                 regulator-boot-on;
0451                                 regulator-always-on;
0452                                 regulator-ramp-delay = <1250>;
0453                                 rohm,dvs-run-voltage = <1000000>;
0454                                 rohm,dvs-idle-voltage = <900000>;
0455                         };
0456 
0457                         /* vdd_0p9: 0.805-1.0V (typ=0.9V) */
0458                         BUCK3 {
0459                                 regulator-name = "buck3";
0460                                 regulator-min-microvolt = <700000>;
0461                                 regulator-max-microvolt = <1350000>;
0462                                 regulator-boot-on;
0463                                 regulator-always-on;
0464                         };
0465 
0466                         /* vdd_3p3 */
0467                         BUCK4 {
0468                                 regulator-name = "buck4";
0469                                 regulator-min-microvolt = <3000000>;
0470                                 regulator-max-microvolt = <3300000>;
0471                                 regulator-boot-on;
0472                                 regulator-always-on;
0473                         };
0474 
0475                         /* vdd_1p8 */
0476                         BUCK5 {
0477                                 regulator-name = "buck5";
0478                                 regulator-min-microvolt = <1605000>;
0479                                 regulator-max-microvolt = <1995000>;
0480                                 regulator-boot-on;
0481                                 regulator-always-on;
0482                         };
0483 
0484                         /* vdd_dram */
0485                         BUCK6 {
0486                                 regulator-name = "buck6";
0487                                 regulator-min-microvolt = <800000>;
0488                                 regulator-max-microvolt = <1400000>;
0489                                 regulator-boot-on;
0490                                 regulator-always-on;
0491                         };
0492 
0493                         /* nvcc_snvs_1p8 */
0494                         LDO1 {
0495                                 regulator-name = "ldo1";
0496                                 regulator-min-microvolt = <1600000>;
0497                                 regulator-max-microvolt = <1900000>;
0498                                 regulator-boot-on;
0499                                 regulator-always-on;
0500                         };
0501 
0502                         /* vdd_snvs_0p8 */
0503                         LDO2 {
0504                                 regulator-name = "ldo2";
0505                                 regulator-min-microvolt = <800000>;
0506                                 regulator-max-microvolt = <900000>;
0507                                 regulator-boot-on;
0508                                 regulator-always-on;
0509                         };
0510 
0511                         /* vdda_1p8 */
0512                         LDO3 {
0513                                 regulator-name = "ldo3";
0514                                 regulator-min-microvolt = <1800000>;
0515                                 regulator-max-microvolt = <3300000>;
0516                                 regulator-boot-on;
0517                                 regulator-always-on;
0518                         };
0519 
0520                         LDO4 {
0521                                 regulator-name = "ldo4";
0522                                 regulator-min-microvolt = <900000>;
0523                                 regulator-max-microvolt = <1800000>;
0524                                 regulator-boot-on;
0525                                 regulator-always-on;
0526                         };
0527 
0528                         LDO6 {
0529                                 regulator-name = "ldo6";
0530                                 regulator-min-microvolt = <900000>;
0531                                 regulator-max-microvolt = <1800000>;
0532                                 regulator-boot-on;
0533                                 regulator-always-on;
0534                         };
0535                 };
0536         };
0537 
0538         eeprom@50 {
0539                 compatible = "atmel,24c02";
0540                 reg = <0x50>;
0541                 pagesize = <16>;
0542         };
0543 
0544         eeprom@51 {
0545                 compatible = "atmel,24c02";
0546                 reg = <0x51>;
0547                 pagesize = <16>;
0548         };
0549 
0550         eeprom@52 {
0551                 compatible = "atmel,24c02";
0552                 reg = <0x52>;
0553                 pagesize = <16>;
0554         };
0555 
0556         eeprom@53 {
0557                 compatible = "atmel,24c02";
0558                 reg = <0x53>;
0559                 pagesize = <16>;
0560         };
0561 
0562         rtc@68 {
0563                 compatible = "dallas,ds1672";
0564                 reg = <0x68>;
0565         };
0566 };
0567 
0568 &i2c2 {
0569         clock-frequency = <400000>;
0570         pinctrl-names = "default";
0571         pinctrl-0 = <&pinctrl_i2c2>;
0572         status = "okay";
0573 
0574         accelerometer@19 {
0575                 compatible = "st,lis2de12";
0576                 pinctrl-names = "default";
0577                 pinctrl-0 = <&pinctrl_accel>;
0578                 reg = <0x19>;
0579                 st,drdy-int-pin = <1>;
0580                 interrupt-parent = <&gpio1>;
0581                 interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
0582                 interrupt-names = "INT1";
0583         };
0584 };
0585 
0586 /* off-board header */
0587 &i2c3 {
0588         clock-frequency = <400000>;
0589         pinctrl-names = "default";
0590         pinctrl-0 = <&pinctrl_i2c3>;
0591         status = "okay";
0592 };
0593 
0594 /* off-board header */
0595 &i2c4 {
0596         clock-frequency = <400000>;
0597         pinctrl-names = "default";
0598         pinctrl-0 = <&pinctrl_i2c4>;
0599         status = "okay";
0600 };
0601 
0602 &pcie_phy {
0603         fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
0604         fsl,clkreq-unsupported;
0605         clocks = <&pcie0_refclk>;
0606         clock-names = "ref";
0607         status = "okay";
0608 };
0609 
0610 &pcie0 {
0611         pinctrl-names = "default";
0612         pinctrl-0 = <&pinctrl_pcie0>;
0613         reset-gpio = <&gpio4 5 GPIO_ACTIVE_LOW>;
0614         clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>, <&clk IMX8MM_CLK_PCIE1_AUX>,
0615                  <&pcie0_refclk>;
0616         clock-names = "pcie", "pcie_aux", "pcie_bus";
0617         assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
0618                           <&clk IMX8MM_CLK_PCIE1_CTRL>;
0619         assigned-clock-rates = <10000000>, <250000000>;
0620         assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
0621                                  <&clk IMX8MM_SYS_PLL2_250M>;
0622         status = "okay";
0623 
0624         pcie@0,0 {
0625                 reg = <0x0000 0 0 0 0>;
0626                 #address-cells = <1>;
0627                 #size-cells = <0>;
0628 
0629                 eth1: pcie@1,0 {
0630                         reg = <0x0000 0 0 0 0>;
0631                         #address-cells = <1>;
0632                         #size-cells = <0>;
0633 
0634                         local-mac-address = [00 00 00 00 00 00];
0635                 };
0636         };
0637 };
0638 
0639 /* off-board header */
0640 &sai3 {
0641         pinctrl-names = "default";
0642         pinctrl-0 = <&pinctrl_sai3>;
0643         assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
0644         assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
0645         assigned-clock-rates = <24576000>;
0646         status = "okay";
0647 };
0648 
0649 /* RS232/RS485/RS422 selectable */
0650 &uart1 {
0651         pinctrl-names = "default";
0652         pinctrl-0 = <&pinctrl_uart1>, <&pinctrl_uart1_gpio>;
0653         rts-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
0654         cts-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
0655         uart-has-rtscts;
0656         status = "okay";
0657 };
0658 
0659 /* RS232 console */
0660 &uart2 {
0661         pinctrl-names = "default";
0662         pinctrl-0 = <&pinctrl_uart2>;
0663         status = "okay";
0664 };
0665 
0666 /* bluetooth HCI */
0667 &uart3 {
0668         pinctrl-names = "default";
0669         pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>;
0670         rts-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
0671         cts-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
0672         uart-has-rtscts;
0673         status = "okay";
0674 
0675         bluetooth {
0676                 compatible = "brcm,bcm4330-bt";
0677                 shutdown-gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
0678         };
0679 };
0680 
0681 /* LTE Cat M1/NB1/EGPRS modem or GPS (loading option) */
0682 &uart4 {
0683         pinctrl-names = "default";
0684         pinctrl-0 = <&pinctrl_uart4>;
0685         rts-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
0686         cts-gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;
0687         dtr-gpios = <&gpio4 3 GPIO_ACTIVE_LOW>;
0688         dsr-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>;
0689         dcd-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
0690         uart-has-rtscts;
0691         status = "okay";
0692 };
0693 
0694 &usbotg1 {
0695         dr_mode = "host";
0696         vbus-supply = <&reg_usb1_vbus>;
0697         disable-over-current;
0698         status = "okay";
0699 };
0700 
0701 &usbotg2 {
0702         dr_mode = "host";
0703         disable-over-current;
0704         status = "okay";
0705 };
0706 
0707 /* SDIO WiFi */
0708 &usdhc2 {
0709         pinctrl-names = "default";
0710         pinctrl-0 = <&pinctrl_usdhc2>;
0711         bus-width = <4>;
0712         non-removable;
0713         vmmc-supply = <&reg_wifi>;
0714         status = "okay";
0715 };
0716 
0717 /* eMMC */
0718 &usdhc3 {
0719         pinctrl-names = "default", "state_100mhz", "state_200mhz";
0720         pinctrl-0 = <&pinctrl_usdhc3>;
0721         pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
0722         pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
0723         bus-width = <8>;
0724         non-removable;
0725         status = "okay";
0726 };
0727 
0728 &wdog1 {
0729         pinctrl-names = "default";
0730         pinctrl-0 = <&pinctrl_wdog>;
0731         fsl,ext-reset-output;
0732         status = "okay";
0733 };
0734 
0735 &iomuxc {
0736         pinctrl-names = "default";
0737         pinctrl-0 = <&pinctrl_hog>;
0738 
0739         pinctrl_hog: hoggrp {
0740                 fsl,pins = <
0741                         MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1       0x40000159 /* M2_GDIS# */
0742                         MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13      0x40000041 /* M2_RESET */
0743                         MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7      0x40000119 /* M2_OFF# */
0744                         MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15      0x40000159 /* M2_WDIS# */
0745                         MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14       0x40000041 /* AMP GPIO1 */
0746                         MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12       0x40000041 /* AMP GPIO2 */
0747                         MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11        0x40000041 /* AMP GPIO3 */
0748                         MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20       0x40000041 /* AMP_GPIO4 */
0749                         MX8MM_IOMUXC_SAI2_RXFS_GPIO4_IO21       0x40000041 /* APP GPIO1 */
0750                         MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27       0x40000041 /* APP GPIO2 */
0751                         MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8        0x40000041 /* UART2_EN# */
0752                         MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28       0x40000041 /* MIPI_GPIO1 */
0753                         MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5    0x40000041 /* MIPI_GPIO2 */
0754                         MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4         0x40000041 /* MIPI_GPIO3/PWM2 */
0755                         MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3         0x40000041 /* MIPI_GPIO4/PWM3 */
0756                 >;
0757         };
0758 
0759         pinctrl_accel: accelgrp {
0760                 fsl,pins = <
0761                         MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12      0x159
0762                 >;
0763         };
0764 
0765         pinctrl_fec1: fec1grp {
0766                 fsl,pins = <
0767                         MX8MM_IOMUXC_ENET_MDC_ENET1_MDC                 0x3
0768                         MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO               0x3
0769                         MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x1f
0770                         MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x1f
0771                         MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x1f
0772                         MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x1f
0773                         MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x91
0774                         MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x91
0775                         MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x91
0776                         MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x91
0777                         MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x1f
0778                         MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x91
0779                         MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x91
0780                         MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x1f
0781                         MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10              0x19 /* RST# */
0782                         MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11              0x19 /* IRQ# */
0783                         MX8MM_IOMUXC_GPIO1_IO08_ENET1_1588_EVENT0_IN    0x141
0784                         MX8MM_IOMUXC_GPIO1_IO09_ENET1_1588_EVENT0_OUT   0x141
0785                 >;
0786         };
0787 
0788         pinctrl_gsc: gscgrp {
0789                 fsl,pins = <
0790                         MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6        0x40
0791                 >;
0792         };
0793 
0794         pinctrl_i2c1: i2c1grp {
0795                 fsl,pins = <
0796                         MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL          0x400001c3
0797                         MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA          0x400001c3
0798                 >;
0799         };
0800 
0801         pinctrl_i2c2: i2c2grp {
0802                 fsl,pins = <
0803                         MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL          0x400001c3
0804                         MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA          0x400001c3
0805                 >;
0806         };
0807 
0808         pinctrl_i2c3: i2c3grp {
0809                 fsl,pins = <
0810                         MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL          0x400001c3
0811                         MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA          0x400001c3
0812                 >;
0813         };
0814 
0815         pinctrl_i2c4: i2c4grp {
0816                 fsl,pins = <
0817                         MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL          0x400001c3
0818                         MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA          0x400001c3
0819                 >;
0820         };
0821 
0822         pinctrl_gpio_leds: gpioledgrp {
0823                 fsl,pins = <
0824                         MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21       0x19
0825                         MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23       0x19
0826                         MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22       0x19
0827                         MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20        0x19
0828                         MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25       0x19
0829                 >;
0830         };
0831 
0832         pinctrl_pcie0: pciegrp {
0833                 fsl,pins = <
0834                         MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5        0x41
0835                 >;
0836         };
0837 
0838         pinctrl_pmic: pmicgrp {
0839                 fsl,pins = <
0840                         MX8MM_IOMUXC_NAND_DATA02_GPIO3_IO8      0x41
0841                 >;
0842         };
0843 
0844         pinctrl_pps: ppsgrp {
0845                 fsl,pins = <
0846                         MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24       0x141 /* PPS */
0847                 >;
0848         };
0849 
0850         pinctrl_reg_wl: regwlgrp {
0851                 fsl,pins = <
0852                         MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19     0x41 /* WLAN_WLON */
0853                 >;
0854         };
0855 
0856         pinctrl_reg_usb1: regusb1grp {
0857                 fsl,pins = <
0858                         MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7        0x41
0859                 >;
0860         };
0861 
0862         pinctrl_sai3: sai3grp {
0863                 fsl,pins = <
0864                         MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK        0xd6
0865                         MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0     0xd6
0866                         MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK      0xd6
0867                         MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0     0xd6
0868                         MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC     0xd6
0869                 >;
0870         };
0871 
0872         pinctrl_spi1: spi1grp {
0873                 fsl,pins = <
0874                         MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK    0x82
0875                         MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI    0x82
0876                         MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO    0x82
0877                         MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9       0x40
0878                         MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3        0x140 /* CAN_IRQ# */
0879                 >;
0880         };
0881 
0882         pinctrl_spi2: spi2grp {
0883                 fsl,pins = <
0884                         MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK    0x82
0885                         MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI    0x82
0886                         MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO    0x82
0887                         MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13      0x40 /* SS0 */
0888                 >;
0889         };
0890 
0891         pinctrl_uart1: uart1grp {
0892                 fsl,pins = <
0893                         MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX     0x140
0894                         MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX     0x140
0895                         MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10       0x140 /* RTS */
0896                         MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24       0x140 /* CTS */
0897                 >;
0898         };
0899 
0900         pinctrl_uart1_gpio: uart1gpiogrp {
0901                 fsl,pins = <
0902                         MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26       0x40000110 /* HALF */
0903                         MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25        0x40000110 /* TERM */
0904                         MX8MM_IOMUXC_SAI2_RXD0_GPIO4_IO23       0x40000110 /* RS485 */
0905                 >;
0906         };
0907 
0908         pinctrl_uart2: uart2grp {
0909                 fsl,pins = <
0910                         MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX     0x140
0911                         MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX     0x140
0912                 >;
0913         };
0914 
0915         pinctrl_uart3_gpio: uart3_gpiogrp {
0916                 fsl,pins = <
0917                         MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12        0x41 /* BT_EN# */
0918                 >;
0919         };
0920 
0921         pinctrl_uart3: uart3grp {
0922                 fsl,pins = <
0923                         MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX     0x140
0924                         MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX     0x140
0925                         MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0          0x140 /* CTS */
0926                         MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1          0x140 /* RTS */
0927                 >;
0928         };
0929 
0930         pinctrl_uart4: uart4grp {
0931                 fsl,pins = <
0932                         MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX     0x140
0933                         MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX     0x140
0934                         MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1         0x140 /* CTS */
0935                         MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2        0x140 /* RTS */
0936                         MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3        0x140 /* DTR */
0937                         MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4        0x140 /* DSR */
0938                         MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6        0x140 /* DCD */
0939                         MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7        0x140 /* RI */
0940                         MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0        0x140 /* GNSS_PPS */
0941                         MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6       0x141 /* GNSS_GASP */
0942                 >;
0943         };
0944 
0945         pinctrl_usdhc2: usdhc2grp {
0946                 fsl,pins = <
0947                         MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK         0x190
0948                         MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD         0x1d0
0949                         MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0     0x1d0
0950                         MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1     0x1d0
0951                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2     0x1d0
0952                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3     0x1d0
0953                 >;
0954         };
0955 
0956         pinctrl_usdhc3: usdhc3grp {
0957                 fsl,pins = <
0958                         MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK       0x190
0959                         MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD       0x1d0
0960                         MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0   0x1d0
0961                         MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1   0x1d0
0962                         MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2   0x1d0
0963                         MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3   0x1d0
0964                         MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4     0x1d0
0965                         MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5    0x1d0
0966                         MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6    0x1d0
0967                         MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7      0x1d0
0968                         MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE   0x190
0969                 >;
0970         };
0971 
0972         pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
0973                 fsl,pins = <
0974                         MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK       0x194
0975                         MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD       0x1d4
0976                         MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0   0x1d4
0977                         MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1   0x1d4
0978                         MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2   0x1d4
0979                         MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3   0x1d4
0980                         MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4     0x1d4
0981                         MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5    0x1d4
0982                         MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6    0x1d4
0983                         MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7      0x1d4
0984                         MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE   0x194
0985                 >;
0986         };
0987 
0988         pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
0989                 fsl,pins = <
0990                         MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK       0x196
0991                         MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD       0x1d6
0992                         MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0   0x1d6
0993                         MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1   0x1d6
0994                         MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2   0x1d6
0995                         MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3   0x1d6
0996                         MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4     0x1d6
0997                         MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5    0x1d6
0998                         MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6    0x1d6
0999                         MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7      0x1d6
1000                         MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE   0x196
1001                 >;
1002         };
1003 
1004         pinctrl_wdog: wdoggrp {
1005                 fsl,pins = <
1006                         MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B    0xc6
1007                 >;
1008         };
1009 };