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