1/* 2 * at91-sama5d27_som1_ek.dts - Device Tree file for SAMA5D27-SOM1-EK board 3 * 4 * Copyright (c) 2017, Microchip Technology Inc. 5 * 2016 Nicolas Ferre <nicolas.ferre@atmel.com> 6 * 2017 Cristian Birsan <cristian.birsan@microchip.com> 7 * 2017 Claudiu Beznea <claudiu.beznea@microchip.com> 8 * 9 * This file is dual-licensed: you can use it either under the terms 10 * of the GPL or the X11 license, at your option. Note that this dual 11 * licensing only applies to this file, and not this project as a 12 * whole. 13 * 14 * a) This file is free software; you can redistribute it and/or 15 * modify it under the terms of the GNU General Public License as 16 * published by the Free Software Foundation; either version 2 of the 17 * License, or (at your option) any later version. 18 * 19 * This file is distributed in the hope that it will be useful, 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * GNU General Public License for more details. 23 * 24 * Or, alternatively, 25 * 26 * b) Permission is hereby granted, free of charge, to any person 27 * obtaining a copy of this software and associated documentation 28 * files (the "Software"), to deal in the Software without 29 * restriction, including without limitation the rights to use, 30 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * sell copies of the Software, and to permit persons to whom the 32 * Software is furnished to do so, subject to the following 33 * conditions: 34 * 35 * The above copyright notice and this permission notice shall be 36 * included in all copies or substantial portions of the Software. 37 * 38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * OTHER DEALINGS IN THE SOFTWARE. 46 */ 47/dts-v1/; 48#include "at91-sama5d27_som1.dtsi" 49#include <dt-bindings/mfd/atmel-flexcom.h> 50#include <dt-bindings/gpio/gpio.h> 51 52/ { 53 model = "Atmel SAMA5D27 SOM1 EK"; 54 compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5"; 55 56 aliases { 57 serial0 = &uart1; /* DBGU */ 58 serial1 = &uart4; /* mikro BUS 1 */ 59 serial2 = &uart2; /* mikro BUS 2 */ 60 i2c1 = &i2c1; 61 i2c2 = &i2c2; 62 }; 63 64 chosen { 65 stdout-path = "serial0:115200n8"; 66 }; 67 68 ahb { 69 usb0: gadget@300000 { 70 atmel,vbus-gpio = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>; 71 pinctrl-names = "default"; 72 pinctrl-0 = <&pinctrl_usba_vbus>; 73 status = "okay"; 74 }; 75 76 usb1: ohci@400000 { 77 num-ports = <3>; 78 atmel,vbus-gpio = <0 /* &pioA PIN_PD20 GPIO_ACTIVE_HIGH */ 79 &pioA PIN_PA27 GPIO_ACTIVE_HIGH 80 0 81 >; 82 pinctrl-names = "default"; 83 pinctrl-0 = <&pinctrl_usb_default>; 84 status = "okay"; 85 }; 86 87 usb2: ehci@500000 { 88 status = "okay"; 89 }; 90 91 sdmmc0: sdio-host@a0000000 { 92 bus-width = <8>; 93 pinctrl-names = "default"; 94 pinctrl-0 = <&pinctrl_sdmmc0_default>; 95 status = "okay"; 96 }; 97 98 sdmmc1: sdio-host@b0000000 { 99 bus-width = <4>; 100 pinctrl-names = "default"; 101 pinctrl-0 = <&pinctrl_sdmmc1_default>; 102 status = "okay"; 103 }; 104 105 apb { 106 isc: isc@f0008000 { 107 pinctrl-names = "default"; 108 pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>; 109 status = "okay"; 110 }; 111 112 spi0: spi@f8000000 { 113 pinctrl-names = "default"; 114 pinctrl-0 = <&pinctrl_spi0_default>; 115 status = "okay"; 116 }; 117 118 macb0: ethernet@f8008000 { 119 status = "okay"; 120 }; 121 122 tcb0: timer@f800c000 { 123 timer0: timer@0 { 124 compatible = "atmel,tcb-timer"; 125 reg = <0>; 126 }; 127 128 timer1: timer@1 { 129 compatible = "atmel,tcb-timer"; 130 reg = <1>; 131 }; 132 }; 133 134 uart1: serial@f8020000 { 135 pinctrl-names = "default"; 136 pinctrl-0 = <&pinctrl_uart1_default>; 137 atmel,use-dma-rx; 138 atmel,use-dma-tx; 139 status = "okay"; 140 }; 141 142 uart2: serial@f8024000 { 143 pinctrl-names = "default"; 144 pinctrl-0 = <&pinctrl_mikrobus2_uart>; 145 atmel,use-dma-rx; 146 atmel,use-dma-tx; 147 status = "okay"; 148 }; 149 150 pwm0: pwm@f802c000 { 151 pinctrl-names = "default"; 152 pinctrl-0 = <&pinctrl_mikrobus1_pwm &pinctrl_mikrobus2_pwm>; 153 status = "disabled"; /* Conflict with leds. */ 154 }; 155 156 flx1: flexcom@f8038000 { 157 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; 158 status = "okay"; 159 160 i2c2: i2c@600 { 161 compatible = "atmel,sama5d2-i2c"; 162 reg = <0x600 0x200>; 163 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>; 164 dmas = <0>, <0>; 165 dma-names = "tx", "rx"; 166 #address-cells = <1>; 167 #size-cells = <0>; 168 clocks = <&flx1_clk>; 169 pinctrl-names = "default"; 170 pinctrl-0 = <&pinctrl_mikrobus_i2c>; 171 atmel,fifo-size = <16>; 172 status = "okay"; 173 }; 174 }; 175 176 shdwc@f8048010 { 177 atmel,shdwc-debouncer = <976>; 178 atmel,wakeup-rtc-timer; 179 180 input@0 { 181 reg = <0>; 182 atmel,wakeup-type = "low"; 183 }; 184 }; 185 186 watchdog@f8048040 { 187 status = "okay"; 188 }; 189 190 uart3: serial@fc008000 { 191 atmel,use-dma-rx; 192 atmel,use-dma-tx; 193 pinctrl-names = "default"; 194 pinctrl-0 = <&pinctrl_uart3_default>; 195 status = "disabled"; /* Conflict with isc. */ 196 }; 197 198 uart4: serial@fc00c000 { 199 atmel,use-dma-rx; 200 atmel,use-dma-tx; 201 pinctrl-names = "default"; 202 pinctrl-0 = <&pinctrl_mikrobus1_uart>; 203 status = "okay"; 204 }; 205 206 flx3: flexcom@fc014000 { 207 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 208 status = "disabled"; 209 210 uart7: serial@200 { 211 compatible = "atmel,at91sam9260-usart"; 212 reg = <0x200 0x200>; 213 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>; 214 clocks = <&flx3_clk>; 215 clock-names = "usart"; 216 pinctrl-names = "default"; 217 pinctrl-0 = <&pinctrl_flx3_default>; 218 atmel,fifo-size = <32>; 219 status = "disabled"; /* Conflict with isc. */ 220 }; 221 222 spi2: spi@400 { 223 compatible = "atmel,at91rm9200-spi"; 224 reg = <0x400 0x200>; 225 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>; 226 clocks = <&flx3_clk>; 227 clock-names = "spi_clk"; 228 pinctrl-names = "default"; 229 pinctrl-0 = <&pinctrl_flx3_default>; 230 atmel,fifo-size = <16>; 231 status = "disabled"; /* Conflict with isc. */ 232 }; 233 }; 234 235 flx4: flexcom@fc018000 { 236 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 237 status = "okay"; 238 239 uart6: serial@200 { 240 compatible = "atmel,at91sam9260-usart"; 241 reg = <0x200 0x200>; 242 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>; 243 clocks = <&flx4_clk>; 244 clock-names = "usart"; 245 pinctrl-names = "default"; 246 pinctrl-0 = <&pinctrl_flx4_default>; 247 atmel,fifo-size = <32>; 248 status = "disabled"; /* Conflict with spi3 and i2c3. */ 249 }; 250 251 spi3: spi@400 { 252 compatible = "atmel,at91rm9200-spi"; 253 reg = <0x400 0x200>; 254 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>; 255 clocks = <&flx4_clk>; 256 clock-names = "spi_clk"; 257 pinctrl-names = "default"; 258 pinctrl-0 = <&pinctrl_mikrobus_spi &pinctrl_mikrobus1_spi_cs &pinctrl_mikrobus2_spi_cs>; 259 atmel,fifo-size = <16>; 260 status = "okay"; /* Conflict with uart6 and i2c3. */ 261 }; 262 263 i2c3: i2c@600 { 264 compatible = "atmel,sama5d2-i2c"; 265 reg = <0x600 0x200>; 266 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>; 267 dmas = <0>, <0>; 268 dma-names = "tx", "rx"; 269 #address-cells = <1>; 270 #size-cells = <0>; 271 clocks = <&flx4_clk>; 272 pinctrl-names = "default"; 273 pinctrl-0 = <&pinctrl_flx4_default>; 274 atmel,fifo-size = <16>; 275 status = "disabled"; /* Conflict with uart6 and spi3. */ 276 }; 277 }; 278 279 i2c1: i2c@fc028000 { 280 dmas = <0>, <0>; 281 pinctrl-names = "default"; 282 pinctrl-0 = <&pinctrl_i2c1_default>; 283 status = "okay"; 284 }; 285 286 pinctrl@fc038000 { 287 288 pinctrl_can1_default: can1_default { 289 pinmux = <PIN_PC26__CANTX1>, 290 <PIN_PC27__CANRX1>; 291 bias-disable; 292 }; 293 294 pinctrl_flx3_default: flx3_default { 295 pinmux = <PIN_PC20__FLEXCOM3_IO0>, 296 <PIN_PC19__FLEXCOM3_IO1>, 297 <PIN_PC18__FLEXCOM3_IO2>, 298 <PIN_PC21__FLEXCOM3_IO3>, 299 <PIN_PC22__FLEXCOM3_IO4>; 300 bias-disable; 301 }; 302 303 pinctrl_i2c1_default: i2c1_default { 304 pinmux = <PIN_PD4__TWD1>, 305 <PIN_PD5__TWCK1>; 306 bias-disable; 307 }; 308 309 pinctrl_isc_base: isc_base { 310 pinmux = <PIN_PC21__ISC_PCK>, 311 <PIN_PC22__ISC_VSYNC>, 312 <PIN_PC23__ISC_HSYNC>, 313 <PIN_PC24__ISC_MCK>; 314 bias-disable; 315 }; 316 317 pinctrl_isc_data_8bit: isc_data_8bit { 318 pinmux = <PIN_PC20__ISC_D11>, 319 <PIN_PC19__ISC_D10>, 320 <PIN_PC18__ISC_D9>, 321 <PIN_PC17__ISC_D8>, 322 <PIN_PC16__ISC_D7>, 323 <PIN_PC15__ISC_D6>, 324 <PIN_PC14__ISC_D5>, 325 <PIN_PC13__ISC_D4>; 326 bias-disable; 327 }; 328 329 pinctrl_isc_data_9_10: isc_data_9_10 { 330 pinmux = <PIN_PC12__ISC_D3>, 331 <PIN_PC11__ISC_D2>; 332 bias-disable; 333 }; 334 335 pinctrl_isc_data_11_12: isc_data_11_12 { 336 pinmux = <PIN_PC10__ISC_D1>, 337 <PIN_PC9__ISC_D0>; 338 bias-disable; 339 }; 340 341 pinctrl_key_gpio_default: key_gpio_default { 342 pinmux = <PIN_PA29__GPIO>; 343 bias-pull-up; 344 }; 345 346 pinctrl_led_gpio_default: led_gpio_default { 347 pinmux = <PIN_PA10__GPIO>, 348 <PIN_PB1__GPIO>, 349 <PIN_PA31__GPIO>; 350 bias-pull-up; 351 }; 352 353 pinctrl_sdmmc0_default: sdmmc0_default { 354 cmd_data { 355 pinmux = <PIN_PA1__SDMMC0_CMD>, 356 <PIN_PA2__SDMMC0_DAT0>, 357 <PIN_PA3__SDMMC0_DAT1>, 358 <PIN_PA4__SDMMC0_DAT2>, 359 <PIN_PA5__SDMMC0_DAT3>, 360 <PIN_PA6__SDMMC0_DAT4>, 361 <PIN_PA7__SDMMC0_DAT5>, 362 <PIN_PA8__SDMMC0_DAT6>, 363 <PIN_PA9__SDMMC0_DAT7>; 364 bias-disable; 365 }; 366 367 ck_cd_vddsel { 368 pinmux = <PIN_PA0__SDMMC0_CK>, 369 <PIN_PA11__SDMMC0_VDDSEL>, 370 <PIN_PA13__SDMMC0_CD>; 371 bias-disable; 372 }; 373 }; 374 375 pinctrl_sdmmc1_default: sdmmc1_default { 376 cmd_data { 377 pinmux = <PIN_PA28__SDMMC1_CMD>, 378 <PIN_PA18__SDMMC1_DAT0>, 379 <PIN_PA19__SDMMC1_DAT1>, 380 <PIN_PA20__SDMMC1_DAT2>, 381 <PIN_PA21__SDMMC1_DAT3>; 382 bias-disable; 383 }; 384 385 conf-ck_cd { 386 pinmux = <PIN_PA22__SDMMC1_CK>, 387 <PIN_PA30__SDMMC1_CD>; 388 bias-disable; 389 }; 390 }; 391 392 pinctrl_spi0_default: spi0_default { 393 pinmux = <PIN_PA14__SPI0_SPCK>, 394 <PIN_PA15__SPI0_MOSI>, 395 <PIN_PA16__SPI0_MISO>, 396 <PIN_PA17__SPI0_NPCS0>; 397 bias-disable; 398 }; 399 400 pinctrl_uart1_default: uart1_default { 401 pinmux = <PIN_PD2__URXD1>, 402 <PIN_PD3__UTXD1>; 403 bias-disable; 404 }; 405 406 pinctrl_uart3_default: uart3_default { 407 pinmux = <PIN_PC12__URXD3>, 408 <PIN_PC13__UTXD3>; 409 bias-disable; 410 }; 411 412 pinctrl_usb_default: usb_default { 413 pinmux = <PIN_PA27__GPIO>, 414 <PIN_PD19__GPIO>; 415 bias-disable; 416 }; 417 418 pinctrl_usba_vbus: usba_vbus { 419 pinmux = <PIN_PD20__GPIO>; 420 bias-disable; 421 }; 422 423 pinctrl_mikrobus1_an: mikrobus1_an { 424 pinmux = <PIN_PD25__GPIO>; 425 bias-disable; 426 }; 427 428 pinctrl_mikrobus2_an: mikrobus2_an { 429 pinmux = <PIN_PD26__GPIO>; 430 bias-disable; 431 }; 432 433 pinctrl_mikrobus1_rst: mikrobus1_rst { 434 pinmux = <PIN_PB2__GPIO>; 435 bias-disable; 436 }; 437 438 pinctrl_mikrobus2_rst: mikrobus2_rst { 439 pinmux = <PIN_PA26__GPIO>; 440 bias-disable; 441 }; 442 443 pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs { 444 pinmux = <PIN_PD0__FLEXCOM4_IO4>; 445 bias-disable; 446 }; 447 448 pinctrl_mikrobus2_spi_cs: mikrobus2_spi_cs { 449 pinmux = <PIN_PC31__FLEXCOM4_IO3>; 450 bias-disable; 451 }; 452 453 pinctrl_mikrobus_spi: mikrobus_spi { 454 pinmux = <PIN_PC28__FLEXCOM4_IO0>, 455 <PIN_PC29__FLEXCOM4_IO1>, 456 <PIN_PC30__FLEXCOM4_IO2>; 457 bias-disable; 458 }; 459 460 pinctrl_mikrobus1_pwm: mikrobus1_pwm { 461 pinmux = <PIN_PB1__PWML1>; 462 bias-disable; 463 }; 464 465 pinctrl_mikrobus2_pwm: mikrobus2_pwm { 466 pinmux = <PIN_PA31__PWML0>; 467 bias-disable; 468 }; 469 470 pinctrl_mikrobus1_int: mikrobus1_int { 471 pinmux = <PIN_PB0__GPIO>; 472 bias-disable; 473 }; 474 475 pinctrl_mikrobus2_int: mikrobus2_int { 476 pinmux = <PIN_PA25__GPIO>; 477 bias-disable; 478 }; 479 480 pinctrl_mikrobus1_uart: mikrobus1_uart { 481 pinmux = <PIN_PB3__URXD4>, 482 <PIN_PB4__UTXD4>; 483 bias-disable; 484 }; 485 486 pinctrl_mikrobus2_uart: mikrobus2_uart { 487 pinmux = <PIN_PD23__URXD2>, 488 <PIN_PD24__UTXD2>; 489 bias-disable; 490 }; 491 492 pinctrl_mikrobus_i2c: mikrobus1_i2c { 493 pinmux = <PIN_PA24__FLEXCOM1_IO0>, 494 <PIN_PA23__FLEXCOM1_IO1>; 495 bias-disable; 496 }; 497 498 pinctrl_flx4_default: flx4_uart_default { 499 pinmux = <PIN_PC28__FLEXCOM4_IO0>, 500 <PIN_PC29__FLEXCOM4_IO1>, 501 <PIN_PC30__FLEXCOM4_IO2>, 502 <PIN_PC31__FLEXCOM4_IO3>, 503 <PIN_PD0__FLEXCOM4_IO4>; 504 bias-disable; 505 }; 506 }; 507 508 can1: can@fc050000 { 509 pinctrl-names = "default"; 510 pinctrl-0 = <&pinctrl_can1_default>; 511 status = "okay"; 512 }; 513 }; 514 }; 515 516 gpio_keys { 517 compatible = "gpio-keys"; 518 519 pinctrl-names = "default"; 520 pinctrl-0 = <&pinctrl_key_gpio_default>; 521 522 pb4 { 523 label = "USER"; 524 gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>; 525 linux,code = <0x104>; 526 wakeup-source; 527 }; 528 }; 529 530 leds { 531 compatible = "gpio-leds"; 532 pinctrl-names = "default"; 533 pinctrl-0 = <&pinctrl_led_gpio_default>; 534 status = "okay"; /* Conflict with pwm0. */ 535 536 red { 537 label = "red"; 538 gpios = <&pioA PIN_PA10 GPIO_ACTIVE_HIGH>; 539 }; 540 541 green { 542 label = "green"; 543 gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>; 544 }; 545 546 blue { 547 label = "blue"; 548 gpios = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>; 549 linux,default-trigger = "heartbeat"; 550 }; 551 }; 552}; 553