1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * at91-sama5d27_som1_ek.dts - Device Tree file for SAMA5D27-SOM1-EK board 4 * 5 * Copyright (c) 2017, Microchip Technology Inc. 6 * 2016 Nicolas Ferre <nicolas.ferre@atmel.com> 7 * 2017 Cristian Birsan <cristian.birsan@microchip.com> 8 * 2017 Claudiu Beznea <claudiu.beznea@microchip.com> 9 */ 10/dts-v1/; 11#include "at91-sama5d27_som1.dtsi" 12#include <dt-bindings/mfd/atmel-flexcom.h> 13#include <dt-bindings/gpio/gpio.h> 14#include <dt-bindings/input/input.h> 15 16/ { 17 model = "Atmel SAMA5D27 SOM1 EK"; 18 compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5"; 19 20 aliases { 21 serial0 = &uart1; /* DBGU */ 22 serial1 = &uart4; /* mikro BUS 1 */ 23 serial2 = &uart2; /* mikro BUS 2 */ 24 i2c1 = &i2c1; 25 i2c2 = &i2c3; 26 }; 27 28 chosen { 29 stdout-path = "serial0:115200n8"; 30 }; 31 32 ahb { 33 usb0: gadget@300000 { 34 atmel,vbus-gpio = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&pinctrl_usba_vbus>; 37 status = "okay"; 38 }; 39 40 usb1: ohci@400000 { 41 num-ports = <3>; 42 atmel,vbus-gpio = <0 /* &pioA PIN_PD20 GPIO_ACTIVE_HIGH */ 43 &pioA PIN_PA27 GPIO_ACTIVE_HIGH 44 0 45 >; 46 pinctrl-names = "default"; 47 pinctrl-0 = <&pinctrl_usb_default>; 48 status = "okay"; 49 }; 50 51 usb2: ehci@500000 { 52 status = "okay"; 53 }; 54 55 sdmmc0: sdio-host@a0000000 { 56 bus-width = <8>; 57 mmc-ddr-3_3v; 58 pinctrl-names = "default"; 59 pinctrl-0 = <&pinctrl_sdmmc0_default>; 60 status = "okay"; 61 }; 62 63 sdmmc1: sdio-host@b0000000 { 64 bus-width = <4>; 65 pinctrl-names = "default"; 66 pinctrl-0 = <&pinctrl_sdmmc1_default>; 67 status = "okay"; 68 }; 69 70 apb { 71 isc: isc@f0008000 { 72 pinctrl-names = "default"; 73 pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>; 74 }; 75 76 qspi1: spi@f0024000 { 77 status = "okay"; 78 }; 79 80 spi0: spi@f8000000 { 81 pinctrl-names = "default"; 82 pinctrl-0 = <&pinctrl_spi0_default>; 83 status = "okay"; 84 }; 85 86 macb0: ethernet@f8008000 { 87 status = "okay"; 88 }; 89 90 tcb0: timer@f800c000 { 91 timer0: timer@0 { 92 compatible = "atmel,tcb-timer"; 93 reg = <0>; 94 }; 95 96 timer1: timer@1 { 97 compatible = "atmel,tcb-timer"; 98 reg = <1>; 99 }; 100 }; 101 102 uart1: serial@f8020000 { 103 pinctrl-names = "default"; 104 pinctrl-0 = <&pinctrl_uart1_default>; 105 atmel,use-dma-rx; 106 atmel,use-dma-tx; 107 status = "okay"; 108 }; 109 110 uart2: serial@f8024000 { 111 pinctrl-names = "default"; 112 pinctrl-0 = <&pinctrl_mikrobus2_uart>; 113 atmel,use-dma-rx; 114 atmel,use-dma-tx; 115 status = "okay"; 116 }; 117 118 pwm0: pwm@f802c000 { 119 pinctrl-names = "default"; 120 pinctrl-0 = <&pinctrl_mikrobus1_pwm &pinctrl_mikrobus2_pwm>; 121 status = "disabled"; /* Conflict with leds. */ 122 }; 123 124 flx1: flexcom@f8038000 { 125 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; 126 status = "okay"; 127 128 i2c3: i2c@600 { 129 dmas = <0>, <0>; 130 i2c-analog-filter; 131 i2c-digital-filter; 132 i2c-digital-filter-width-ns = <35>; 133 pinctrl-names = "default"; 134 pinctrl-0 = <&pinctrl_mikrobus_i2c>; 135 status = "okay"; 136 }; 137 }; 138 139 shdwc@f8048010 { 140 debounce-delay-us = <976>; 141 atmel,wakeup-rtc-timer; 142 143 input@0 { 144 reg = <0>; 145 }; 146 }; 147 148 watchdog@f8048040 { 149 status = "okay"; 150 }; 151 152 uart3: serial@fc008000 { 153 atmel,use-dma-rx; 154 atmel,use-dma-tx; 155 pinctrl-names = "default"; 156 pinctrl-0 = <&pinctrl_uart3_default>; 157 status = "disabled"; /* Conflict with isc. */ 158 }; 159 160 uart4: serial@fc00c000 { 161 atmel,use-dma-rx; 162 atmel,use-dma-tx; 163 pinctrl-names = "default"; 164 pinctrl-0 = <&pinctrl_mikrobus1_uart>; 165 status = "okay"; 166 }; 167 168 flx3: flexcom@fc014000 { 169 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 170 status = "disabled"; 171 172 uart8: serial@200 { 173 dmas = <0>, <0>; 174 pinctrl-names = "default"; 175 pinctrl-0 = <&pinctrl_flx3_default>; 176 status = "disabled"; /* Conflict with isc. */ 177 }; 178 179 spi5: spi@400 { 180 dmas = <0>, <0>; 181 pinctrl-names = "default"; 182 pinctrl-0 = <&pinctrl_flx3_default>; 183 status = "disabled"; /* Conflict with isc. */ 184 }; 185 }; 186 187 flx4: flexcom@fc018000 { 188 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 189 status = "okay"; 190 191 uart9: serial@200 { 192 dmas = <0>, <0>; 193 pinctrl-names = "default"; 194 pinctrl-0 = <&pinctrl_flx4_default>; 195 status = "disabled"; /* Conflict with spi6 and i2c6. */ 196 }; 197 198 spi6: spi@400 { 199 dmas = <0>, <0>; 200 pinctrl-names = "default"; 201 pinctrl-0 = <&pinctrl_mikrobus_spi &pinctrl_mikrobus1_spi_cs &pinctrl_mikrobus2_spi_cs>; 202 status = "okay"; /* Conflict with uart5 and i2c6. */ 203 }; 204 205 i2c6: i2c@600 { 206 dmas = <0>, <0>; 207 pinctrl-names = "default"; 208 pinctrl-0 = <&pinctrl_flx4_default>; 209 status = "disabled"; /* Conflict with uart5 and spi6. */ 210 }; 211 }; 212 213 i2c1: i2c@fc028000 { 214 dmas = <0>, <0>; 215 i2c-analog-filter; 216 i2c-digital-filter; 217 i2c-digital-filter-width-ns = <35>; 218 pinctrl-names = "default"; 219 pinctrl-0 = <&pinctrl_i2c1_default>; 220 status = "okay"; 221 }; 222 223 adc: adc@fc030000 { 224 vddana-supply = <&vddana>; 225 vref-supply = <&advref>; 226 pinctrl-names = "default"; 227 pinctrl-0 = <&pinctrl_mikrobus1_an &pinctrl_mikrobus2_an>; 228 229 status = "okay"; 230 }; 231 232 pinctrl@fc038000 { 233 234 pinctrl_can1_default: can1_default { 235 pinmux = <PIN_PC26__CANTX1>, 236 <PIN_PC27__CANRX1>; 237 bias-disable; 238 }; 239 240 pinctrl_flx3_default: flx3_default { 241 pinmux = <PIN_PC20__FLEXCOM3_IO0>, 242 <PIN_PC19__FLEXCOM3_IO1>, 243 <PIN_PC18__FLEXCOM3_IO2>, 244 <PIN_PC21__FLEXCOM3_IO3>, 245 <PIN_PC22__FLEXCOM3_IO4>; 246 bias-disable; 247 }; 248 249 pinctrl_i2c1_default: i2c1_default { 250 pinmux = <PIN_PD4__TWD1>, 251 <PIN_PD5__TWCK1>; 252 bias-disable; 253 }; 254 255 pinctrl_isc_base: isc_base { 256 pinmux = <PIN_PC21__ISC_PCK>, 257 <PIN_PC22__ISC_VSYNC>, 258 <PIN_PC23__ISC_HSYNC>, 259 <PIN_PC24__ISC_MCK>; 260 bias-disable; 261 }; 262 263 pinctrl_isc_data_8bit: isc_data_8bit { 264 pinmux = <PIN_PC20__ISC_D11>, 265 <PIN_PC19__ISC_D10>, 266 <PIN_PC18__ISC_D9>, 267 <PIN_PC17__ISC_D8>, 268 <PIN_PC16__ISC_D7>, 269 <PIN_PC15__ISC_D6>, 270 <PIN_PC14__ISC_D5>, 271 <PIN_PC13__ISC_D4>; 272 bias-disable; 273 }; 274 275 pinctrl_isc_data_9_10: isc_data_9_10 { 276 pinmux = <PIN_PC12__ISC_D3>, 277 <PIN_PC11__ISC_D2>; 278 bias-disable; 279 }; 280 281 pinctrl_isc_data_11_12: isc_data_11_12 { 282 pinmux = <PIN_PC10__ISC_D1>, 283 <PIN_PC9__ISC_D0>; 284 bias-disable; 285 }; 286 287 pinctrl_key_gpio_default: key_gpio_default { 288 pinmux = <PIN_PA29__GPIO>; 289 bias-pull-up; 290 }; 291 292 pinctrl_led_gpio_default: led_gpio_default { 293 pinmux = <PIN_PA10__GPIO>, 294 <PIN_PB1__GPIO>, 295 <PIN_PA31__GPIO>; 296 bias-pull-up; 297 }; 298 299 pinctrl_sdmmc0_default: sdmmc0_default { 300 cmd_data { 301 pinmux = <PIN_PA1__SDMMC0_CMD>, 302 <PIN_PA2__SDMMC0_DAT0>, 303 <PIN_PA3__SDMMC0_DAT1>, 304 <PIN_PA4__SDMMC0_DAT2>, 305 <PIN_PA5__SDMMC0_DAT3>, 306 <PIN_PA6__SDMMC0_DAT4>, 307 <PIN_PA7__SDMMC0_DAT5>, 308 <PIN_PA8__SDMMC0_DAT6>, 309 <PIN_PA9__SDMMC0_DAT7>; 310 bias-disable; 311 }; 312 313 ck_cd_vddsel { 314 pinmux = <PIN_PA0__SDMMC0_CK>, 315 <PIN_PA11__SDMMC0_VDDSEL>, 316 <PIN_PA13__SDMMC0_CD>; 317 bias-disable; 318 }; 319 }; 320 321 pinctrl_sdmmc1_default: sdmmc1_default { 322 cmd_data { 323 pinmux = <PIN_PA28__SDMMC1_CMD>, 324 <PIN_PA18__SDMMC1_DAT0>, 325 <PIN_PA19__SDMMC1_DAT1>, 326 <PIN_PA20__SDMMC1_DAT2>, 327 <PIN_PA21__SDMMC1_DAT3>; 328 bias-disable; 329 }; 330 331 conf-ck_cd { 332 pinmux = <PIN_PA22__SDMMC1_CK>, 333 <PIN_PA30__SDMMC1_CD>; 334 bias-disable; 335 }; 336 }; 337 338 pinctrl_spi0_default: spi0_default { 339 pinmux = <PIN_PA14__SPI0_SPCK>, 340 <PIN_PA15__SPI0_MOSI>, 341 <PIN_PA16__SPI0_MISO>, 342 <PIN_PA17__SPI0_NPCS0>; 343 bias-disable; 344 }; 345 346 pinctrl_uart1_default: uart1_default { 347 pinmux = <PIN_PD2__URXD1>, 348 <PIN_PD3__UTXD1>; 349 bias-disable; 350 }; 351 352 pinctrl_uart3_default: uart3_default { 353 pinmux = <PIN_PC12__URXD3>, 354 <PIN_PC13__UTXD3>; 355 bias-disable; 356 }; 357 358 pinctrl_usb_default: usb_default { 359 pinmux = <PIN_PA27__GPIO>, 360 <PIN_PD19__GPIO>; 361 bias-disable; 362 }; 363 364 pinctrl_usba_vbus: usba_vbus { 365 pinmux = <PIN_PD20__GPIO>; 366 bias-disable; 367 }; 368 369 pinctrl_mikrobus1_an: mikrobus1_an { 370 pinmux = <PIN_PD25__GPIO>; 371 bias-disable; 372 }; 373 374 pinctrl_mikrobus2_an: mikrobus2_an { 375 pinmux = <PIN_PD26__GPIO>; 376 bias-disable; 377 }; 378 379 pinctrl_mikrobus1_rst: mikrobus1_rst { 380 pinmux = <PIN_PB2__GPIO>; 381 bias-disable; 382 }; 383 384 pinctrl_mikrobus2_rst: mikrobus2_rst { 385 pinmux = <PIN_PA26__GPIO>; 386 bias-disable; 387 }; 388 389 pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs { 390 pinmux = <PIN_PD0__FLEXCOM4_IO4>; 391 bias-disable; 392 }; 393 394 pinctrl_mikrobus2_spi_cs: mikrobus2_spi_cs { 395 pinmux = <PIN_PC31__FLEXCOM4_IO3>; 396 bias-disable; 397 }; 398 399 pinctrl_mikrobus_spi: mikrobus_spi { 400 pinmux = <PIN_PC28__FLEXCOM4_IO0>, 401 <PIN_PC29__FLEXCOM4_IO1>, 402 <PIN_PC30__FLEXCOM4_IO2>; 403 bias-disable; 404 }; 405 406 pinctrl_mikrobus1_pwm: mikrobus1_pwm { 407 pinmux = <PIN_PB1__PWML1>; 408 bias-disable; 409 }; 410 411 pinctrl_mikrobus2_pwm: mikrobus2_pwm { 412 pinmux = <PIN_PA31__PWML0>; 413 bias-disable; 414 }; 415 416 pinctrl_mikrobus1_int: mikrobus1_int { 417 pinmux = <PIN_PB0__GPIO>; 418 bias-disable; 419 }; 420 421 pinctrl_mikrobus2_int: mikrobus2_int { 422 pinmux = <PIN_PA25__GPIO>; 423 bias-disable; 424 }; 425 426 pinctrl_mikrobus1_uart: mikrobus1_uart { 427 pinmux = <PIN_PB3__URXD4>, 428 <PIN_PB4__UTXD4>; 429 bias-disable; 430 }; 431 432 pinctrl_mikrobus2_uart: mikrobus2_uart { 433 pinmux = <PIN_PD23__URXD2>, 434 <PIN_PD24__UTXD2>; 435 bias-disable; 436 }; 437 438 pinctrl_mikrobus_i2c: mikrobus1_i2c { 439 pinmux = <PIN_PA24__FLEXCOM1_IO0>, 440 <PIN_PA23__FLEXCOM1_IO1>; 441 bias-disable; 442 }; 443 444 pinctrl_flx4_default: flx4_uart_default { 445 pinmux = <PIN_PC28__FLEXCOM4_IO0>, 446 <PIN_PC29__FLEXCOM4_IO1>, 447 <PIN_PC30__FLEXCOM4_IO2>, 448 <PIN_PC31__FLEXCOM4_IO3>, 449 <PIN_PD0__FLEXCOM4_IO4>; 450 bias-disable; 451 }; 452 }; 453 454 can1: can@fc050000 { 455 pinctrl-names = "default"; 456 pinctrl-0 = <&pinctrl_can1_default>; 457 status = "okay"; 458 }; 459 }; 460 }; 461 462 gpio_keys { 463 compatible = "gpio-keys"; 464 465 pinctrl-names = "default"; 466 pinctrl-0 = <&pinctrl_key_gpio_default>; 467 468 pb4 { 469 label = "USER"; 470 gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>; 471 linux,code = <KEY_PROG1>; 472 wakeup-source; 473 }; 474 }; 475 476 leds { 477 compatible = "gpio-leds"; 478 pinctrl-names = "default"; 479 pinctrl-0 = <&pinctrl_led_gpio_default>; 480 status = "okay"; /* Conflict with pwm0. */ 481 482 red { 483 label = "red"; 484 gpios = <&pioA PIN_PA10 GPIO_ACTIVE_HIGH>; 485 }; 486 487 green { 488 label = "green"; 489 gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>; 490 }; 491 492 blue { 493 label = "blue"; 494 gpios = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>; 495 linux,default-trigger = "heartbeat"; 496 }; 497 }; 498 499 vddin_3v3: fixed-regulator-vddin_3v3 { 500 compatible = "regulator-fixed"; 501 502 regulator-name = "VDDIN_3V3"; 503 regulator-min-microvolt = <3300000>; 504 regulator-max-microvolt = <3300000>; 505 regulator-always-on; 506 regulator-boot-on; 507 status = "okay"; 508 }; 509 510 vddana: fixed-regulator-vddana { 511 compatible = "regulator-fixed"; 512 513 regulator-name = "VDDANA"; 514 regulator-min-microvolt = <3300000>; 515 regulator-max-microvolt = <3300000>; 516 regulator-always-on; 517 regulator-boot-on; 518 vin-supply = <&vddin_3v3>; 519 status = "okay"; 520 }; 521 522 advref: fixed-regulator-advref { 523 compatible = "regulator-fixed"; 524 525 regulator-name = "advref"; 526 regulator-min-microvolt = <3300000>; 527 regulator-max-microvolt = <3300000>; 528 regulator-always-on; 529 regulator-boot-on; 530 vin-supply = <&vddana>; 531 status = "okay"; 532 }; 533}; 534