1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (C) 2021 PHYTEC Messtechnik GmbH 4 * Author: Alexander Bauer <a.bauer@phytec.de> 5 */ 6 7/dts-v1/; 8#include "imx6ull.dtsi" 9#include "imx6ull-phytec-phycore-som.dtsi" 10 11/ { 12 aliases { 13 rtc0 = &i2c_rtc; 14 rtc1 = &snvs_rtc; 15 }; 16 17 gpio_keys: gpio-keys { 18 compatible = "gpio-key"; 19 pinctrl-names = "default"; 20 pinctrl-0 = <&pinctrl_gpio_keys>; 21 22 key { 23 label = "KEY-A"; 24 gpios = <&gpio1 18 GPIO_ACTIVE_LOW>; 25 linux,code = <KEY_A>; 26 wakeup-source; 27 }; 28 }; 29 30 reg_adc1_vref_3v3: regulator-vref-3v3 { 31 compatible = "regulator-fixed"; 32 regulator-name = "vref-3v3"; 33 regulator-min-microvolt = <3300000>; 34 regulator-max-microvolt = <3300000>; 35 }; 36 37 reg_s25fl064_hold: regulator-s25fl064-hold { 38 pinctrl-names = "default"; 39 pinctrl-0 = <&pinctrl_s25fl064_hold>; 40 compatible = "regulator-fixed"; 41 regulator-name = "s25fl064_hold"; 42 regulator-min-microvolt = <3300000>; 43 regulator-max-microvolt = <3300000>; 44 gpio = <&gpio3 17 GPIO_ACTIVE_HIGH>; 45 enable-active-high; 46 regulator-always-on; 47 }; 48 49 reg_usb_hub_vbus: regulator-hub-otg1-vbus { 50 pinctrl-names = "default"; 51 pinctrl-0 = <&pinctrl_usbhubpwr>; 52 compatible = "regulator-fixed"; 53 regulator-name = "usb_hub_vbus"; 54 regulator-min-microvolt = <3300000>; 55 regulator-max-microvolt = <3300000>; 56 gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>; 57 enable-active-high; 58 regulator-always-on; 59 }; 60 61 reg_usb_otg1_vbus: regulator-usb-otg1-vbus { 62 pinctrl-names = "default"; 63 pinctrl-0 = <&pinctrl_usbotg1pwr>; 64 compatible = "regulator-fixed"; 65 regulator-name = "usb_otg1_vbus"; 66 regulator-min-microvolt = <3300000>; 67 regulator-max-microvolt = <3300000>; 68 gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>; 69 enable-active-high; 70 regulator-always-on; 71 }; 72 73 user_leds: user-leds { 74 compatible = "gpio-leds"; 75 pinctrl-names = "default"; 76 pinctrl-0 = <&pinctrl_user_leds>, 77 <&pinctrl_user_leds_snvs>; 78 79 user-led1 { 80 label = "yellow"; 81 gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; 82 linux,default-trigger = "off"; 83 }; 84 85 user-led2 { 86 label = "red"; 87 gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; 88 linux,default-trigger = "off"; 89 }; 90 }; 91}; 92 93&can1 { 94 pinctrl-names = "default"; 95 pinctrl-0 = <&pinctrl_flexcan1>; 96 status = "okay"; 97}; 98 99&can2 { 100 pinctrl-names = "default"; 101 pinctrl-0 = <&pinctrl_flexcan2>; 102 status = "okay"; 103}; 104 105&ecspi1 { 106 #address-cells = <1>; 107 #size-cells = <0>; 108 pinctrl-names = "default"; 109 pinctrl-0 = <&pinctrl_ecspi1>, 110 <&pinctrl_ecspi1_cs>; 111 cs-gpios = <&gpio3 26 GPIO_ACTIVE_LOW>, 112 <&gpio3 10 GPIO_ACTIVE_LOW>, 113 <&gpio3 11 GPIO_ACTIVE_LOW>; 114 status = "okay"; 115 116 tpm_tis: tpm@1 { 117 pinctrl-names = "default"; 118 pinctrl-0 = <&pinctrl_tpm>; 119 compatible = "tcg,tpm_tis-spi"; 120 reg = <1>; 121 spi-max-frequency = <20000000>; 122 interrupt-parent = <&gpio5>; 123 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 124 }; 125 126 s25fl064: flash@2 { 127 #address-cells = <1>; 128 #size-cells = <1>; 129 compatible = " jedec,spi-nor"; 130 reg = <2>; 131 spi-max-frequency = <40000000>; 132 m25p,fast-read; 133 status = "disabled"; 134 }; 135}; 136 137&ecspi3 { 138 pinctrl-names = "default"; 139 pinctrl-0 = <&pinctrl_ecspi3>; 140 cs-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; 141 dmas = <&sdma 7 8 0>, 142 <&sdma 8 8 0>; 143 dma-names = "rx", "tx"; 144 status = "okay"; 145}; 146 147ðphy1 { 148 status = "okay"; 149}; 150 151&fec1 { 152 status = "okay"; 153}; 154 155&fec2 { 156 pinctrl-names = "default"; 157 pinctrl-0 = <&pinctrl_enet2>; 158 phy-mode = "rmii"; 159 phy-handle = <ðphy2>; 160 status = "okay"; 161}; 162 163&i2c1 { 164 status = "okay"; 165 166 tmp102: tmp@49 { 167 compatible = "ti,tmp102"; 168 reg = <0x49>; 169 pinctrl-names = "default"; 170 pinctrl-0 = <&pinctrl_tempsense>; 171 interrupt-parent = <&gpio5>; 172 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 173 #thermal-sensor-cells = <1>; 174 }; 175 176 i2c_rtc: rtc@68 { 177 pinctrl-names = "default"; 178 pinctrl-0 = <&pinctrl_rtc_int>; 179 compatible = "microcrystal,rv4162"; 180 reg = <0x68>; 181 interrupt-parent = <&gpio5>; 182 interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 183 }; 184}; 185 186&i2c2 { 187 pinctrl-names = "default", "gpio"; 188 pinctrl-0 = <&pinctrl_i2c2>; 189 pinctrl-1 = <&pinctrl_i2c2_gpio>; 190 sda-gpios = <&gpio1 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 191 scl-gpios = <&gpio1 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 192 status = "okay"; 193}; 194 195&i2c3 { 196 pinctrl-names = "default", "gpio"; 197 pinctrl-0 = <&pinctrl_i2c3>; 198 pinctrl-1 = <&pinctrl_i2c3_gpio>; 199 sda-gpios = <&gpio3 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 200 scl-gpios = <&gpio3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 201 status = "okay"; 202}; 203 204&i2c4 { 205 pinctrl-names = "default", "gpio"; 206 pinctrl-0 = <&pinctrl_i2c4>; 207 pinctrl-1 = <&pinctrl_i2c4_gpio>; 208 sda-gpios = <&gpio3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 209 scl-gpios = <&gpio3 8 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 210 status = "okay"; 211}; 212 213&mdio { 214 ethphy2: ethernet-phy@2 { 215 reg = <2>; 216 micrel,led-mode = <1>; 217 clocks = <&clks IMX6UL_CLK_ENET2_REF>; 218 clock-names = "rmii-ref"; 219 status = "okay"; 220 }; 221}; 222 223&pwm3 { 224 pinctrl-names = "default"; 225 pinctrl-0 = <&pinctrl_pwm3>; 226 status = "okay"; 227}; 228 229&pwm6 { 230 pinctrl-names = "default"; 231 pinctrl-0 = <&pinctrl_pwm6>; 232 status = "okay"; 233}; 234 235&pwm7 { 236 pinctrl-names = "default"; 237 pinctrl-0 = <&pinctrl_pwm7>; 238 status = "okay"; 239}; 240 241&pwm8 { 242 pinctrl-names = "default"; 243 pinctrl-0 = <&pinctrl_pwm8>; 244 status = "okay"; 245}; 246 247&uart3 { 248 pinctrl-names = "default"; 249 pinctrl-0 = <&pinctrl_uart3>; 250 status = "okay"; 251}; 252 253/* UART4 * RS485 */ 254&uart4 { 255 pinctrl-names = "default"; 256 pinctrl-0 = <&pinctrl_uart4>; 257 rts-gpios = <&gpio3 2 GPIO_ACTIVE_HIGH>; 258 linux,rs485-enabled-at-boot-time; 259 status = "okay"; 260}; 261 262/* UART5 * RS232 */ 263&uart5 { 264 pinctrl-names = "default"; 265 pinctrl-0 = <&pinctrl_uart5>; 266 uart-has-rtscts; 267 status = "okay"; 268}; 269 270&uart7 { 271 pinctrl-names = "default"; 272 pinctrl-0 = <&pinctrl_uart7>; 273 status = "okay"; 274}; 275 276/* USB */ 277&usbotg1 { 278 pinctrl-names = "default"; 279 pinctrl-0 = <&pinctrl_usb_otg1>; 280 vbus-supply = <®_usb_otg1_vbus>; 281 dr_mode = "host"; 282 disable-over-current; 283 status = "okay"; 284}; 285 286&usbotg2 { 287 vbus-supply = <®_usb_hub_vbus>; 288 disable-over-current; 289 dr_mode = "host"; 290 status = "okay"; 291}; 292 293&usdhc1 { 294 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 295 pinctrl-0 = <&pinctrl_usdhc1>; 296 pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 297 pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 298 cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>; 299 no-1-8-v; 300 keep-power-in-suspend; 301 wakeup-source; 302 status = "okay"; 303}; 304 305&usdhc2 { 306 status = "disabled"; 307}; 308 309&iomuxc_snvs { 310 pinctrl_rtc_int: rtcintgrp { 311 fsl,pins = < 312 MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x17059 313 >; 314 }; 315 316 pinctrl_stmpe: stmpegrp { 317 fsl,pins = < 318 MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x17059 319 >; 320 }; 321 322 pinctrl_tempsense: tempsensegrp { 323 fsl,pins = < 324 MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x17059 325 >; 326 }; 327 328 pinctrl_tpm: tpmgrp { 329 fsl,pins = < 330 MX6ULL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x17059 331 >; 332 }; 333 334 pinctrl_usbhubpwr: usbhubpwrgrp { 335 fsl,pins = < 336 MX6ULL_PAD_SNVS_TAMPER5__GPIO5_IO05 0x17059 337 >; 338 }; 339 340 pinctrl_user_leds_snvs: user_ledsgrp { 341 fsl,pins = < 342 MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x79 343 >; 344 }; 345}; 346 347&iomuxc { 348 pinctrl_gpio: gpiogrp { 349 fsl,pins = < 350 MX6UL_PAD_CSI_DATA05__GPIO4_IO26 0x17059 /* nUART_MUX_RS232 */ 351 MX6UL_PAD_CSI_DATA04__GPIO4_IO25 0x17059 /* nUART_MUX_DUAL_RX_TX */ 352 >; 353 }; 354 355 pinctrl_gpio_keys: gpiokeysgrp { 356 fsl,pins = < 357 MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x79 358 >; 359 }; 360 361 pinctrl_ecspi3: ecspi3grp { 362 fsl,pins = < 363 MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK 0x100b1 364 MX6UL_PAD_UART2_RTS_B__ECSPI3_MISO 0x100b1 365 MX6UL_PAD_UART2_CTS_B__ECSPI3_MOSI 0x100b1 366 MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20 0x10b0 367 >; 368 }; 369 370 pinctrl_ecspi1: ecspi1grp { 371 fsl,pins = < 372 MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK 0x100b1 373 MX6UL_PAD_LCD_DATA23__ECSPI1_MISO 0x100b1 374 MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI 0x100b1 375 >; 376 }; 377 378 pinctrl_ecspi1_cs: ecspi1csgrp { 379 fsl,pins = < 380 MX6UL_PAD_LCD_DATA21__GPIO3_IO26 0x10b0 381 MX6UL_PAD_LCD_DATA05__GPIO3_IO10 0x10b0 382 MX6UL_PAD_LCD_DATA06__GPIO3_IO11 0x10b0 383 >; 384 }; 385 386 387 pinctrl_enet2: enet2grp { 388 fsl,pins = < 389 MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0 390 MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0 391 MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0 392 MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0 393 MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b010 394 MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b010 395 MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b010 396 MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b010 397 >; 398 }; 399 400 pinctrl_flexcan1: flexcan1grp { 401 fsl,pins = < 402 MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x0b0b0 403 MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x0b0b0 404 >; 405 }; 406 407 pinctrl_flexcan2: flexcan2grp { 408 fsl,pins = < 409 MX6UL_PAD_LCD_DATA10__FLEXCAN2_TX 0x0b0b0 410 MX6UL_PAD_LCD_DATA11__FLEXCAN2_RX 0x0b0b0 411 >; 412 }; 413 414 princtrl_flexcan2_en: flexcan2engrp { 415 fsl,pins = < 416 MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x17059 417 >; 418 }; 419 420 pinctrl_i2c2: i2c2grp { 421 fsl,pins = < 422 MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0xb0 423 MX6UL_PAD_GPIO1_IO01__I2C2_SDA 0xb0 424 >; 425 }; 426 427 pinctrl_i2c2_gpio: i2c2gpiogrp { 428 fsl,pins = < 429 MX6UL_PAD_GPIO1_IO00__GPIO1_IO00 0xb0 430 MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0 431 >; 432 }; 433 434 pinctrl_i2c3: i2c3grp { 435 fsl,pins = < 436 MX6UL_PAD_LCD_DATA01__I2C3_SCL 0xb0 437 MX6UL_PAD_LCD_DATA00__I2C3_SDA 0xb0 438 >; 439 }; 440 441 pinctrl_i2c3_gpio: i2c3gpiogrp { 442 fsl,pins = < 443 MX6UL_PAD_LCD_DATA01__GPIO3_IO06 0xb0 444 MX6UL_PAD_LCD_DATA00__GPIO3_IO05 0xb0 445 >; 446 }; 447 448 pinctrl_i2c4: i2c4grp { 449 fsl,pins = < 450 MX6UL_PAD_LCD_DATA03__I2C4_SCL 0xb0 451 MX6UL_PAD_LCD_DATA02__I2C4_SDA 0xb0 452 >; 453 }; 454 455 pinctrl_i2c4_gpio: i2c4gpiogrp { 456 fsl,pins = < 457 MX6UL_PAD_LCD_DATA03__GPIO3_IO08 0xb0 458 MX6UL_PAD_LCD_DATA02__GPIO3_IO07 0xb0 459 >; 460 }; 461 462 pinctrl_pwm3: pwm3grp { 463 fsl,pins = < 464 MX6UL_PAD_GPIO1_IO04__PWM3_OUT 0x0b0b0 465 >; 466 }; 467 468 pinctrl_pwm6: pwm6grp { 469 fsl,pins = < 470 MX6UL_PAD_JTAG_TDI__PWM6_OUT 0x0b0b0 471 >; 472 }; 473 474 pinctrl_pwm7: pwm7grp { 475 fsl,pins = < 476 MX6UL_PAD_JTAG_TCK__PWM7_OUT 0x0b0b0 477 >; 478 }; 479 480 pinctrl_pwm8: pwm8grp { 481 fsl,pins = < 482 MX6UL_PAD_JTAG_TRST_B__PWM8_OUT 0x0b0b0 483 >; 484 }; 485 486 pinctrl_s25fl064_hold: s25fl064holdgrp { 487 fsl,pins = < 488 MX6UL_PAD_LCD_DATA12__GPIO3_IO17 0x100b1 489 >; 490 }; 491 492 pinctrl_sai2: sai2grp { 493 fsl,pins = < 494 MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088 495 MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088 496 MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088 497 MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x11088 498 MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088 499 >; 500 }; 501 502 pinctrl_uart3: uart3grp { 503 fsl,pins = < 504 MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x1b0b1 505 MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x1b0b1 506 >; 507 }; 508 509 pinctrl_uart4: uart4grp { 510 fsl,pins = < 511 MX6UL_PAD_LCD_CLK__UART4_DCE_TX 0x1b0b1 512 MX6UL_PAD_LCD_ENABLE__UART4_DCE_RX 0x1b0b1 513 MX6UL_PAD_LCD_HSYNC__GPIO3_IO02 0x1b0b1 514 >; 515 }; 516 517 pinctrl_uart5: uart5grp { 518 fsl,pins = < 519 MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX 0x1b0b1 520 MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x1b0b1 521 >; 522 }; 523 524 pinctrl_uart7: uart7grp { 525 fsl,pins = < 526 MX6UL_PAD_LCD_DATA16__UART7_DCE_TX 0x1b0b1 527 MX6UL_PAD_LCD_DATA17__UART7_DCE_RX 0x1b0b1 528 >; 529 }; 530 531 pinctrl_usb_otg1: usbotg1grp { 532 fsl,pins = < 533 MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x80 534 >; 535 }; 536 537 pinctrl_usbotg1pwr: usbotg1pwrgrp { 538 fsl,pins = < 539 MX6UL_PAD_CSI_DATA07__GPIO4_IO28 0x17059 540 >; 541 }; 542 543 pinctrl_usdhc1: usdhc1grp { 544 fsl,pins = < 545 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059 546 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059 547 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059 548 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 549 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 550 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 551 MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 552 >; 553 }; 554 555 pinctrl_usdhc1_100mhz: usdhc1100mhzgrp { 556 fsl,pins = < 557 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9 558 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9 559 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9 560 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9 561 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9 562 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9 563 >; 564 }; 565 566 pinctrl_usdhc1_200mhz: usdhc1200mhzgrp { 567 fsl,pins = < 568 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9 569 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9 570 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9 571 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9 572 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9 573 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9 574 >; 575 }; 576 577 pinctrl_user_leds: userledsgrp { 578 fsl,pins = < 579 MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x79 580 >; 581 }; 582}; 583