Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
0002 /*
0003  * Copyright 2019-2021 TQ-Systems GmbH
0004  */
0005 
0006 /dts-v1/;
0007 
0008 #include "imx8mq-tqma8mq.dtsi"
0009 #include "mba8mx.dtsi"
0010 
0011 / {
0012         model = "TQ-Systems GmbH i.MX8MQ TQMa8MQ on MBa8Mx";
0013         compatible = "tq,imx8mq-tqma8mq-mba8mx", "tq,imx8mq-tqma8mq", "fsl,imx8mq";
0014 
0015         aliases {
0016                 eeprom0 = &eeprom3;
0017                 mmc0 = &usdhc1;
0018                 mmc1 = &usdhc2;
0019                 rtc0 = &pcf85063;
0020                 rtc1 = &snvs_rtc;
0021         };
0022 
0023         extcon_usbotg: extcon-usbotg0 {
0024                 compatible = "linux,extcon-usb-gpio";
0025                 pinctrl-names = "default";
0026                 pinctrl-0 = <&pinctrl_usbcon0>;
0027                 id-gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>;
0028         };
0029 
0030         pcie0_refclk: pcie0-refclk {
0031                 compatible = "fixed-clock";
0032                 #clock-cells = <0>;
0033                 clock-frequency = <100000000>;
0034         };
0035 
0036         pcie1_refclk: pcie1-refclk {
0037                 compatible = "fixed-clock";
0038                 #clock-cells = <0>;
0039                 clock-frequency = <100000000>;
0040         };
0041 
0042         reg_otg_vbus: regulator-otg-vbus {
0043                 compatible = "regulator-fixed";
0044                 pinctrl-names = "default";
0045                 pinctrl-0 = <&pinctrl_regotgvbus>;
0046                 regulator-name = "MBA8MQ_OTG_VBUS";
0047                 regulator-min-microvolt = <5000000>;
0048                 regulator-max-microvolt = <5000000>;
0049                 gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
0050                 enable-active-high;
0051         };
0052 
0053         reg_usdhc2_vmmc: regulator-vmmc {
0054                 compatible = "regulator-fixed";
0055                 regulator-name = "VSD_3V3";
0056                 regulator-min-microvolt = <3300000>;
0057                 regulator-max-microvolt = <3300000>;
0058                 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
0059                 enable-active-high;
0060         };
0061 };
0062 
0063 &btn2 {
0064         gpios = <&gpio3 17 GPIO_ACTIVE_LOW>;
0065 };
0066 
0067 &gpio_leds {
0068         led3 {
0069                 label = "led3";
0070                 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
0071         };
0072 };
0073 
0074 &i2c1 {
0075         expander2: gpio@25 {
0076                 compatible = "nxp,pca9555";
0077                 reg = <0x25>;
0078                 gpio-controller;
0079                 #gpio-cells = <2>;
0080                 vcc-supply = <&reg_vcc_3v3>;
0081                 pinctrl-names = "default";
0082                 pinctrl-0 = <&pinctrl_expander>;
0083                 interrupt-parent = <&gpio1>;
0084                 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
0085                 interrupt-controller;
0086                 #interrupt-cells = <2>;
0087 
0088                 mpcie-rst-hog {
0089                         gpio-hog;
0090                         gpios = <13 0>;
0091                         output-high;
0092                         line-name = "MPCIE_RST#";
0093                 };
0094         };
0095 };
0096 
0097 &irqsteer {
0098         status = "okay";
0099 };
0100 
0101 &led2 {
0102         gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
0103 };
0104 
0105 &pcie0 {
0106         reset-gpio = <&expander0 14 GPIO_ACTIVE_LOW>;
0107         clocks = <&clk IMX8MQ_CLK_PCIE1_ROOT>,
0108                  <&clk IMX8MQ_CLK_PCIE1_AUX>,
0109                  <&clk IMX8MQ_CLK_PCIE1_PHY>,
0110                  <&pcie0_refclk>;
0111         clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
0112         epdev_on-supply = <&reg_vcc_3v3>;
0113         hard-wired = <1>;
0114         status = "okay";
0115 };
0116 
0117 /*
0118  * miniPCIe, also usable for cards with USB. Therefore configure the reset as
0119  * static gpio hog.
0120  */
0121 &pcie1 {
0122         clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>,
0123                  <&clk IMX8MQ_CLK_PCIE2_AUX>,
0124                  <&clk IMX8MQ_CLK_PCIE2_PHY>,
0125                  <&pcie1_refclk>;
0126         clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
0127         epdev_on-supply = <&reg_vcc_3v3>;
0128         hard-wired = <1>;
0129         status = "okay";
0130 };
0131 
0132 &sai3 {
0133         assigned-clocks = <&clk IMX8MQ_CLK_SAI3>;
0134         assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
0135         clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
0136         clocks = <&clk IMX8MQ_CLK_SAI3_IPG>, <&clk IMX8MQ_CLK_DUMMY>,
0137                 <&clk IMX8MQ_CLK_SAI3_ROOT>, <&clk IMX8MQ_CLK_DUMMY>,
0138                 <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_AUDIO_PLL1_OUT>,
0139                 <&clk IMX8MQ_AUDIO_PLL2_OUT>;
0140 };
0141 
0142 &tlv320aic3x04 {
0143         clock-names = "mclk";
0144         clocks = <&clk IMX8MQ_CLK_SAI3_ROOT>;
0145 };
0146 
0147 &uart1 {
0148         assigned-clocks = <&clk IMX8MQ_CLK_UART1>;
0149         assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
0150 };
0151 
0152 &uart2 {
0153         assigned-clocks = <&clk IMX8MQ_CLK_UART2>;
0154         assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
0155 };
0156 
0157 /* console */
0158 &uart3 {
0159         assigned-clocks = <&clk IMX8MQ_CLK_UART3>;
0160         assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
0161 };
0162 
0163 &usb3_phy0 {
0164         vbus-supply = <&reg_otg_vbus>;
0165         status = "okay";
0166 };
0167 
0168 &usb_dwc3_0 {
0169         /* we implement dual role but not full featured OTG */
0170         extcon = <&extcon_usbotg>;
0171         hnp-disable;
0172         srp-disable;
0173         adp-disable;
0174         /* OC not supported due to non matching active polarity */
0175         disable-over-current;
0176         dr_mode = "otg";
0177         status = "okay";
0178 };
0179 
0180 &usb3_phy1 {
0181         status = "okay";
0182 };
0183 
0184 &usb_dwc3_1 {
0185         status = "okay";
0186         dr_mode = "host";
0187 };
0188 
0189 &wdog1 {
0190         pinctrl-names = "default";
0191         pinctrl-0 = <&pinctrl_wdog>;
0192         fsl,ext-reset-output;
0193         status = "okay";
0194 };
0195 
0196 &iomuxc {
0197         pinctrl_ecspi1: ecspi1grp {
0198                 fsl,pins = <MX8MQ_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK        0x0000004e>,
0199                            <MX8MQ_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI        0x0000004e>,
0200                            <MX8MQ_IOMUXC_ECSPI1_MISO_ECSPI1_MISO        0x0000004e>,
0201                            <MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9           0x0000004e>;
0202         };
0203 
0204         pinctrl_ecspi2: ecspi2grp {
0205                 fsl,pins = <MX8MQ_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK        0x0000004e>,
0206                            <MX8MQ_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI        0x0000004e>,
0207                            <MX8MQ_IOMUXC_ECSPI2_MISO_ECSPI2_MISO        0x0000004e>,
0208                            <MX8MQ_IOMUXC_ECSPI2_SS0_GPIO5_IO13          0x0000004e>;
0209         };
0210 
0211         pinctrl_expander: expandergrp {
0212                 fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9           0xd6>;
0213         };
0214 
0215         pinctrl_fec1: fec1grp {
0216                 fsl,pins = <MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC             0x3>,
0217                            <MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO           0x23>,
0218                            <MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3       0x1f>,
0219                            <MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2       0x1f>,
0220                            <MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1       0x1f>,
0221                            <MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0       0x1f>,
0222                            <MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3       0x91>,
0223                            <MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2       0x91>,
0224                            <MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1       0x91>,
0225                            <MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0       0x91>,
0226                            <MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC       0x1f>,
0227                            <MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC       0x91>,
0228                            <MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91>,
0229                            <MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f>;
0230         };
0231 
0232         pinctrl_gpiobutton: gpiobuttongrp {
0233                 fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5           0x41>,
0234                            <MX8MQ_IOMUXC_GPIO1_IO07_GPIO1_IO7           0x41>,
0235                            <MX8MQ_IOMUXC_NAND_WE_B_GPIO3_IO17           0x41>;
0236         };
0237 
0238         pinctrl_gpioled: gpioledgrp {
0239                 fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO00_GPIO1_IO0           0x41>,
0240                            <MX8MQ_IOMUXC_GPIO1_IO08_GPIO1_IO8           0x41>,
0241                            <MX8MQ_IOMUXC_NAND_READY_B_GPIO3_IO16        0x41>;
0242         };
0243 
0244         pinctrl_i2c2: i2c2grp {
0245                 fsl,pins = <MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL              0x40000067>,
0246                            <MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA              0x40000067>;
0247         };
0248 
0249         pinctrl_i2c2_gpio: i2c2gpiogrp {
0250                 fsl,pins = <MX8MQ_IOMUXC_I2C2_SCL_GPIO5_IO16            0x40000067>,
0251                            <MX8MQ_IOMUXC_I2C2_SDA_GPIO5_IO17            0x40000067>;
0252         };
0253 
0254         pinctrl_i2c3: i2c3grp {
0255                 fsl,pins = <MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL              0x40000067>,
0256                            <MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA              0x40000067>;
0257         };
0258 
0259         pinctrl_i2c3_gpio: i2c3gpiogrp {
0260                 fsl,pins = <MX8MQ_IOMUXC_I2C3_SCL_GPIO5_IO18            0x40000067>,
0261                            <MX8MQ_IOMUXC_I2C3_SDA_GPIO5_IO19            0x40000067>;
0262         };
0263 
0264         pinctrl_pwm3: pwm3grp {
0265                 fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO14_PWM3_OUT            0x16>;
0266         };
0267 
0268         pinctrl_pwm4: pwm4grp {
0269                 fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO15_PWM4_OUT            0x16>;
0270         };
0271 
0272         pinctrl_regotgvbus: reggotgvbusgrp {
0273                 /* USB1 OTG PWR as GPIO */
0274                 fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12          0x06>;
0275         };
0276 
0277         pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
0278                 fsl,pins = <MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19         0xc1>;
0279         };
0280 
0281         pinctrl_sai3: sai3grp {
0282                 fsl,pins = <MX8MQ_IOMUXC_SAI3_MCLK_SAI3_MCLK            0xd6>,
0283                            <MX8MQ_IOMUXC_SAI3_RXC_SAI3_RX_BCLK          0xd6>,
0284                            <MX8MQ_IOMUXC_SAI3_RXFS_SAI3_RX_SYNC         0xd6>,
0285                            <MX8MQ_IOMUXC_SAI3_RXD_SAI3_RX_DATA0         0xd6>,
0286                            <MX8MQ_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC         0xd6>,
0287                            <MX8MQ_IOMUXC_SAI3_TXD_SAI3_TX_DATA0         0xd6>,
0288                            <MX8MQ_IOMUXC_SAI3_TXC_SAI3_TX_BCLK          0xd6>;
0289         };
0290 
0291         pinctrl_uart1: uart1grp {
0292                 fsl,pins = <MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX         0x79>,
0293                            <MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX         0x79>;
0294         };
0295 
0296         pinctrl_uart2: uart2grp {
0297                 fsl,pins = <MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX         0x79>,
0298                            <MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX         0x79>;
0299         };
0300 
0301         pinctrl_uart3: uart3grp {
0302                 fsl,pins = <MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX         0x79>,
0303                            <MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX         0x79>;
0304         };
0305 
0306         pinctrl_uart4: uart4grp {
0307                 fsl,pins = <MX8MQ_IOMUXC_UART4_RXD_UART4_DCE_RX         0x79>,
0308                            <MX8MQ_IOMUXC_UART4_TXD_UART4_DCE_TX         0x79>;
0309         };
0310 
0311         pinctrl_usbcon0: usb0congrp {
0312                 /* ID: floating / high: device, low: host -> use PU */
0313                 fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO10_GPIO1_IO10          0xe6>;
0314         };
0315 
0316         pinctrl_usdhc2: usdhc2grp {
0317                 fsl,pins = <MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK             0x83>,
0318                            <MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD             0xc3>,
0319                            <MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0         0xc3>,
0320                            <MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1         0xc3>,
0321                            <MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2         0xc3>,
0322                            <MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3         0xc3>,
0323                            <MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0xc1>;
0324         };
0325 
0326         pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
0327                 fsl,pins = <MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK             0x85>,
0328                            <MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD             0xc5>,
0329                            <MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0         0xc5>,
0330                            <MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1         0xc5>,
0331                            <MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2         0xc5>,
0332                            <MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3         0xc5>,
0333                            <MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0xc1>;
0334         };
0335 
0336         pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
0337                 fsl,pins = <MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK             0x9f>,
0338                            <MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD             0xc7>,
0339                            <MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0         0xc7>,
0340                            <MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1         0xc7>,
0341                            <MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2         0xc7>,
0342                            <MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3         0xc7>,
0343                            <MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0xc1>;
0344         };
0345 
0346         pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
0347                 fsl,pins = <MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12            0x41>;
0348         };
0349 };