1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2016 Andreas Färber 4 */ 5 6#include "imx6sx.dtsi" 7 8/ { 9 compatible = "fsl,imx6sx"; 10 11 chosen { 12 stdout-path = "serial0:115200n8"; 13 }; 14 15 leds { 16 compatible = "gpio-leds"; 17 18 led-red { 19 label = "udoo-neo:red:mmc"; 20 gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; 21 default-state = "off"; 22 linux,default-trigger = "mmc0"; 23 }; 24 25 led-orange { 26 label = "udoo-neo:orange:user"; 27 gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; 28 default-state = "keep"; 29 }; 30 }; 31 32 reg_sdio_pwr: regulator-sdio-pwr { 33 compatible = "regulator-fixed"; 34 gpio = <&gpio6 1 GPIO_ACTIVE_HIGH>; 35 enable-active-high; 36 regulator-name = "SDIO_PWR"; 37 regulator-min-microvolt = <3300000>; 38 regulator-max-microvolt = <3300000>; 39 regulator-boot-on; 40 }; 41 42 reg_usb_otg1_vbus: regulator-usb-otg1-vbus { 43 compatible = "regulator-fixed"; 44 pinctrl-names = "default"; 45 pinctrl-0 = <&pinctrl_otg1_reg>; 46 regulator-name = "usb_otg1_vbus"; 47 regulator-min-microvolt = <5000000>; 48 regulator-max-microvolt = <5000000>; 49 gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>; 50 enable-active-high; 51 }; 52 53 reg_usb_otg2_vbus: regulator-usb-otg2-vbus { 54 compatible = "regulator-fixed"; 55 pinctrl-names = "default"; 56 pinctrl-0 = <&pinctrl_otg2_reg>; 57 regulator-name = "usb_otg2_vbus"; 58 regulator-min-microvolt = <5000000>; 59 regulator-max-microvolt = <5000000>; 60 gpio = <&gpio4 12 GPIO_ACTIVE_HIGH>; 61 enable-active-high; 62 }; 63 64 reg_wlan: regulator-wlan { 65 compatible = "regulator-fixed"; 66 regulator-name = "wlan-en-regulator"; 67 regulator-min-microvolt = <1800000>; 68 regulator-max-microvolt = <1800000>; 69 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>; 70 startup-delay-us = <70000>; 71 enable-active-high; 72 }; 73}; 74 75&fec1 { 76 pinctrl-names = "default"; 77 pinctrl-0 = <&pinctrl_enet1>; 78 phy-mode = "rmii"; 79 phy-reset-duration = <10>; 80 phy-reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; 81}; 82 83&i2c1 { 84 pinctrl-names = "default"; 85 pinctrl-0 = <&pinctrl_i2c1>; 86 clock-frequency = <100000>; 87 status = "okay"; 88 89 pmic: pmic@8 { 90 compatible = "fsl,pfuze3000"; 91 reg = <0x08>; 92 93 regulators { 94 sw1a_reg: sw1a { 95 regulator-min-microvolt = <700000>; 96 regulator-max-microvolt = <1475000>; 97 regulator-boot-on; 98 regulator-always-on; 99 regulator-ramp-delay = <6250>; 100 }; 101 102 sw1c_reg: sw1b { 103 regulator-min-microvolt = <700000>; 104 regulator-max-microvolt = <1475000>; 105 regulator-boot-on; 106 regulator-always-on; 107 regulator-ramp-delay = <6250>; 108 }; 109 110 sw2_reg: sw2 { 111 regulator-min-microvolt = <1500000>; 112 regulator-max-microvolt = <1850000>; 113 regulator-boot-on; 114 regulator-always-on; 115 }; 116 117 sw3a_reg: sw3 { 118 regulator-min-microvolt = <900000>; 119 regulator-max-microvolt = <1650000>; 120 regulator-boot-on; 121 regulator-always-on; 122 }; 123 124 swbst_reg: swbst { 125 regulator-min-microvolt = <5000000>; 126 regulator-max-microvolt = <5150000>; 127 }; 128 129 snvs_reg: vsnvs { 130 regulator-min-microvolt = <1000000>; 131 regulator-max-microvolt = <3000000>; 132 regulator-boot-on; 133 regulator-always-on; 134 }; 135 136 vref_reg: vrefddr { 137 regulator-boot-on; 138 regulator-always-on; 139 }; 140 141 vgen1_reg: vldo1 { 142 regulator-min-microvolt = <1800000>; 143 regulator-max-microvolt = <3300000>; 144 regulator-always-on; 145 }; 146 147 vgen2_reg: vldo2 { 148 regulator-min-microvolt = <800000>; 149 regulator-max-microvolt = <1550000>; 150 }; 151 152 vgen3_reg: vccsd { 153 regulator-min-microvolt = <2850000>; 154 regulator-max-microvolt = <3300000>; 155 regulator-always-on; 156 }; 157 158 vgen4_reg: v33 { 159 regulator-min-microvolt = <2850000>; 160 regulator-max-microvolt = <3300000>; 161 regulator-always-on; 162 }; 163 164 vgen5_reg: vldo3 { 165 regulator-min-microvolt = <1800000>; 166 regulator-max-microvolt = <3300000>; 167 regulator-always-on; 168 }; 169 170 vgen6_reg: vldo4 { 171 regulator-min-microvolt = <1800000>; 172 regulator-max-microvolt = <3300000>; 173 regulator-always-on; 174 }; 175 }; 176 }; 177}; 178 179&i2c2 { /* Brick snap in sensors connector */ 180 pinctrl-names = "default"; 181 pinctrl-0 = <&pinctrl_i2c2>; 182 clock-frequency = <100000>; 183 status = "okay"; 184}; 185 186&i2c3 { 187 pinctrl-names = "default"; 188 pinctrl-0 = <&pinctrl_i2c3>; 189 clock-frequency = <100000>; 190 status = "okay"; 191 192 hdmi-transmitter@70 { 193 compatible = "nxp,tda998x"; 194 reg = <0x70>; 195 interrupts-extended = <&gpio3 27 IRQ_TYPE_LEVEL_LOW>; 196 197 ports { 198 port { 199 hdmi: endpoint { 200 remote-endpoint = <&lcdc>; 201 }; 202 }; 203 }; 204 }; 205}; 206 207&i2c4 { /* Onboard Motion sensors */ 208 pinctrl-names = "default"; 209 pinctrl-0 = <&pinctrl_i2c4>; 210 clock-frequency = <100000>; 211 status = "disabled"; 212}; 213 214&lcdif1 { 215 pinctrl-names = "default"; 216 pinctrl-0 = <&pinctrl_lcd>; 217 status = "okay"; 218 219 port { 220 lcdc: endpoint { 221 remote-endpoint = <&hdmi>; 222 }; 223 }; 224}; 225 226&iomuxc { 227 pinctrl_bt_reg: btreggrp { 228 fsl,pins = 229 <MX6SX_PAD_KEY_ROW2__GPIO2_IO_17 0x15059>; 230 }; 231 232 pinctrl_enet1: enet1grp { 233 fsl,pins = 234 <MX6SX_PAD_ENET1_CRS__GPIO2_IO_1 0xa0b1>, 235 <MX6SX_PAD_ENET1_MDC__ENET1_MDC 0xa0b1>, 236 <MX6SX_PAD_ENET1_MDIO__ENET1_MDIO 0xa0b1>, 237 <MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0 0xa0b1>, 238 <MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1 0xa0b1>, 239 <MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN 0xa0b1>, 240 241 <MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x3081>, 242 <MX6SX_PAD_ENET2_TX_CLK__GPIO2_IO_9 0x3081>, 243 <MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0 0x3081>, 244 <MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1 0x3081>, 245 <MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN 0x3081>, 246 <MX6SX_PAD_RGMII1_RXC__ENET1_RX_ER 0x3081>, 247 248 <MX6SX_PAD_ENET2_RX_CLK__ENET2_REF_CLK_25M 0x91>; 249 }; 250 251 pinctrl_i2c1: i2c1grp { 252 fsl,pins = 253 <MX6SX_PAD_GPIO1_IO00__I2C1_SCL 0x4001b8b1>, 254 <MX6SX_PAD_GPIO1_IO01__I2C1_SDA 0x4001b8b1>; 255 }; 256 257 pinctrl_i2c2: i2c2grp { 258 fsl,pins = 259 <MX6SX_PAD_GPIO1_IO03__I2C2_SDA 0x4001b8b1>, 260 <MX6SX_PAD_GPIO1_IO02__I2C2_SCL 0x4001b8b1>; 261 }; 262 263 pinctrl_i2c3: i2c3grp { 264 fsl,pins = 265 <MX6SX_PAD_KEY_ROW4__I2C3_SDA 0x4001b8b1>, 266 <MX6SX_PAD_KEY_COL4__I2C3_SCL 0x4001b8b1>; 267 }; 268 269 pinctrl_i2c4: i2c4grp { 270 fsl,pins = 271 <MX6SX_PAD_USB_H_DATA__I2C4_SDA 0x4001b8b1>, 272 <MX6SX_PAD_USB_H_STROBE__I2C4_SCL 0x4001b8b1>; 273 }; 274 275 pinctrl_lcd: lcdgrp { 276 fsl,pins = < 277 MX6SX_PAD_LCD1_DATA00__LCDIF1_DATA_0 0x4001b0b0 278 MX6SX_PAD_LCD1_DATA01__LCDIF1_DATA_1 0x4001b0b0 279 MX6SX_PAD_LCD1_DATA02__LCDIF1_DATA_2 0x4001b0b0 280 MX6SX_PAD_LCD1_DATA03__LCDIF1_DATA_3 0x4001b0b0 281 MX6SX_PAD_LCD1_DATA04__LCDIF1_DATA_4 0x4001b0b0 282 MX6SX_PAD_LCD1_DATA05__LCDIF1_DATA_5 0x4001b0b0 283 MX6SX_PAD_LCD1_DATA06__LCDIF1_DATA_6 0x4001b0b0 284 MX6SX_PAD_LCD1_DATA07__LCDIF1_DATA_7 0x4001b0b0 285 MX6SX_PAD_LCD1_DATA08__LCDIF1_DATA_8 0x4001b0b0 286 MX6SX_PAD_LCD1_DATA09__LCDIF1_DATA_9 0x4001b0b0 287 MX6SX_PAD_LCD1_DATA10__LCDIF1_DATA_10 0x4001b0b0 288 MX6SX_PAD_LCD1_DATA11__LCDIF1_DATA_11 0x4001b0b0 289 MX6SX_PAD_LCD1_DATA12__LCDIF1_DATA_12 0x4001b0b0 290 MX6SX_PAD_LCD1_DATA13__LCDIF1_DATA_13 0x4001b0b0 291 MX6SX_PAD_LCD1_DATA14__LCDIF1_DATA_14 0x4001b0b0 292 MX6SX_PAD_LCD1_DATA15__LCDIF1_DATA_15 0x4001b0b0 293 MX6SX_PAD_LCD1_DATA16__LCDIF1_DATA_16 0x4001b0b0 294 MX6SX_PAD_LCD1_DATA17__LCDIF1_DATA_17 0x4001b0b0 295 MX6SX_PAD_LCD1_DATA18__LCDIF1_DATA_18 0x4001b0b0 296 MX6SX_PAD_LCD1_DATA19__LCDIF1_DATA_19 0x4001b0b0 297 MX6SX_PAD_LCD1_DATA20__LCDIF1_DATA_20 0x4001b0b0 298 MX6SX_PAD_LCD1_DATA21__LCDIF1_DATA_21 0x4001b0b0 299 MX6SX_PAD_LCD1_DATA22__LCDIF1_DATA_22 0x4001b0b0 300 MX6SX_PAD_LCD1_DATA23__LCDIF1_DATA_23 0x4001b0b0 301 MX6SX_PAD_LCD1_CLK__LCDIF1_CLK 0x4001b0b0 302 MX6SX_PAD_LCD1_ENABLE__LCDIF1_ENABLE 0x4001b0b0 303 MX6SX_PAD_LCD1_VSYNC__LCDIF1_VSYNC 0x4001b0b0 304 MX6SX_PAD_LCD1_HSYNC__LCDIF1_HSYNC 0x4001b0b0 305 MX6SX_PAD_LCD1_RESET__GPIO3_IO_27 0x4001b0b0 306 >; 307 }; 308 309 pinctrl_uart1: uart1grp { 310 fsl,pins = 311 <MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX 0x1b0b1>, 312 <MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX 0x1b0b1>; 313 }; 314 315 pinctrl_uart2: uart2grp { 316 fsl,pins = 317 <MX6SX_PAD_GPIO1_IO06__UART2_DCE_TX 0x1b0b1>, 318 <MX6SX_PAD_GPIO1_IO07__UART2_DCE_RX 0x1b0b1>; 319 }; 320 321 pinctrl_uart3: uart3grp { 322 fsl,pins = 323 <MX6SX_PAD_SD3_DATA4__UART3_DCE_RX 0x13059>, 324 <MX6SX_PAD_SD3_DATA5__UART3_DCE_TX 0x13059>, 325 <MX6SX_PAD_SD3_DATA6__UART3_DCE_RTS 0x13059>, 326 <MX6SX_PAD_SD3_DATA7__UART3_DCE_CTS 0x13059>; 327 }; 328 329 pinctrl_uart5: uart5grp { 330 fsl,pins = 331 <MX6SX_PAD_SD4_DATA4__UART5_DCE_RX 0x1b0b1>, 332 <MX6SX_PAD_SD4_DATA5__UART5_DCE_TX 0x1b0b1>; 333 }; 334 335 pinctrl_uart6: uart6grp { 336 fsl,pins = 337 <MX6SX_PAD_CSI_DATA00__UART6_RI_B 0x1b0b1>, 338 <MX6SX_PAD_CSI_DATA01__UART6_DSR_B 0x1b0b1>, 339 <MX6SX_PAD_CSI_DATA02__UART6_DTR_B 0x1b0b1>, 340 <MX6SX_PAD_CSI_DATA03__UART6_DCD_B 0x1b0b1>, 341 <MX6SX_PAD_CSI_DATA04__UART6_DCE_RX 0x1b0b1>, 342 <MX6SX_PAD_CSI_DATA05__UART6_DCE_TX 0x1b0b1>, 343 <MX6SX_PAD_CSI_DATA06__UART6_DCE_RTS 0x1b0b1>, 344 <MX6SX_PAD_CSI_DATA07__UART6_DCE_CTS 0x1b0b1>; 345 }; 346 347 pinctrl_otg1_reg: otg1grp { 348 fsl,pins = 349 <MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9 0x10b0>; 350 }; 351 352 pinctrl_otg2_reg: otg2grp { 353 fsl,pins = 354 <MX6SX_PAD_NAND_RE_B__GPIO4_IO_12 0x10b0>; 355 }; 356 357 pinctrl_usb_otg1: usbotg1grp { 358 fsl,pins = 359 <MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID 0x17059>, 360 <MX6SX_PAD_GPIO1_IO08__USB_OTG1_OC 0x10b0>; 361 }; 362 363 pinctrl_usb_otg2: usbot2ggrp { 364 fsl,pins = 365 <MX6SX_PAD_QSPI1A_DATA0__USB_OTG2_OC 0x10b0>; 366 }; 367 368 pinctrl_usdhc2: usdhc2grp { 369 fsl,pins = 370 <MX6SX_PAD_SD2_CMD__USDHC2_CMD 0x17059>, 371 <MX6SX_PAD_SD2_CLK__USDHC2_CLK 0x10059>, 372 <MX6SX_PAD_SD2_DATA0__USDHC2_DATA0 0x17059>, 373 <MX6SX_PAD_SD2_DATA1__USDHC2_DATA1 0x17059>, 374 <MX6SX_PAD_SD2_DATA2__USDHC2_DATA2 0x17059>, 375 <MX6SX_PAD_SD2_DATA3__USDHC2_DATA3 0x17059>, 376 <MX6SX_PAD_SD1_DATA0__GPIO6_IO_2 0x17059>; /* CD */ 377 }; 378 379 pinctrl_usdhc3: usdhc3grp { 380 fsl,pins = 381 <MX6SX_PAD_KEY_COL2__GPIO2_IO_12 0x15059>, 382 <MX6SX_PAD_KEY_ROW1__GPIO2_IO_16 0x13059>, 383 <MX6SX_PAD_SD3_DATA0__USDHC3_DATA0 0x17069>, 384 <MX6SX_PAD_SD3_DATA1__USDHC3_DATA1 0x17069>, 385 <MX6SX_PAD_SD3_DATA2__USDHC3_DATA2 0x17069>, 386 <MX6SX_PAD_SD3_DATA3__USDHC3_DATA3 0x17069>, 387 <MX6SX_PAD_SD3_CMD__USDHC3_CMD 0x17069>, 388 <MX6SX_PAD_SD3_CLK__USDHC3_CLK 0x10069>, 389 <MX6SX_PAD_CSI_MCLK__OSC32K_32K_OUT 0x10059>; 390 }; 391}; 392 393&uart1 { 394 pinctrl-names = "default"; 395 pinctrl-0 = <&pinctrl_uart1>; 396 status = "okay"; 397}; 398 399/* Cortex-M4 serial */ 400&uart2 { 401 pinctrl-names = "default"; 402 pinctrl-0 = <&pinctrl_uart2>; 403 status = "disabled"; 404}; 405 406&uart3 { /* Bluetooth - only on Extended/Full versions */ 407 pinctrl-names = "default"; 408 pinctrl-0 = <&pinctrl_uart3>; 409 uart-has-rtscts; 410 status = "disabled"; 411 412 bluetooth { 413 compatible = "ti,wl1831-st"; 414 enable-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>; 415 pinctrl-names = "default"; 416 pinctrl-0 = <&pinctrl_bt_reg>; 417 max-speed = <921600>; 418 }; 419}; 420 421/* Arduino serial */ 422&uart5 { 423 pinctrl-names = "default"; 424 pinctrl-0 = <&pinctrl_uart5>; 425 status = "disabled"; 426}; 427 428&uart6 { 429 pinctrl-names = "default"; 430 pinctrl-0 = <&pinctrl_uart6>; 431 uart-has-rtscts; 432 status = "disabled"; 433}; 434 435&usbotg1 { /* J2 micro USB port */ 436 vbus-supply = <®_usb_otg1_vbus>; 437 pinctrl-names = "default"; 438 pinctrl-0 = <&pinctrl_usb_otg1>; 439 status = "okay"; 440}; 441 442&usbotg2 { /* J3 host USB port */ 443 vbus-supply = <®_usb_otg2_vbus>; 444 pinctrl-names = "default"; 445 pinctrl-0 = <&pinctrl_usb_otg2>; 446 dr_mode = "host"; 447 status = "okay"; 448}; 449 450&usdhc2 { 451 pinctrl-names = "default"; 452 pinctrl-0 = <&pinctrl_usdhc2>; 453 vmmc-supply = <®_sdio_pwr>; 454 bus-width = <4>; 455 cd-gpios = <&gpio6 2 GPIO_ACTIVE_LOW>; 456 no-1-8-v; 457 keep-power-in-suspend; 458 wakeup-source; 459 status = "okay"; 460}; 461 462&usdhc3 { /* Wi-Fi */ 463 pinctrl-names = "default"; 464 pinctrl-0 = <&pinctrl_usdhc3>; 465 non-removable; 466 vmmc-supply = <®_wlan>; 467 cap-power-off-card; 468 wakeup-source; 469 keep-power-in-suspend; 470 #address-cells = <1>; 471 #size-cells = <0>; 472 status = "okay"; 473 474 wlcore: wlcore@2 { 475 compatible = "ti,wl1831"; 476 reg = <2>; 477 interrupt-parent = <&gpio2>; 478 interrupts = <16 IRQ_TYPE_EDGE_RISING>; 479 ref-clock-frequency = <38400000>; 480 tcxo-clock-frequency = <26000000>; 481 }; 482}; 483