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