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 87785331b3SBaruch Siach eeprom@57 { 88785331b3SBaruch Siach compatible = "atmel,24c02"; 89785331b3SBaruch Siach reg = <0x57>; 90785331b3SBaruch Siach status = "okay"; 91785331b3SBaruch Siach }; 92785331b3SBaruch Siach 93ffe0f9a0SJon Nettleton rtc@69 { 94ffe0f9a0SJon Nettleton compatible = "abracon,ab1805"; 95ffe0f9a0SJon Nettleton reg = <0x69>; 96ffe0f9a0SJon Nettleton abracon,tc-diode = "schottky"; 97ffe0f9a0SJon Nettleton abracon,tc-resistor = <3>; 98ffe0f9a0SJon Nettleton }; 99ffe0f9a0SJon Nettleton}; 100ffe0f9a0SJon Nettleton 101ffe0f9a0SJon Nettleton&uart2 { /* J35 header */ 102ffe0f9a0SJon Nettleton pinctrl-names = "default"; 103ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_uart2>; 104ffe0f9a0SJon Nettleton assigned-clocks = <&clk IMX8MQ_CLK_UART2>; 105ffe0f9a0SJon Nettleton assigned-clock-parents = <&clk IMX8MQ_CLK_25M>; 106ffe0f9a0SJon Nettleton status = "okay"; 107ffe0f9a0SJon Nettleton}; 108ffe0f9a0SJon Nettleton 109ffe0f9a0SJon Nettleton&uart3 { /* Mikrobus */ 110ffe0f9a0SJon Nettleton pinctrl-names = "default"; 111ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_uart3>; 112ffe0f9a0SJon Nettleton assigned-clocks = <&clk IMX8MQ_CLK_UART3>; 113ffe0f9a0SJon Nettleton assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>; 114ffe0f9a0SJon Nettleton uart-has-rtscts; 115ffe0f9a0SJon Nettleton status = "okay"; 116ffe0f9a0SJon Nettleton}; 117ffe0f9a0SJon Nettleton 118ffe0f9a0SJon Nettleton&usdhc2 { 119e045f044SAnson Huang assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>; 120e045f044SAnson Huang assigned-clock-rates = <200000000>; 121ffe0f9a0SJon Nettleton pinctrl-names = "default", "state_100mhz", "state_200mhz"; 122ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; 123ffe0f9a0SJon Nettleton pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>; 124ffe0f9a0SJon Nettleton pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>; 125ffe0f9a0SJon Nettleton cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; 126ffe0f9a0SJon Nettleton vmmc-supply = <®_usdhc2_vmmc>; 127ffe0f9a0SJon Nettleton status = "okay"; 128ffe0f9a0SJon Nettleton}; 129ffe0f9a0SJon Nettleton 130ffe0f9a0SJon Nettleton&usb_dwc3_0 { 131ffe0f9a0SJon Nettleton dr_mode = "otg"; 132ffe0f9a0SJon Nettleton status = "okay"; 133ffe0f9a0SJon Nettleton 134ffe0f9a0SJon Nettleton port { 135ffe0f9a0SJon Nettleton usb1_drd_sw: endpoint { 136ffe0f9a0SJon Nettleton remote-endpoint = <&typec1_dr_sw>; 137ffe0f9a0SJon Nettleton }; 138ffe0f9a0SJon Nettleton }; 139ffe0f9a0SJon Nettleton}; 140ffe0f9a0SJon Nettleton 141ffe0f9a0SJon Nettleton&usb_dwc3_1 { 142ffe0f9a0SJon Nettleton dr_mode = "host"; 143ffe0f9a0SJon Nettleton status = "okay"; 144ffe0f9a0SJon Nettleton}; 145ffe0f9a0SJon Nettleton 146ffe0f9a0SJon Nettleton&usb3_phy0 { 147ffe0f9a0SJon Nettleton status = "okay"; 148ffe0f9a0SJon Nettleton}; 149ffe0f9a0SJon Nettleton 150ffe0f9a0SJon Nettleton&usb3_phy1 { 151ffe0f9a0SJon Nettleton status = "okay"; 152ffe0f9a0SJon Nettleton}; 153ffe0f9a0SJon Nettleton 154ffe0f9a0SJon Nettleton&iomuxc { 155ffe0f9a0SJon Nettleton pinctrl-names = "default"; 156ffe0f9a0SJon Nettleton pinctrl-0 = <&pinctrl_hog>; 157ffe0f9a0SJon Nettleton 158ffe0f9a0SJon Nettleton pinctrl_hog: hoggrp { 159ffe0f9a0SJon Nettleton fsl,pins = < 160ffe0f9a0SJon Nettleton /* MikroBus Analog */ 161ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11 0x41 162ffe0f9a0SJon Nettleton /* MikroBus Reset */ 163ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SAI2_RXD0_GPIO4_IO23 0x41 164ffe0f9a0SJon Nettleton /* 165ffe0f9a0SJon Nettleton * The following 2 pins need to be commented out and 166ffe0f9a0SJon Nettleton * reconfigured to enable RTS/CTS on UART3 167ffe0f9a0SJon Nettleton */ 168ffe0f9a0SJon Nettleton /* MikroBus PWM */ 169ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_ECSPI1_MISO_GPIO5_IO8 0x41 170ffe0f9a0SJon Nettleton /* MikroBus INT */ 171ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x41 172ffe0f9a0SJon Nettleton >; 173ffe0f9a0SJon Nettleton }; 174ffe0f9a0SJon Nettleton 175ffe0f9a0SJon Nettleton pinctrl_i2c2: i2c2grp { 176ffe0f9a0SJon Nettleton fsl,pins = < 177ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL 0x4000007f 178ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA 0x4000007f 179ffe0f9a0SJon Nettleton >; 180ffe0f9a0SJon Nettleton }; 181ffe0f9a0SJon Nettleton 182ffe0f9a0SJon Nettleton pinctrl_i2c3: i2c3grp { 183ffe0f9a0SJon Nettleton fsl,pins = < 184ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x4000007f 185ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x4000007f 186ffe0f9a0SJon Nettleton >; 187ffe0f9a0SJon Nettleton }; 188ffe0f9a0SJon Nettleton 189ffe0f9a0SJon Nettleton pinctrl_typec: typecgrp { 190ffe0f9a0SJon Nettleton fsl,pins = < 191ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_NAND_RE_B_GPIO3_IO15 0x16 192ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x17059 193ffe0f9a0SJon Nettleton >; 194ffe0f9a0SJon Nettleton }; 195ffe0f9a0SJon Nettleton 196ffe0f9a0SJon Nettleton pinctrl_uart2: uart2grp { 197ffe0f9a0SJon Nettleton fsl,pins = < 198ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49 199ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49 200ffe0f9a0SJon Nettleton >; 201ffe0f9a0SJon Nettleton }; 202ffe0f9a0SJon Nettleton 203ffe0f9a0SJon Nettleton pinctrl_uart3: uart3grp { 204ffe0f9a0SJon Nettleton fsl,pins = < 205ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX 0x49 206ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX 0x49 207ffe0f9a0SJon Nettleton /* 208ffe0f9a0SJon Nettleton * These pins are by default GPIO on the Mikro Bus 209ffe0f9a0SJon Nettleton * Header. To use RTS/CTS on UART3 comment them out 210ffe0f9a0SJon Nettleton * of the hoggrp and enable them here 211ffe0f9a0SJon Nettleton */ 212ffe0f9a0SJon Nettleton /* MX8MQ_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B 0x49 */ 213ffe0f9a0SJon Nettleton /* MX8MQ_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B 0x49 */ 214ffe0f9a0SJon Nettleton >; 215ffe0f9a0SJon Nettleton }; 216ffe0f9a0SJon Nettleton 217*f05b1256SKrzysztof Kozlowski pinctrl_usdhc2_gpio: usdhc2gpiogrp { 218ffe0f9a0SJon Nettleton fsl,pins = < 219ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x41 220ffe0f9a0SJon Nettleton >; 221ffe0f9a0SJon Nettleton }; 222ffe0f9a0SJon Nettleton 223*f05b1256SKrzysztof Kozlowski pinctrl_usdhc2_vmmc: usdhc2vmmcgpiogrp { 224ffe0f9a0SJon Nettleton fsl,pins = < 225ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x41 226ffe0f9a0SJon Nettleton >; 227ffe0f9a0SJon Nettleton }; 228ffe0f9a0SJon Nettleton 229ffe0f9a0SJon Nettleton pinctrl_usdhc2: usdhc2grp { 230ffe0f9a0SJon Nettleton fsl,pins = < 231ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83 232ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3 233ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3 234ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3 235ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3 236ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3 237ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1 238ffe0f9a0SJon Nettleton >; 239ffe0f9a0SJon Nettleton }; 240ffe0f9a0SJon Nettleton 241*f05b1256SKrzysztof Kozlowski pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { 242ffe0f9a0SJon Nettleton fsl,pins = < 243ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d 244ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd 245ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcd 246ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcd 247ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcd 248ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcd 249ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1 250ffe0f9a0SJon Nettleton >; 251ffe0f9a0SJon Nettleton }; 252ffe0f9a0SJon Nettleton 253*f05b1256SKrzysztof Kozlowski pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { 254ffe0f9a0SJon Nettleton fsl,pins = < 255ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f 256ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xdf 257ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xdf 258ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xdf 259ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xdf 260ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xdf 261ffe0f9a0SJon Nettleton MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1 262ffe0f9a0SJon Nettleton >; 263ffe0f9a0SJon Nettleton }; 264ffe0f9a0SJon Nettleton}; 265