1/* 2 * Copyright (c) 2017 Piotr Mienkowski 3 * Copyright (c) 2017 Justin Watson 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8#include <arm/armv7-m.dtsi> 9#include <dt-bindings/i2c/i2c.h> 10#include <dt-bindings/gpio/gpio.h> 11 12#include "same70-pinctrl.dtsi" 13 14/ { 15 aliases { 16 watchdog0 = &wdt; 17 }; 18 19 chosen { 20 zephyr,flash-controller = &eefc; 21 }; 22 23 chosen { 24 zephyr,entropy = &trng; 25 }; 26 27 cpus { 28 #address-cells = <1>; 29 #size-cells = <0>; 30 31 cpu0: cpu@0 { 32 device_type = "cpu"; 33 compatible = "arm,cortex-m7"; 34 reg = <0>; 35 #address-cells = <1>; 36 #size-cells = <1>; 37 38 mpu: mpu@e000ed90 { 39 compatible = "arm,armv7m-mpu"; 40 reg = <0xe000ed90 0x40>; 41 arm,num-mpu-regions = <16>; 42 }; 43 }; 44 }; 45 46 sram0: memory@20400000 { 47 compatible = "mmio-sram"; 48 }; 49 50 soc { 51 eefc: flash-controller@400e0c00 { 52 compatible = "atmel,sam-flash-controller"; 53 label = "FLASH_CTRL"; 54 reg = <0x400e0c00 0x200>; 55 interrupts = <6 0>; 56 peripheral-id = <6>; 57 58 #address-cells = <1>; 59 #size-cells = <1>; 60 61 flash0: flash@400000 { 62 compatible = "soc-nv-flash"; 63 label = "FLASH_E70"; 64 65 write-block-size = <16>; 66 erase-block-size = <8192>; 67 }; 68 69 }; 70 71 wdt: watchdog@400e1850 { 72 compatible = "atmel,sam-watchdog"; 73 reg = <0x400e1850 0xc>; 74 interrupts = <4 0>; 75 peripheral-id = <4>; 76 label = "WATCHDOG_0"; 77 status = "disabled"; 78 }; 79 80 twihs0: i2c@40018000 { 81 compatible = "atmel,sam-i2c-twihs"; 82 clock-frequency = <I2C_BITRATE_STANDARD>; 83 #address-cells = <1>; 84 #size-cells = <0>; 85 reg = <0x40018000 0x12B>; 86 interrupts = <19 0>; 87 peripheral-id = <19>; 88 label = "I2C_0"; 89 status = "disabled"; 90 pinctrl-0 = <&pa4a_twihs0_twck0 &pa3a_twihs0_twd0>; 91 }; 92 93 twihs1: i2c@4001c000 { 94 compatible = "atmel,sam-i2c-twihs"; 95 clock-frequency = <I2C_BITRATE_STANDARD>; 96 #address-cells = <1>; 97 #size-cells = <0>; 98 reg = <0x4001c000 0x12B>; 99 interrupts = <20 0>; 100 peripheral-id = <20>; 101 label = "I2C_1"; 102 status = "disabled"; 103 pinctrl-0 = <&pb5a_twihs1_twck1 &pb4a_twihs1_twd1>; 104 }; 105 106 twihs2: i2c@40060000 { 107 compatible = "atmel,sam-i2c-twihs"; 108 clock-frequency = <I2C_BITRATE_STANDARD>; 109 #address-cells = <1>; 110 #size-cells = <0>; 111 reg = <0x40060000 0x12B>; 112 interrupts = <41 0>; 113 peripheral-id = <41>; 114 label = "I2C_2"; 115 status = "disabled"; 116 pinctrl-0 = <&pd28c_twihs2_twck2 &pd27c_twihs2_twd2>; 117 }; 118 119 spi0: spi@40008000 { 120 compatible = "atmel,sam-spi"; 121 #address-cells = <1>; 122 #size-cells = <0>; 123 reg = <0x40008000 0x4000>; 124 interrupts = <21 0>; 125 peripheral-id = <21>; 126 label = "SPI_0"; 127 status = "disabled"; 128 pinctrl-0 = <&pd20b_spi0_miso &pd21b_spi0_mosi &pd22b_spi0_spck>; 129 }; 130 131 spi1: spi@40058000 { 132 compatible = "atmel,sam-spi"; 133 #address-cells = <1>; 134 #size-cells = <0>; 135 reg = <0x40058000 0x4000>; 136 interrupts = <42 0>; 137 peripheral-id = <42>; 138 label = "SPI_1"; 139 status = "disabled"; 140 pinctrl-0 = <&pc26c_spi1_miso &pc27c_spi1_mosi &pc24c_spi1_spck>; 141 }; 142 143 uart0: uart@400e0800 { 144 compatible = "atmel,sam-uart"; 145 reg = <0x400e0800 0x100>; 146 interrupts = <7 1>; 147 peripheral-id = <7>; 148 status = "disabled"; 149 label = "UART_0"; 150 pinctrl-0 = <&pa9a_uart0_urxd0 &pa10a_uart0_utxd0>; 151 }; 152 153 uart1: uart@400e0a00 { 154 compatible = "atmel,sam-uart"; 155 reg = <0x400e0a00 0x100>; 156 interrupts = <8 1>; 157 peripheral-id = <8>; 158 status = "disabled"; 159 label = "UART_1"; 160 }; 161 162 uart2: uart@400e1a00 { 163 compatible = "atmel,sam-uart"; 164 reg = <0x400e1a00 0x100>; 165 interrupts = <44 1>; 166 peripheral-id = <44>; 167 status = "disabled"; 168 label = "UART_2"; 169 }; 170 171 uart3: uart@400e1c00 { 172 compatible = "atmel,sam-uart"; 173 reg = <0x400e1c00 0x100>; 174 interrupts = <45 1>; 175 peripheral-id = <45>; 176 status = "disabled"; 177 label = "UART_3"; 178 }; 179 180 uart4: uart@400e1e00 { 181 compatible = "atmel,sam-uart"; 182 reg = <0x400e1e00 0x100>; 183 interrupts = <46 1>; 184 peripheral-id = <46>; 185 status = "disabled"; 186 label = "UART_4"; 187 }; 188 189 usart0: usart@40024000 { 190 compatible = "atmel,sam-usart"; 191 reg = <0x40024000 0x100>; 192 interrupts = <13 0>; 193 peripheral-id = <13>; 194 status = "disabled"; 195 label = "USART_0"; 196 pinctrl-0 = <&pb0c_usart0_rxd0 &pb1c_usart0_txd0>; 197 }; 198 199 usart1: usart@40028000 { 200 compatible = "atmel,sam-usart"; 201 reg = <0x40028000 0x100>; 202 interrupts = <14 0>; 203 peripheral-id = <14>; 204 status = "disabled"; 205 label = "USART_1"; 206 pinctrl-0 = <&pa21a_usart1_rxd1 &pb4d_usart1_txd1>; 207 }; 208 209 usart2: usart@4002c000 { 210 compatible = "atmel,sam-usart"; 211 reg = <0x4002c000 0x100>; 212 interrupts = <15 0>; 213 peripheral-id = <15>; 214 status = "disabled"; 215 label = "USART_2"; 216 pinctrl-0 = <&pd15b_usart2_rxd2 &pd16b_usart2_txd2>; 217 }; 218 219 afec0: adc@4003c000 { 220 compatible = "atmel,sam-afec"; 221 reg = <0x4003c000 0x100>; 222 interrupts = <29 0>; 223 peripheral-id = <29>; 224 status = "disabled"; 225 label = "ADC_0"; 226 #io-channel-cells = <1>; 227 pinctrl-0 = <&pa8b_afec0_adtrg>; 228 }; 229 230 afec1: adc@40064000 { 231 compatible = "atmel,sam-afec"; 232 reg = <0x40064000 0x100>; 233 interrupts = <40 0>; 234 peripheral-id = <40>; 235 status = "disabled"; 236 label = "ADC_1"; 237 #io-channel-cells = <1>; 238 pinctrl-0 = <&pd9c_afec1_adtrg>; 239 }; 240 241 dacc: dacc@40040000 { 242 compatible = "atmel,sam-dac"; 243 reg = <0x40040000 0x100>; 244 interrupts = <30 0>; 245 peripheral-id = <30>; 246 status = "disabled"; 247 label = "DACC"; 248 #io-channel-cells = <1>; 249 }; 250 251 pinctrl@400e0e00 { 252 compatible = "atmel,sam-pinctrl"; 253 #address-cells = <1>; 254 #size-cells = <1>; 255 ranges = <0x400e0e00 0x400e0e00 0xa00>; 256 257 pioa: gpio@400e0e00 { 258 compatible = "atmel,sam-gpio"; 259 reg = <0x400e0e00 0x190>; 260 interrupts = <10 1>; 261 peripheral-id = <10>; 262 label = "PORTA"; 263 gpio-controller; 264 #gpio-cells = <2>; 265 #atmel,pin-cells = <2>; 266 }; 267 268 piob: gpio@400e1000 { 269 compatible = "atmel,sam-gpio"; 270 reg = <0x400e1000 0x190>; 271 interrupts = <11 1>; 272 peripheral-id = <11>; 273 label = "PORTB"; 274 gpio-controller; 275 #gpio-cells = <2>; 276 #atmel,pin-cells = <2>; 277 }; 278 279 pioc: gpio@400e1200 { 280 compatible = "atmel,sam-gpio"; 281 reg = <0x400e1200 0x190>; 282 interrupts = <12 1>; 283 peripheral-id = <12>; 284 label = "PORTC"; 285 gpio-controller; 286 #gpio-cells = <2>; 287 #atmel,pin-cells = <2>; 288 }; 289 290 piod: gpio@400e1400 { 291 compatible = "atmel,sam-gpio"; 292 reg = <0x400e1400 0x190>; 293 interrupts = <16 1>; 294 peripheral-id = <16>; 295 label = "PORTD"; 296 gpio-controller; 297 #gpio-cells = <2>; 298 #atmel,pin-cells = <2>; 299 }; 300 301 pioe: gpio@400e1600 { 302 compatible = "atmel,sam-gpio"; 303 reg = <0x400e1600 0x190>; 304 interrupts = <17 1>; 305 peripheral-id = <17>; 306 label = "PORTE"; 307 gpio-controller; 308 #gpio-cells = <2>; 309 #atmel,pin-cells = <2>; 310 }; 311 }; 312 313 pwm0: pwm0@40020000 { 314 compatible = "atmel,sam-pwm"; 315 reg = <0x40020000 0x4000>; 316 interrupts = <31 0>; 317 peripheral-id = <31>; 318 status = "disabled"; 319 label = "PWM_0"; 320 prescaler = <10>; 321 divider = <1>; 322 #pwm-cells = <2>; 323 }; 324 325 pwm1: pwm1@4005c000 { 326 compatible = "atmel,sam-pwm"; 327 reg = <0x4005c000 0x4000>; 328 interrupts = <60 0>; 329 peripheral-id = <60>; 330 status = "disabled"; 331 label = "PWM_1"; 332 prescaler = <10>; 333 divider = <1>; 334 #pwm-cells = <2>; 335 }; 336 337 usbhs: usbd@40038000 { 338 compatible = "atmel,sam-usbhs"; 339 #address-cells = <1>; 340 #size-cells = <0>; 341 reg = <0x40038000 0x4000>; 342 interrupts = <34 0>; 343 interrupt-names = "usbhs"; 344 maximum-speed = "full-speed"; 345 num-bidir-endpoints = <10>; 346 peripheral-id = <34>; 347 status = "disabled"; 348 label = "USBHS"; 349 }; 350 351 gmac: ethernet@40050000 { 352 compatible = "atmel,sam-gmac"; 353 reg = <0x40050000 0x4000>; 354 peripheral-id = <39>; 355 interrupts = <39 0>, <66 0>, <67 0>; 356 interrupt-names = "gmac", "q1", "q2"; 357 num-queues = <3>; 358 local-mac-address = [00 00 00 00 00 00]; 359 label = "GMAC"; 360 status = "disabled"; 361 /* Default to RMII config */ 362 pinctrl-0 = <&pd0a_gmac_gtxck &pd1a_gmac_gtxen 363 &pd2a_gmac_gtx0 &pd3a_gmac_gtx1 364 &pd4a_gmac_grxdv &pd5a_gmac_grx0 365 &pd6a_gmac_grx1 &pd7a_gmac_grxer>; 366 367 mdio: mdio { 368 compatible = "atmel,sam-mdio"; 369 label = "MDIO"; 370 status = "disabled"; 371 pinctrl-0 = <&pd8a_gmac_gmdc &pd9a_gmac_gmdio>; 372 }; 373 }; 374 375 tc0: tc@4000c000 { 376 compatible = "atmel,sam-tc"; 377 reg = <0x4000c000 0x100>; 378 interrupts = <23 0 379 24 0 380 25 0>; 381 peripheral-id = <23 24 25>; 382 status = "disabled"; 383 label = "TC0"; 384 pinctrl-0 = <>; 385 }; 386 387 tc1: tc@40010000 { 388 compatible = "atmel,sam-tc"; 389 reg = <0x40010000 0x100>; 390 interrupts = <26 0 391 27 0 392 28 0>; 393 peripheral-id = <26 27 28>; 394 status = "disabled"; 395 label = "TC1"; 396 pinctrl-0 = <>; 397 }; 398 399 tc2: tc@40014000 { 400 compatible = "atmel,sam-tc"; 401 reg = <0x40014000 0x100>; 402 interrupts = <47 0 403 48 0 404 49 0>; 405 peripheral-id = <47 48 49>; 406 status = "disabled"; 407 label = "TC2"; 408 pinctrl-0 = <>; 409 }; 410 411 tc3: tc@40054000 { 412 compatible = "atmel,sam-tc"; 413 reg = <0x40054000 0x100>; 414 interrupts = <50 0 415 51 0 416 52 0>; 417 peripheral-id = <50 51 52>; 418 status = "disabled"; 419 label = "TC3"; 420 pinctrl-0 = <>; 421 }; 422 423 trng: random@40070000 { 424 compatible = "atmel,sam-trng"; 425 reg = <0x40070000 0x4000>; 426 interrupts = <57 0>; 427 peripheral-id = <57>; 428 status = "okay"; 429 label = "TRNG"; 430 }; 431 432 xdmac: dma-controller@40078000 { 433 compatible = "atmel,sam-xdmac"; 434 reg = <0x40078000 0x400>; 435 interrupts = <58 0>; 436 peripheral-id = <58>; 437 label = "DMA_0"; 438 #dma-cells = <2>; 439 }; 440 441 ssc: ssc@40004000 { 442 compatible = "atmel,sam-ssc"; 443 reg = <0x40004000 0x400>; 444 interrupts = <22 0>; 445 peripheral-id = <22>; 446 label = "SSC_0"; 447 status = "disabled"; 448 }; 449 }; 450}; 451 452&nvic { 453 arm,num-irq-priority-bits = <3>; 454}; 455