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 = &i2c3; 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 mmc-ddr-3_3v; 57 pinctrl-names = "default"; 58 pinctrl-0 = <&pinctrl_sdmmc0_default>; 59 status = "okay"; 60 }; 61 62 sdmmc1: sdio-host@b0000000 { 63 bus-width = <4>; 64 pinctrl-names = "default"; 65 pinctrl-0 = <&pinctrl_sdmmc1_default>; 66 status = "okay"; 67 }; 68 69 apb { 70 isc: isc@f0008000 { 71 pinctrl-names = "default"; 72 pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>; 73 status = "okay"; 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 atmel,shdwc-debouncer = <976>; 141 atmel,wakeup-rtc-timer; 142 143 input@0 { 144 reg = <0>; 145 atmel,wakeup-type = "low"; 146 }; 147 }; 148 149 watchdog@f8048040 { 150 status = "okay"; 151 }; 152 153 uart3: serial@fc008000 { 154 atmel,use-dma-rx; 155 atmel,use-dma-tx; 156 pinctrl-names = "default"; 157 pinctrl-0 = <&pinctrl_uart3_default>; 158 status = "disabled"; /* Conflict with isc. */ 159 }; 160 161 uart4: serial@fc00c000 { 162 atmel,use-dma-rx; 163 atmel,use-dma-tx; 164 pinctrl-names = "default"; 165 pinctrl-0 = <&pinctrl_mikrobus1_uart>; 166 status = "okay"; 167 }; 168 169 flx3: flexcom@fc014000 { 170 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 171 status = "disabled"; 172 173 uart8: serial@200 { 174 dmas = <0>, <0>; 175 pinctrl-names = "default"; 176 pinctrl-0 = <&pinctrl_flx3_default>; 177 status = "disabled"; /* Conflict with isc. */ 178 }; 179 180 spi5: spi@400 { 181 dmas = <0>, <0>; 182 pinctrl-names = "default"; 183 pinctrl-0 = <&pinctrl_flx3_default>; 184 status = "disabled"; /* Conflict with isc. */ 185 }; 186 }; 187 188 flx4: flexcom@fc018000 { 189 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>; 190 status = "okay"; 191 192 uart9: serial@200 { 193 dmas = <0>, <0>; 194 pinctrl-names = "default"; 195 pinctrl-0 = <&pinctrl_flx4_default>; 196 status = "disabled"; /* Conflict with spi6 and i2c6. */ 197 }; 198 199 spi6: spi@400 { 200 dmas = <0>, <0>; 201 pinctrl-names = "default"; 202 pinctrl-0 = <&pinctrl_mikrobus_spi &pinctrl_mikrobus1_spi_cs &pinctrl_mikrobus2_spi_cs>; 203 status = "okay"; /* Conflict with uart5 and i2c6. */ 204 }; 205 206 i2c6: i2c@600 { 207 dmas = <0>, <0>; 208 pinctrl-names = "default"; 209 pinctrl-0 = <&pinctrl_flx4_default>; 210 status = "disabled"; /* Conflict with uart5 and spi6. */ 211 }; 212 }; 213 214 i2c1: i2c@fc028000 { 215 dmas = <0>, <0>; 216 i2c-analog-filter; 217 i2c-digital-filter; 218 i2c-digital-filter-width-ns = <35>; 219 pinctrl-names = "default"; 220 pinctrl-0 = <&pinctrl_i2c1_default>; 221 status = "okay"; 222 }; 223 224 adc: adc@fc030000 { 225 vddana-supply = <&vddana>; 226 vref-supply = <&advref>; 227 228 status = "disabled"; 229 }; 230 231 pinctrl@fc038000 { 232 233 pinctrl_can1_default: can1_default { 234 pinmux = <PIN_PC26__CANTX1>, 235 <PIN_PC27__CANRX1>; 236 bias-disable; 237 }; 238 239 pinctrl_flx3_default: flx3_default { 240 pinmux = <PIN_PC20__FLEXCOM3_IO0>, 241 <PIN_PC19__FLEXCOM3_IO1>, 242 <PIN_PC18__FLEXCOM3_IO2>, 243 <PIN_PC21__FLEXCOM3_IO3>, 244 <PIN_PC22__FLEXCOM3_IO4>; 245 bias-disable; 246 }; 247 248 pinctrl_i2c1_default: i2c1_default { 249 pinmux = <PIN_PD4__TWD1>, 250 <PIN_PD5__TWCK1>; 251 bias-disable; 252 }; 253 254 pinctrl_isc_base: isc_base { 255 pinmux = <PIN_PC21__ISC_PCK>, 256 <PIN_PC22__ISC_VSYNC>, 257 <PIN_PC23__ISC_HSYNC>, 258 <PIN_PC24__ISC_MCK>; 259 bias-disable; 260 }; 261 262 pinctrl_isc_data_8bit: isc_data_8bit { 263 pinmux = <PIN_PC20__ISC_D11>, 264 <PIN_PC19__ISC_D10>, 265 <PIN_PC18__ISC_D9>, 266 <PIN_PC17__ISC_D8>, 267 <PIN_PC16__ISC_D7>, 268 <PIN_PC15__ISC_D6>, 269 <PIN_PC14__ISC_D5>, 270 <PIN_PC13__ISC_D4>; 271 bias-disable; 272 }; 273 274 pinctrl_isc_data_9_10: isc_data_9_10 { 275 pinmux = <PIN_PC12__ISC_D3>, 276 <PIN_PC11__ISC_D2>; 277 bias-disable; 278 }; 279 280 pinctrl_isc_data_11_12: isc_data_11_12 { 281 pinmux = <PIN_PC10__ISC_D1>, 282 <PIN_PC9__ISC_D0>; 283 bias-disable; 284 }; 285 286 pinctrl_key_gpio_default: key_gpio_default { 287 pinmux = <PIN_PA29__GPIO>; 288 bias-pull-up; 289 }; 290 291 pinctrl_led_gpio_default: led_gpio_default { 292 pinmux = <PIN_PA10__GPIO>, 293 <PIN_PB1__GPIO>, 294 <PIN_PA31__GPIO>; 295 bias-pull-up; 296 }; 297 298 pinctrl_sdmmc0_default: sdmmc0_default { 299 cmd_data { 300 pinmux = <PIN_PA1__SDMMC0_CMD>, 301 <PIN_PA2__SDMMC0_DAT0>, 302 <PIN_PA3__SDMMC0_DAT1>, 303 <PIN_PA4__SDMMC0_DAT2>, 304 <PIN_PA5__SDMMC0_DAT3>, 305 <PIN_PA6__SDMMC0_DAT4>, 306 <PIN_PA7__SDMMC0_DAT5>, 307 <PIN_PA8__SDMMC0_DAT6>, 308 <PIN_PA9__SDMMC0_DAT7>; 309 bias-disable; 310 }; 311 312 ck_cd_vddsel { 313 pinmux = <PIN_PA0__SDMMC0_CK>, 314 <PIN_PA11__SDMMC0_VDDSEL>, 315 <PIN_PA13__SDMMC0_CD>; 316 bias-disable; 317 }; 318 }; 319 320 pinctrl_sdmmc1_default: sdmmc1_default { 321 cmd_data { 322 pinmux = <PIN_PA28__SDMMC1_CMD>, 323 <PIN_PA18__SDMMC1_DAT0>, 324 <PIN_PA19__SDMMC1_DAT1>, 325 <PIN_PA20__SDMMC1_DAT2>, 326 <PIN_PA21__SDMMC1_DAT3>; 327 bias-disable; 328 }; 329 330 conf-ck_cd { 331 pinmux = <PIN_PA22__SDMMC1_CK>, 332 <PIN_PA30__SDMMC1_CD>; 333 bias-disable; 334 }; 335 }; 336 337 pinctrl_spi0_default: spi0_default { 338 pinmux = <PIN_PA14__SPI0_SPCK>, 339 <PIN_PA15__SPI0_MOSI>, 340 <PIN_PA16__SPI0_MISO>, 341 <PIN_PA17__SPI0_NPCS0>; 342 bias-disable; 343 }; 344 345 pinctrl_uart1_default: uart1_default { 346 pinmux = <PIN_PD2__URXD1>, 347 <PIN_PD3__UTXD1>; 348 bias-disable; 349 }; 350 351 pinctrl_uart3_default: uart3_default { 352 pinmux = <PIN_PC12__URXD3>, 353 <PIN_PC13__UTXD3>; 354 bias-disable; 355 }; 356 357 pinctrl_usb_default: usb_default { 358 pinmux = <PIN_PA27__GPIO>, 359 <PIN_PD19__GPIO>; 360 bias-disable; 361 }; 362 363 pinctrl_usba_vbus: usba_vbus { 364 pinmux = <PIN_PD20__GPIO>; 365 bias-disable; 366 }; 367 368 pinctrl_mikrobus1_an: mikrobus1_an { 369 pinmux = <PIN_PD25__GPIO>; 370 bias-disable; 371 }; 372 373 pinctrl_mikrobus2_an: mikrobus2_an { 374 pinmux = <PIN_PD26__GPIO>; 375 bias-disable; 376 }; 377 378 pinctrl_mikrobus1_rst: mikrobus1_rst { 379 pinmux = <PIN_PB2__GPIO>; 380 bias-disable; 381 }; 382 383 pinctrl_mikrobus2_rst: mikrobus2_rst { 384 pinmux = <PIN_PA26__GPIO>; 385 bias-disable; 386 }; 387 388 pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs { 389 pinmux = <PIN_PD0__FLEXCOM4_IO4>; 390 bias-disable; 391 }; 392 393 pinctrl_mikrobus2_spi_cs: mikrobus2_spi_cs { 394 pinmux = <PIN_PC31__FLEXCOM4_IO3>; 395 bias-disable; 396 }; 397 398 pinctrl_mikrobus_spi: mikrobus_spi { 399 pinmux = <PIN_PC28__FLEXCOM4_IO0>, 400 <PIN_PC29__FLEXCOM4_IO1>, 401 <PIN_PC30__FLEXCOM4_IO2>; 402 bias-disable; 403 }; 404 405 pinctrl_mikrobus1_pwm: mikrobus1_pwm { 406 pinmux = <PIN_PB1__PWML1>; 407 bias-disable; 408 }; 409 410 pinctrl_mikrobus2_pwm: mikrobus2_pwm { 411 pinmux = <PIN_PA31__PWML0>; 412 bias-disable; 413 }; 414 415 pinctrl_mikrobus1_int: mikrobus1_int { 416 pinmux = <PIN_PB0__GPIO>; 417 bias-disable; 418 }; 419 420 pinctrl_mikrobus2_int: mikrobus2_int { 421 pinmux = <PIN_PA25__GPIO>; 422 bias-disable; 423 }; 424 425 pinctrl_mikrobus1_uart: mikrobus1_uart { 426 pinmux = <PIN_PB3__URXD4>, 427 <PIN_PB4__UTXD4>; 428 bias-disable; 429 }; 430 431 pinctrl_mikrobus2_uart: mikrobus2_uart { 432 pinmux = <PIN_PD23__URXD2>, 433 <PIN_PD24__UTXD2>; 434 bias-disable; 435 }; 436 437 pinctrl_mikrobus_i2c: mikrobus1_i2c { 438 pinmux = <PIN_PA24__FLEXCOM1_IO0>, 439 <PIN_PA23__FLEXCOM1_IO1>; 440 bias-disable; 441 }; 442 443 pinctrl_flx4_default: flx4_uart_default { 444 pinmux = <PIN_PC28__FLEXCOM4_IO0>, 445 <PIN_PC29__FLEXCOM4_IO1>, 446 <PIN_PC30__FLEXCOM4_IO2>, 447 <PIN_PC31__FLEXCOM4_IO3>, 448 <PIN_PD0__FLEXCOM4_IO4>; 449 bias-disable; 450 }; 451 }; 452 453 can1: can@fc050000 { 454 pinctrl-names = "default"; 455 pinctrl-0 = <&pinctrl_can1_default>; 456 status = "okay"; 457 }; 458 }; 459 }; 460 461 gpio_keys { 462 compatible = "gpio-keys"; 463 464 pinctrl-names = "default"; 465 pinctrl-0 = <&pinctrl_key_gpio_default>; 466 467 pb4 { 468 label = "USER"; 469 gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>; 470 linux,code = <0x104>; 471 wakeup-source; 472 }; 473 }; 474 475 leds { 476 compatible = "gpio-leds"; 477 pinctrl-names = "default"; 478 pinctrl-0 = <&pinctrl_led_gpio_default>; 479 status = "okay"; /* Conflict with pwm0. */ 480 481 red { 482 label = "red"; 483 gpios = <&pioA PIN_PA10 GPIO_ACTIVE_HIGH>; 484 }; 485 486 green { 487 label = "green"; 488 gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>; 489 }; 490 491 blue { 492 label = "blue"; 493 gpios = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>; 494 linux,default-trigger = "heartbeat"; 495 }; 496 }; 497 498 vddin_3v3: fixed-regulator-vddin_3v3 { 499 compatible = "regulator-fixed"; 500 501 regulator-name = "VDDIN_3V3"; 502 regulator-min-microvolt = <3300000>; 503 regulator-max-microvolt = <3300000>; 504 regulator-always-on; 505 regulator-boot-on; 506 status = "okay"; 507 }; 508 509 vddana: fixed-regulator-vddana { 510 compatible = "regulator-fixed"; 511 512 regulator-name = "VDDANA"; 513 regulator-min-microvolt = <3300000>; 514 regulator-max-microvolt = <3300000>; 515 regulator-always-on; 516 regulator-boot-on; 517 vin-supply = <&vddin_3v3>; 518 status = "okay"; 519 }; 520 521 advref: fixed-regulator-advref { 522 compatible = "regulator-fixed"; 523 524 regulator-name = "advref"; 525 regulator-min-microvolt = <3300000>; 526 regulator-max-microvolt = <3300000>; 527 regulator-always-on; 528 regulator-boot-on; 529 vin-supply = <&vddana>; 530 status = "okay"; 531 }; 532}; 533