1*ffe0f9a0SJon Nettleton// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*ffe0f9a0SJon Nettleton/* 3*ffe0f9a0SJon Nettleton * Copyright (C) 2018 Jon Nettleton <jon@solid-run.com> 4*ffe0f9a0SJon Nettleton */ 5*ffe0f9a0SJon Nettleton 6*ffe0f9a0SJon Nettleton/dts-v1/; 7*ffe0f9a0SJon Nettleton 8*ffe0f9a0SJon Nettleton#include "dt-bindings/usb/pd.h" 9*ffe0f9a0SJon Nettleton#include "imx8mq-sr-som.dtsi" 10*ffe0f9a0SJon Nettleton 11*ffe0f9a0SJon Nettleton/ { 12*ffe0f9a0SJon Nettleton model = "SolidRun i.MX8MQ HummingBoard Pulse"; 13*ffe0f9a0SJon Nettleton compatible = "solidrun,hummingboard-pulse", "fsl,imx8mq"; 14*ffe0f9a0SJon Nettleton 15*ffe0f9a0SJon Nettleton chosen { 16*ffe0f9a0SJon Nettleton stdout-path = &uart1; 17*ffe0f9a0SJon Nettleton }; 18*ffe0f9a0SJon Nettleton 19*ffe0f9a0SJon Nettleton reg_usdhc2_vmmc: regulator-usdhc2-vmmc { 20*ffe0f9a0SJon Nettleton compatible = "regulator-fixed"; 21*ffe0f9a0SJon Nettleton pinctrl-names = "default"; 22*ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_usdhc2_vmmc>; 23*ffe0f9a0SJon Nettleton regulator-name = "VSD_3V3"; 24*ffe0f9a0SJon Nettleton regulator-min-microvolt = <3300000>; 25*ffe0f9a0SJon Nettleton regulator-max-microvolt = <3300000>; 26*ffe0f9a0SJon Nettleton gpio = <&gpio1 13 GPIO_ACTIVE_LOW>; 27*ffe0f9a0SJon Nettleton }; 28*ffe0f9a0SJon Nettleton 29*ffe0f9a0SJon Nettleton reg_v_5v0: regulator-v-5v0 { 30*ffe0f9a0SJon Nettleton compatible = "regulator-fixed"; 31*ffe0f9a0SJon Nettleton regulator-name = "v_5v0"; 32*ffe0f9a0SJon Nettleton regulator-max-microvolt = <5000000>; 33*ffe0f9a0SJon Nettleton regulator-min-microvolt = <5000000>; 34*ffe0f9a0SJon Nettleton regulator-always-on; 35*ffe0f9a0SJon Nettleton }; 36*ffe0f9a0SJon Nettleton}; 37*ffe0f9a0SJon Nettleton 38*ffe0f9a0SJon Nettleton&i2c2 { 39*ffe0f9a0SJon Nettleton pinctrl-names = "default"; 40*ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_i2c2>; 41*ffe0f9a0SJon Nettleton clock-frequency = <100000>; 42*ffe0f9a0SJon Nettleton status = "okay"; 43*ffe0f9a0SJon Nettleton 44*ffe0f9a0SJon Nettleton typec_ptn5100: usb-typec@50 { 45*ffe0f9a0SJon Nettleton compatible = "nxp,ptn5110"; 46*ffe0f9a0SJon Nettleton reg = <0x50>; 47*ffe0f9a0SJon Nettleton pinctrl-names = "default"; 48*ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_typec>; 49*ffe0f9a0SJon Nettleton interrupt-parent = <&gpio1>; 50*ffe0f9a0SJon Nettleton interrupts = <6 IRQ_TYPE_LEVEL_LOW>; 51*ffe0f9a0SJon Nettleton 52*ffe0f9a0SJon Nettleton connector { 53*ffe0f9a0SJon Nettleton compatible = "usb-c-connector"; 54*ffe0f9a0SJon Nettleton label = "USB-C"; 55*ffe0f9a0SJon Nettleton data-role = "dual"; 56*ffe0f9a0SJon Nettleton power-role = "dual"; 57*ffe0f9a0SJon Nettleton try-power-role = "sink"; 58*ffe0f9a0SJon Nettleton source-pdos = <PDO_FIXED(5000, 2000, 59*ffe0f9a0SJon Nettleton PDO_FIXED_USB_COMM | 60*ffe0f9a0SJon Nettleton PDO_FIXED_SUSPEND | 61*ffe0f9a0SJon Nettleton PDO_FIXED_EXTPOWER)>; 62*ffe0f9a0SJon Nettleton sink-pdos = <PDO_FIXED(5000, 2000, 63*ffe0f9a0SJon Nettleton PDO_FIXED_USB_COMM | 64*ffe0f9a0SJon Nettleton PDO_FIXED_SUSPEND | 65*ffe0f9a0SJon Nettleton PDO_FIXED_EXTPOWER) 66*ffe0f9a0SJon Nettleton PDO_FIXED(9000, 2000, 67*ffe0f9a0SJon Nettleton PDO_FIXED_USB_COMM | 68*ffe0f9a0SJon Nettleton PDO_FIXED_SUSPEND | 69*ffe0f9a0SJon Nettleton PDO_FIXED_EXTPOWER)>; 70*ffe0f9a0SJon Nettleton op-sink-microwatt = <9000000>; 71*ffe0f9a0SJon Nettleton 72*ffe0f9a0SJon Nettleton port { 73*ffe0f9a0SJon Nettleton typec1_dr_sw: endpoint { 74*ffe0f9a0SJon Nettleton remote-endpoint = <&usb1_drd_sw>; 75*ffe0f9a0SJon Nettleton }; 76*ffe0f9a0SJon Nettleton }; 77*ffe0f9a0SJon Nettleton }; 78*ffe0f9a0SJon Nettleton }; 79*ffe0f9a0SJon Nettleton}; 80*ffe0f9a0SJon Nettleton 81*ffe0f9a0SJon Nettleton&i2c3 { 82*ffe0f9a0SJon Nettleton pinctrl-names = "default"; 83*ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_i2c3>; 84*ffe0f9a0SJon Nettleton clock-frequency = <100000>; 85*ffe0f9a0SJon Nettleton status = "okay"; 86*ffe0f9a0SJon Nettleton 87*ffe0f9a0SJon Nettleton rtc@69 { 88*ffe0f9a0SJon Nettleton compatible = "abracon,ab1805"; 89*ffe0f9a0SJon Nettleton reg = <0x69>; 90*ffe0f9a0SJon Nettleton abracon,tc-diode = "schottky"; 91*ffe0f9a0SJon Nettleton abracon,tc-resistor = <3>; 92*ffe0f9a0SJon Nettleton }; 93*ffe0f9a0SJon Nettleton}; 94*ffe0f9a0SJon Nettleton 95*ffe0f9a0SJon Nettleton&uart2 { /* J35 header */ 96*ffe0f9a0SJon Nettleton pinctrl-names = "default"; 97*ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_uart2>; 98*ffe0f9a0SJon Nettleton assigned-clocks = <&clk IMX8MQ_CLK_UART2>; 99*ffe0f9a0SJon Nettleton assigned-clock-parents = <&clk IMX8MQ_CLK_25M>; 100*ffe0f9a0SJon Nettleton status = "okay"; 101*ffe0f9a0SJon Nettleton}; 102*ffe0f9a0SJon Nettleton 103*ffe0f9a0SJon Nettleton&uart3 { /* Mikrobus */ 104*ffe0f9a0SJon Nettleton pinctrl-names = "default"; 105*ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_uart3>; 106*ffe0f9a0SJon Nettleton assigned-clocks = <&clk IMX8MQ_CLK_UART3>; 107*ffe0f9a0SJon Nettleton assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>; 108*ffe0f9a0SJon Nettleton uart-has-rtscts; 109*ffe0f9a0SJon Nettleton status = "okay"; 110*ffe0f9a0SJon Nettleton}; 111*ffe0f9a0SJon Nettleton 112*ffe0f9a0SJon Nettleton&usdhc2 { 113*ffe0f9a0SJon Nettleton pinctrl-names = "default", "state_100mhz", "state_200mhz"; 114*ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; 115*ffe0f9a0SJon Nettleton pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>; 116*ffe0f9a0SJon Nettleton pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>; 117*ffe0f9a0SJon Nettleton cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; 118*ffe0f9a0SJon Nettleton vmmc-supply = <®_usdhc2_vmmc>; 119*ffe0f9a0SJon Nettleton status = "okay"; 120*ffe0f9a0SJon Nettleton}; 121*ffe0f9a0SJon Nettleton 122*ffe0f9a0SJon Nettleton&usb_dwc3_0 { 123*ffe0f9a0SJon Nettleton dr_mode = "otg"; 124*ffe0f9a0SJon Nettleton status = "okay"; 125*ffe0f9a0SJon Nettleton 126*ffe0f9a0SJon Nettleton port { 127*ffe0f9a0SJon Nettleton usb1_drd_sw: endpoint { 128*ffe0f9a0SJon Nettleton remote-endpoint = <&typec1_dr_sw>; 129*ffe0f9a0SJon Nettleton }; 130*ffe0f9a0SJon Nettleton }; 131*ffe0f9a0SJon Nettleton}; 132*ffe0f9a0SJon Nettleton 133*ffe0f9a0SJon Nettleton&usb_dwc3_1 { 134*ffe0f9a0SJon Nettleton dr_mode = "host"; 135*ffe0f9a0SJon Nettleton status = "okay"; 136*ffe0f9a0SJon Nettleton}; 137*ffe0f9a0SJon Nettleton 138*ffe0f9a0SJon Nettleton&usb3_phy0 { 139*ffe0f9a0SJon Nettleton status = "okay"; 140*ffe0f9a0SJon Nettleton}; 141*ffe0f9a0SJon Nettleton 142*ffe0f9a0SJon Nettleton&usb3_phy1 { 143*ffe0f9a0SJon Nettleton status = "okay"; 144*ffe0f9a0SJon Nettleton}; 145*ffe0f9a0SJon Nettleton 146*ffe0f9a0SJon Nettleton&iomuxc { 147*ffe0f9a0SJon Nettleton pinctrl-names = "default"; 148*ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_hog>; 149*ffe0f9a0SJon Nettleton 150*ffe0f9a0SJon Nettleton pinctrl_hog: hoggrp { 151*ffe0f9a0SJon Nettleton fsl,pins = < 152*ffe0f9a0SJon Nettleton /* MikroBus Analog */ 153*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11 0x41 154*ffe0f9a0SJon Nettleton /* MikroBus Reset */ 155*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SAI2_RXD0_GPIO4_IO23 0x41 156*ffe0f9a0SJon Nettleton /* 157*ffe0f9a0SJon Nettleton * The following 2 pins need to be commented out and 158*ffe0f9a0SJon Nettleton * reconfigured to enable RTS/CTS on UART3 159*ffe0f9a0SJon Nettleton */ 160*ffe0f9a0SJon Nettleton /* MikroBus PWM */ 161*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_ECSPI1_MISO_GPIO5_IO8 0x41 162*ffe0f9a0SJon Nettleton /* MikroBus INT */ 163*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x41 164*ffe0f9a0SJon Nettleton >; 165*ffe0f9a0SJon Nettleton }; 166*ffe0f9a0SJon Nettleton 167*ffe0f9a0SJon Nettleton pinctrl_i2c2: i2c2grp { 168*ffe0f9a0SJon Nettleton fsl,pins = < 169*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL 0x4000007f 170*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA 0x4000007f 171*ffe0f9a0SJon Nettleton >; 172*ffe0f9a0SJon Nettleton }; 173*ffe0f9a0SJon Nettleton 174*ffe0f9a0SJon Nettleton pinctrl_i2c3: i2c3grp { 175*ffe0f9a0SJon Nettleton fsl,pins = < 176*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x4000007f 177*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x4000007f 178*ffe0f9a0SJon Nettleton >; 179*ffe0f9a0SJon Nettleton }; 180*ffe0f9a0SJon Nettleton 181*ffe0f9a0SJon Nettleton pinctrl_typec: typecgrp { 182*ffe0f9a0SJon Nettleton fsl,pins = < 183*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_NAND_RE_B_GPIO3_IO15 0x16 184*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x17059 185*ffe0f9a0SJon Nettleton >; 186*ffe0f9a0SJon Nettleton }; 187*ffe0f9a0SJon Nettleton 188*ffe0f9a0SJon Nettleton pinctrl_uart2: uart2grp { 189*ffe0f9a0SJon Nettleton fsl,pins = < 190*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49 191*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49 192*ffe0f9a0SJon Nettleton >; 193*ffe0f9a0SJon Nettleton }; 194*ffe0f9a0SJon Nettleton 195*ffe0f9a0SJon Nettleton pinctrl_uart3: uart3grp { 196*ffe0f9a0SJon Nettleton fsl,pins = < 197*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX 0x49 198*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX 0x49 199*ffe0f9a0SJon Nettleton /* 200*ffe0f9a0SJon Nettleton * These pins are by default GPIO on the Mikro Bus 201*ffe0f9a0SJon Nettleton * Header. To use RTS/CTS on UART3 comment them out 202*ffe0f9a0SJon Nettleton * of the hoggrp and enable them here 203*ffe0f9a0SJon Nettleton */ 204*ffe0f9a0SJon Nettleton /* MX8MQ_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B 0x49 */ 205*ffe0f9a0SJon Nettleton /* MX8MQ_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B 0x49 */ 206*ffe0f9a0SJon Nettleton >; 207*ffe0f9a0SJon Nettleton }; 208*ffe0f9a0SJon Nettleton 209*ffe0f9a0SJon Nettleton pinctrl_usdhc2_gpio: usdhc2grpgpio { 210*ffe0f9a0SJon Nettleton fsl,pins = < 211*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x41 212*ffe0f9a0SJon Nettleton >; 213*ffe0f9a0SJon Nettleton }; 214*ffe0f9a0SJon Nettleton 215*ffe0f9a0SJon Nettleton pinctrl_usdhc2_vmmc: usdhc2vmmcgpio { 216*ffe0f9a0SJon Nettleton fsl,pins = < 217*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x41 218*ffe0f9a0SJon Nettleton >; 219*ffe0f9a0SJon Nettleton }; 220*ffe0f9a0SJon Nettleton 221*ffe0f9a0SJon Nettleton pinctrl_usdhc2: usdhc2grp { 222*ffe0f9a0SJon Nettleton fsl,pins = < 223*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83 224*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3 225*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3 226*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3 227*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3 228*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3 229*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1 230*ffe0f9a0SJon Nettleton >; 231*ffe0f9a0SJon Nettleton }; 232*ffe0f9a0SJon Nettleton 233*ffe0f9a0SJon Nettleton pinctrl_usdhc2_100mhz: usdhc2grp100mhz { 234*ffe0f9a0SJon Nettleton fsl,pins = < 235*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d 236*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd 237*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcd 238*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcd 239*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcd 240*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcd 241*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1 242*ffe0f9a0SJon Nettleton >; 243*ffe0f9a0SJon Nettleton }; 244*ffe0f9a0SJon Nettleton 245*ffe0f9a0SJon Nettleton pinctrl_usdhc2_200mhz: usdhc2grp200mhz { 246*ffe0f9a0SJon Nettleton fsl,pins = < 247*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f 248*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xdf 249*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xdf 250*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xdf 251*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xdf 252*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xdf 253*ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1 254*ffe0f9a0SJon Nettleton >; 255*ffe0f9a0SJon Nettleton }; 256*ffe0f9a0SJon Nettleton}; 257