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