0001 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
0002 /*
0003 * Copyright (C) 2018 Jon Nettleton <jon@solid-run.com>
0004 */
0005
0006 /dts-v1/;
0007
0008 #include "dt-bindings/usb/pd.h"
0009 #include "imx8mq-sr-som.dtsi"
0010
0011 / {
0012 model = "SolidRun i.MX8MQ HummingBoard Pulse";
0013 compatible = "solidrun,hummingboard-pulse", "fsl,imx8mq";
0014
0015 chosen {
0016 stdout-path = &uart1;
0017 };
0018
0019 reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
0020 compatible = "regulator-fixed";
0021 pinctrl-names = "default";
0022 pinctrl-0 = <&pinctrl_usdhc2_vmmc>;
0023 regulator-name = "VSD_3V3";
0024 regulator-min-microvolt = <3300000>;
0025 regulator-max-microvolt = <3300000>;
0026 gpio = <&gpio1 13 GPIO_ACTIVE_LOW>;
0027 };
0028
0029 reg_v_5v0: regulator-v-5v0 {
0030 compatible = "regulator-fixed";
0031 regulator-name = "v_5v0";
0032 regulator-max-microvolt = <5000000>;
0033 regulator-min-microvolt = <5000000>;
0034 regulator-always-on;
0035 };
0036 };
0037
0038 &i2c2 {
0039 pinctrl-names = "default";
0040 pinctrl-0 = <&pinctrl_i2c2>;
0041 clock-frequency = <100000>;
0042 status = "okay";
0043
0044 typec_ptn5100: usb-typec@50 {
0045 compatible = "nxp,ptn5110";
0046 reg = <0x50>;
0047 pinctrl-names = "default";
0048 pinctrl-0 = <&pinctrl_typec>;
0049 interrupt-parent = <&gpio1>;
0050 interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
0051
0052 connector {
0053 compatible = "usb-c-connector";
0054 label = "USB-C";
0055 data-role = "dual";
0056 power-role = "dual";
0057 try-power-role = "sink";
0058 source-pdos = <PDO_FIXED(5000, 2000,
0059 PDO_FIXED_USB_COMM |
0060 PDO_FIXED_SUSPEND |
0061 PDO_FIXED_EXTPOWER)>;
0062 sink-pdos = <PDO_FIXED(5000, 2000,
0063 PDO_FIXED_USB_COMM |
0064 PDO_FIXED_SUSPEND |
0065 PDO_FIXED_EXTPOWER)
0066 PDO_FIXED(9000, 2000,
0067 PDO_FIXED_USB_COMM |
0068 PDO_FIXED_SUSPEND |
0069 PDO_FIXED_EXTPOWER)>;
0070 op-sink-microwatt = <9000000>;
0071
0072 port {
0073 typec1_dr_sw: endpoint {
0074 remote-endpoint = <&usb1_drd_sw>;
0075 };
0076 };
0077 };
0078 };
0079 };
0080
0081 &i2c3 {
0082 pinctrl-names = "default";
0083 pinctrl-0 = <&pinctrl_i2c3>;
0084 clock-frequency = <100000>;
0085 status = "okay";
0086
0087 eeprom@57 {
0088 compatible = "atmel,24c02";
0089 reg = <0x57>;
0090 status = "okay";
0091 };
0092
0093 rtc@69 {
0094 compatible = "abracon,ab1805";
0095 reg = <0x69>;
0096 abracon,tc-diode = "schottky";
0097 abracon,tc-resistor = <3>;
0098 };
0099 };
0100
0101 &uart2 { /* J35 header */
0102 pinctrl-names = "default";
0103 pinctrl-0 = <&pinctrl_uart2>;
0104 assigned-clocks = <&clk IMX8MQ_CLK_UART2>;
0105 assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
0106 status = "okay";
0107 };
0108
0109 &uart3 { /* Mikrobus */
0110 pinctrl-names = "default";
0111 pinctrl-0 = <&pinctrl_uart3>;
0112 assigned-clocks = <&clk IMX8MQ_CLK_UART3>;
0113 assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
0114 uart-has-rtscts;
0115 status = "okay";
0116 };
0117
0118 &usdhc2 {
0119 assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
0120 assigned-clock-rates = <200000000>;
0121 pinctrl-names = "default", "state_100mhz", "state_200mhz";
0122 pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
0123 pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
0124 pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
0125 cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
0126 vmmc-supply = <®_usdhc2_vmmc>;
0127 status = "okay";
0128 };
0129
0130 &usb_dwc3_0 {
0131 dr_mode = "otg";
0132 status = "okay";
0133
0134 port {
0135 usb1_drd_sw: endpoint {
0136 remote-endpoint = <&typec1_dr_sw>;
0137 };
0138 };
0139 };
0140
0141 &usb_dwc3_1 {
0142 dr_mode = "host";
0143 status = "okay";
0144 };
0145
0146 &usb3_phy0 {
0147 status = "okay";
0148 };
0149
0150 &usb3_phy1 {
0151 status = "okay";
0152 };
0153
0154 &iomuxc {
0155 pinctrl-names = "default";
0156 pinctrl-0 = <&pinctrl_hog>;
0157
0158 pinctrl_hog: hoggrp {
0159 fsl,pins = <
0160 /* MikroBus Analog */
0161 MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11 0x41
0162 /* MikroBus Reset */
0163 MX8MQ_IOMUXC_SAI2_RXD0_GPIO4_IO23 0x41
0164 /*
0165 * The following 2 pins need to be commented out and
0166 * reconfigured to enable RTS/CTS on UART3
0167 */
0168 /* MikroBus PWM */
0169 MX8MQ_IOMUXC_ECSPI1_MISO_GPIO5_IO8 0x41
0170 /* MikroBus INT */
0171 MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x41
0172 >;
0173 };
0174
0175 pinctrl_i2c2: i2c2grp {
0176 fsl,pins = <
0177 MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL 0x4000007f
0178 MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA 0x4000007f
0179 >;
0180 };
0181
0182 pinctrl_i2c3: i2c3grp {
0183 fsl,pins = <
0184 MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x4000007f
0185 MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x4000007f
0186 >;
0187 };
0188
0189 pinctrl_typec: typecgrp {
0190 fsl,pins = <
0191 MX8MQ_IOMUXC_NAND_RE_B_GPIO3_IO15 0x16
0192 MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x17059
0193 >;
0194 };
0195
0196 pinctrl_uart2: uart2grp {
0197 fsl,pins = <
0198 MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49
0199 MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49
0200 >;
0201 };
0202
0203 pinctrl_uart3: uart3grp {
0204 fsl,pins = <
0205 MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX 0x49
0206 MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX 0x49
0207 /*
0208 * These pins are by default GPIO on the Mikro Bus
0209 * Header. To use RTS/CTS on UART3 comment them out
0210 * of the hoggrp and enable them here
0211 */
0212 /* MX8MQ_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B 0x49 */
0213 /* MX8MQ_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B 0x49 */
0214 >;
0215 };
0216
0217 pinctrl_usdhc2_gpio: usdhc2gpiogrp {
0218 fsl,pins = <
0219 MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x41
0220 >;
0221 };
0222
0223 pinctrl_usdhc2_vmmc: usdhc2vmmcgpiogrp {
0224 fsl,pins = <
0225 MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x41
0226 >;
0227 };
0228
0229 pinctrl_usdhc2: usdhc2grp {
0230 fsl,pins = <
0231 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83
0232 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3
0233 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3
0234 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3
0235 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3
0236 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3
0237 MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1
0238 >;
0239 };
0240
0241 pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
0242 fsl,pins = <
0243 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d
0244 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd
0245 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcd
0246 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcd
0247 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcd
0248 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcd
0249 MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1
0250 >;
0251 };
0252
0253 pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
0254 fsl,pins = <
0255 MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f
0256 MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xdf
0257 MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xdf
0258 MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xdf
0259 MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xdf
0260 MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xdf
0261 MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1
0262 >;
0263 };
0264 };