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