1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright 2020 Gateworks Corporation 4 */ 5 6#include <dt-bindings/gpio/gpio.h> 7#include <dt-bindings/leds/common.h> 8 9/ { 10 aliases { 11 usb0 = &usbotg1; 12 usb1 = &usbotg2; 13 }; 14 15 led-controller { 16 compatible = "gpio-leds"; 17 pinctrl-names = "default"; 18 pinctrl-0 = <&pinctrl_gpio_leds>; 19 20 led-0 { 21 function = LED_FUNCTION_STATUS; 22 color = <LED_COLOR_ID_GREEN>; 23 gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>; 24 default-state = "on"; 25 linux,default-trigger = "heartbeat"; 26 }; 27 28 led-1 { 29 function = LED_FUNCTION_STATUS; 30 color = <LED_COLOR_ID_RED>; 31 gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>; 32 default-state = "off"; 33 }; 34 }; 35 36 pps { 37 compatible = "pps-gpio"; 38 pinctrl-names = "default"; 39 pinctrl-0 = <&pinctrl_pps>; 40 gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>; 41 status = "okay"; 42 }; 43 44 reg_3p3v: regulator-3p3v { 45 compatible = "regulator-fixed"; 46 regulator-name = "3P3V"; 47 regulator-min-microvolt = <3300000>; 48 regulator-max-microvolt = <3300000>; 49 regulator-always-on; 50 }; 51 52 reg_usb_otg1_vbus: regulator-usb-otg1 { 53 pinctrl-names = "default"; 54 pinctrl-0 = <&pinctrl_reg_usb1_en>; 55 compatible = "regulator-fixed"; 56 regulator-name = "usb_otg1_vbus"; 57 gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>; 58 enable-active-high; 59 regulator-min-microvolt = <5000000>; 60 regulator-max-microvolt = <5000000>; 61 }; 62 63 reg_usb_otg2_vbus: regulator-usb-otg2 { 64 pinctrl-names = "default"; 65 pinctrl-0 = <&pinctrl_reg_usb2_en>; 66 compatible = "regulator-fixed"; 67 regulator-name = "usb_otg2_vbus"; 68 gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>; 69 enable-active-high; 70 regulator-min-microvolt = <5000000>; 71 regulator-max-microvolt = <5000000>; 72 }; 73}; 74 75/* off-board header */ 76&ecspi2 { 77 pinctrl-names = "default"; 78 pinctrl-0 = <&pinctrl_spi2>; 79 cs-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH>; 80 status = "okay"; 81}; 82 83&i2c2 { 84 clock-frequency = <400000>; 85 pinctrl-names = "default"; 86 pinctrl-0 = <&pinctrl_i2c2>; 87 status = "okay"; 88 89 accelerometer@19 { 90 pinctrl-names = "default"; 91 pinctrl-0 = <&pinctrl_accel>; 92 compatible = "st,lis2de12"; 93 reg = <0x19>; 94 st,drdy-int-pin = <1>; 95 interrupt-parent = <&gpio4>; 96 interrupts = <5 IRQ_TYPE_LEVEL_LOW>; 97 interrupt-names = "INT1"; 98 }; 99}; 100 101/* off-board header */ 102&i2c3 { 103 clock-frequency = <400000>; 104 pinctrl-names = "default"; 105 pinctrl-0 = <&pinctrl_i2c3>; 106 status = "okay"; 107}; 108 109/* off-board header */ 110&sai3 { 111 pinctrl-names = "default"; 112 pinctrl-0 = <&pinctrl_sai3>; 113 assigned-clocks = <&clk IMX8MM_CLK_SAI3>; 114 assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>; 115 assigned-clock-rates = <24576000>; 116 status = "okay"; 117}; 118 119/* GPS */ 120&uart1 { 121 pinctrl-names = "default"; 122 pinctrl-0 = <&pinctrl_uart1>; 123 status = "okay"; 124}; 125 126/* off-board header */ 127&uart3 { 128 pinctrl-names = "default"; 129 pinctrl-0 = <&pinctrl_uart3>; 130 status = "okay"; 131}; 132 133/* RS232 */ 134&uart4 { 135 pinctrl-names = "default"; 136 pinctrl-0 = <&pinctrl_uart4>; 137 status = "okay"; 138}; 139 140&usbotg1 { 141 dr_mode = "otg"; 142 over-current-active-low; 143 vbus-supply = <®_usb_otg1_vbus>; 144 status = "okay"; 145}; 146 147&usbotg2 { 148 dr_mode = "host"; 149 disable-over-current; 150 vbus-supply = <®_usb_otg2_vbus>; 151 status = "okay"; 152}; 153 154/* microSD */ 155&usdhc2 { 156 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 157 pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; 158 pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>; 159 pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>; 160 cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; 161 bus-width = <4>; 162 vmmc-supply = <®_3p3v>; 163 status = "okay"; 164}; 165 166&iomuxc { 167 pinctrl-names = "default"; 168 pinctrl-0 = <&pinctrl_hog>; 169 170 pinctrl_hog: hoggrp { 171 fsl,pins = < 172 MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3 0x40000041 /* PLUG_TEST */ 173 MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x40000041 /* PCI_USBSEL */ 174 MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7 0x40000041 /* PCIE_WDIS# */ 175 MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x40000041 /* DIO0 */ 176 MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x40000041 /* DIO1 */ 177 MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x40000104 /* RS485_TERM */ 178 MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x40000104 /* RS485 */ 179 MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2 0x40000104 /* RS485_HALF */ 180 >; 181 }; 182 183 pinctrl_accel: accelgrp { 184 fsl,pins = < 185 MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x159 186 >; 187 }; 188 189 pinctrl_gpio_leds: gpioledgrp { 190 fsl,pins = < 191 MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 0x19 192 MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4 0x19 193 >; 194 }; 195 196 pinctrl_i2c3: i2c3grp { 197 fsl,pins = < 198 MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL 0x400001c3 199 MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA 0x400001c3 200 >; 201 }; 202 203 pinctrl_pps: ppsgrp { 204 fsl,pins = < 205 MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x41 206 >; 207 }; 208 209 pinctrl_reg_usb1_en: regusb1grp { 210 fsl,pins = < 211 MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x41 212 MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC 0x41 213 >; 214 }; 215 216 pinctrl_reg_usb2_en: regusb2grp { 217 fsl,pins = < 218 MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x41 219 >; 220 }; 221 222 pinctrl_sai3: sai3grp { 223 fsl,pins = < 224 MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6 225 MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0xd6 226 MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6 227 MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0xd6 228 MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0 0xd6 229 >; 230 }; 231 232 pinctrl_spi2: spi2grp { 233 fsl,pins = < 234 MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 235 MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0xd6 236 MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0xd6 237 MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0xd6 238 >; 239 }; 240 241 pinctrl_uart1: uart1grp { 242 fsl,pins = < 243 MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX 0x140 244 MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX 0x140 245 >; 246 }; 247 248 pinctrl_uart3: uart3grp { 249 fsl,pins = < 250 MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x140 251 MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x140 252 >; 253 }; 254 255 pinctrl_uart4: uart4grp { 256 fsl,pins = < 257 MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX 0x140 258 MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX 0x140 259 >; 260 }; 261 262 pinctrl_usdhc1: usdhc1grp { 263 fsl,pins = < 264 MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x190 265 MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d0 266 MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d0 267 MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d0 268 MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d0 269 MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d0 270 >; 271 }; 272 273 pinctrl_usdhc2: usdhc2grp { 274 fsl,pins = < 275 MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190 276 MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0 277 MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0 278 MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 279 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 280 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 281 >; 282 }; 283 284 pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { 285 fsl,pins = < 286 MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194 287 MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4 288 MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4 289 MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 290 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 291 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 292 >; 293 }; 294 295 pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { 296 fsl,pins = < 297 MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196 298 MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6 299 MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6 300 MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 301 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 302 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 303 >; 304 }; 305 306 pinctrl_usdhc2_gpio: usdhc2gpiogrp { 307 fsl,pins = < 308 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x1c4 309 MX8MM_IOMUXC_SD2_RESET_B_USDHC2_RESET_B 0x1d0 310 MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 311 >; 312 }; 313}; 314