| /* |
| * Copyright (c) 2017 Piotr Mienkowski |
| * Copyright (c) 2017 Justin Watson |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <arm/armv7-m.dtsi> |
| #include <zephyr/dt-bindings/adc/adc.h> |
| #include <zephyr/dt-bindings/i2c/i2c.h> |
| #include <zephyr/dt-bindings/gpio/gpio.h> |
| #include <zephyr/dt-bindings/pwm/pwm.h> |
| #include <zephyr/dt-bindings/clock/atmel_sam_pmc.h> |
| |
| / { |
| aliases { |
| watchdog0 = &wdt; |
| }; |
| |
| chosen { |
| zephyr,flash-controller = &eefc; |
| }; |
| |
| chosen { |
| zephyr,entropy = &trng; |
| }; |
| |
| cpus { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| cpu0: cpu@0 { |
| device_type = "cpu"; |
| compatible = "arm,cortex-m7"; |
| reg = <0>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| mpu: mpu@e000ed90 { |
| compatible = "arm,armv7m-mpu"; |
| reg = <0xe000ed90 0x40>; |
| arm,num-mpu-regions = <16>; |
| }; |
| }; |
| }; |
| |
| sram0: memory@20400000 { |
| compatible = "mmio-sram"; |
| }; |
| |
| soc { |
| pmc: pmc@400e0600 { |
| compatible = "atmel,sam-pmc"; |
| reg = <0x400e0600 0x200>; |
| interrupts = <5 0>; |
| #clock-cells = <2>; |
| status = "okay"; |
| }; |
| |
| eefc: flash-controller@400e0c00 { |
| compatible = "atmel,sam-flash-controller"; |
| reg = <0x400e0c00 0x200>; |
| interrupts = <6 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 6>; |
| |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| flash0: flash@400000 { |
| compatible = "soc-nv-flash"; |
| |
| write-block-size = <16>; |
| erase-block-size = <8192>; |
| }; |
| |
| }; |
| |
| wdt: watchdog@400e1850 { |
| compatible = "atmel,sam-watchdog"; |
| reg = <0x400e1850 0xc>; |
| interrupts = <4 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 4>; |
| status = "disabled"; |
| }; |
| |
| twihs0: i2c@40018000 { |
| compatible = "atmel,sam-i2c-twihs"; |
| clock-frequency = <I2C_BITRATE_STANDARD>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x40018000 0x12B>; |
| interrupts = <19 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 19>; |
| status = "disabled"; |
| }; |
| |
| twihs1: i2c@4001c000 { |
| compatible = "atmel,sam-i2c-twihs"; |
| clock-frequency = <I2C_BITRATE_STANDARD>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x4001c000 0x12B>; |
| interrupts = <20 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 20>; |
| status = "disabled"; |
| }; |
| |
| twihs2: i2c@40060000 { |
| compatible = "atmel,sam-i2c-twihs"; |
| clock-frequency = <I2C_BITRATE_STANDARD>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x40060000 0x12B>; |
| interrupts = <41 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 41>; |
| status = "disabled"; |
| }; |
| |
| spi0: spi@40008000 { |
| compatible = "atmel,sam-spi"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x40008000 0x4000>; |
| interrupts = <21 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 21>; |
| status = "disabled"; |
| }; |
| |
| spi1: spi@40058000 { |
| compatible = "atmel,sam-spi"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x40058000 0x4000>; |
| interrupts = <42 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 42>; |
| status = "disabled"; |
| }; |
| |
| uart0: uart@400e0800 { |
| compatible = "atmel,sam-uart"; |
| reg = <0x400e0800 0x100>; |
| interrupts = <7 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 7>; |
| status = "disabled"; |
| }; |
| |
| uart1: uart@400e0a00 { |
| compatible = "atmel,sam-uart"; |
| reg = <0x400e0a00 0x100>; |
| interrupts = <8 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 8>; |
| status = "disabled"; |
| }; |
| |
| uart2: uart@400e1a00 { |
| compatible = "atmel,sam-uart"; |
| reg = <0x400e1a00 0x100>; |
| interrupts = <44 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 44>; |
| status = "disabled"; |
| }; |
| |
| uart3: uart@400e1c00 { |
| compatible = "atmel,sam-uart"; |
| reg = <0x400e1c00 0x100>; |
| interrupts = <45 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 45>; |
| status = "disabled"; |
| }; |
| |
| uart4: uart@400e1e00 { |
| compatible = "atmel,sam-uart"; |
| reg = <0x400e1e00 0x100>; |
| interrupts = <46 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 46>; |
| status = "disabled"; |
| }; |
| |
| usart0: usart@40024000 { |
| compatible = "atmel,sam-usart"; |
| reg = <0x40024000 0x100>; |
| interrupts = <13 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 13>; |
| status = "disabled"; |
| }; |
| |
| usart1: usart@40028000 { |
| compatible = "atmel,sam-usart"; |
| reg = <0x40028000 0x100>; |
| interrupts = <14 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 14>; |
| status = "disabled"; |
| }; |
| |
| usart2: usart@4002c000 { |
| compatible = "atmel,sam-usart"; |
| reg = <0x4002c000 0x100>; |
| interrupts = <15 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 15>; |
| status = "disabled"; |
| }; |
| |
| afec0: adc@4003c000 { |
| compatible = "atmel,sam-afec"; |
| reg = <0x4003c000 0x100>; |
| interrupts = <29 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 29>; |
| status = "disabled"; |
| #io-channel-cells = <1>; |
| }; |
| |
| afec1: adc@40064000 { |
| compatible = "atmel,sam-afec"; |
| reg = <0x40064000 0x100>; |
| interrupts = <40 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 40>; |
| status = "disabled"; |
| #io-channel-cells = <1>; |
| }; |
| |
| dacc: dacc@40040000 { |
| compatible = "atmel,sam-dac"; |
| reg = <0x40040000 0x100>; |
| interrupts = <30 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 30>; |
| status = "disabled"; |
| #io-channel-cells = <1>; |
| }; |
| |
| pinctrl: pinctrl@400e0e00 { |
| compatible = "atmel,sam-pinctrl"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| ranges = <0x400e0e00 0x400e0e00 0xa00>; |
| |
| pioa: gpio@400e0e00 { |
| compatible = "atmel,sam-gpio"; |
| reg = <0x400e0e00 0x190>; |
| interrupts = <10 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 10>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #atmel,pin-cells = <2>; |
| }; |
| |
| piob: gpio@400e1000 { |
| compatible = "atmel,sam-gpio"; |
| reg = <0x400e1000 0x190>; |
| interrupts = <11 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 11>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #atmel,pin-cells = <2>; |
| }; |
| |
| pioc: gpio@400e1200 { |
| compatible = "atmel,sam-gpio"; |
| reg = <0x400e1200 0x190>; |
| interrupts = <12 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 12>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #atmel,pin-cells = <2>; |
| }; |
| |
| piod: gpio@400e1400 { |
| compatible = "atmel,sam-gpio"; |
| reg = <0x400e1400 0x190>; |
| interrupts = <16 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 16>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #atmel,pin-cells = <2>; |
| }; |
| |
| pioe: gpio@400e1600 { |
| compatible = "atmel,sam-gpio"; |
| reg = <0x400e1600 0x190>; |
| interrupts = <17 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 17>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #atmel,pin-cells = <2>; |
| }; |
| }; |
| |
| pwm0: pwm0@40020000 { |
| compatible = "atmel,sam-pwm"; |
| reg = <0x40020000 0x4000>; |
| interrupts = <31 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 31>; |
| status = "disabled"; |
| prescaler = <10>; |
| divider = <1>; |
| #pwm-cells = <3>; |
| }; |
| |
| pwm1: pwm1@4005c000 { |
| compatible = "atmel,sam-pwm"; |
| reg = <0x4005c000 0x4000>; |
| interrupts = <60 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 60>; |
| status = "disabled"; |
| prescaler = <10>; |
| divider = <1>; |
| #pwm-cells = <3>; |
| }; |
| |
| usbhs: usbd@40038000 { |
| compatible = "atmel,sam-usbhs"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x40038000 0x4000>; |
| interrupts = <34 0>; |
| interrupt-names = "usbhs"; |
| maximum-speed = "high-speed"; |
| num-bidir-endpoints = <10>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 34>; |
| status = "disabled"; |
| }; |
| |
| gmac: ethernet@40050000 { |
| compatible = "atmel,sam-gmac"; |
| reg = <0x40050000 0x4000>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 39>; |
| interrupts = <39 0>, <66 0>, <67 0>; |
| interrupt-names = "gmac", "q1", "q2"; |
| num-queues = <3>; |
| local-mac-address = [00 00 00 00 00 00]; |
| status = "disabled"; |
| |
| mdio: mdio { |
| compatible = "atmel,sam-mdio"; |
| status = "disabled"; |
| }; |
| }; |
| |
| tc0: tc@4000c000 { |
| compatible = "atmel,sam-tc"; |
| reg = <0x4000c000 0x100>; |
| interrupts = <23 0 |
| 24 0 |
| 25 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, |
| <&pmc PMC_TYPE_PERIPHERAL 24>, |
| <&pmc PMC_TYPE_PERIPHERAL 25>; |
| status = "disabled"; |
| }; |
| |
| tc1: tc@40010000 { |
| compatible = "atmel,sam-tc"; |
| reg = <0x40010000 0x100>; |
| interrupts = <26 0 |
| 27 0 |
| 28 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, |
| <&pmc PMC_TYPE_PERIPHERAL 27>, |
| <&pmc PMC_TYPE_PERIPHERAL 28>; |
| status = "disabled"; |
| }; |
| |
| tc2: tc@40014000 { |
| compatible = "atmel,sam-tc"; |
| reg = <0x40014000 0x100>; |
| interrupts = <47 0 |
| 48 0 |
| 49 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 47>, |
| <&pmc PMC_TYPE_PERIPHERAL 48>, |
| <&pmc PMC_TYPE_PERIPHERAL 49>; |
| status = "disabled"; |
| }; |
| |
| tc3: tc@40054000 { |
| compatible = "atmel,sam-tc"; |
| reg = <0x40054000 0x100>; |
| interrupts = <50 0 |
| 51 0 |
| 52 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 50>, |
| <&pmc PMC_TYPE_PERIPHERAL 51>, |
| <&pmc PMC_TYPE_PERIPHERAL 52>; |
| status = "disabled"; |
| }; |
| |
| trng: random@40070000 { |
| compatible = "atmel,sam-trng"; |
| reg = <0x40070000 0x4000>; |
| interrupts = <57 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 57>; |
| status = "okay"; |
| }; |
| |
| xdmac: dma0: dma-controller@40078000 { |
| compatible = "atmel,sam-xdmac"; |
| reg = <0x40078000 0x400>; |
| interrupts = <58 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 58>; |
| #dma-cells = <2>; |
| status = "disabled"; |
| }; |
| |
| ssc: ssc@40004000 { |
| compatible = "atmel,sam-ssc"; |
| reg = <0x40004000 0x4000>; |
| interrupts = <22 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 22>; |
| status = "disabled"; |
| }; |
| |
| can { |
| compatible = "bosch,m_can-base"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| std-filter-elements = <28>; |
| ext-filter-elements = <8>; |
| rx-fifo0-elements = <3>; |
| rx-fifo1-elements = <3>; |
| rx-buffer-elements = <0>; |
| tx-buffer-elements = <1>; |
| |
| can0: can@40030000 { |
| compatible = "atmel,sam-can"; |
| reg = <0x40030000 0x100>; |
| interrupts = <35 0>, <36 0>; |
| interrupt-names = "LINE_0", "LINE_1"; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 35>; |
| divider = <6>; |
| sjw = <1>; |
| sample-point = <875>; |
| sjw-data = <1>; |
| sample-point-data = <875>; |
| status = "disabled"; |
| }; |
| |
| can1: can@40034000 { |
| compatible = "atmel,sam-can"; |
| reg = <0x40034000 0x100>; |
| interrupts = <37 0>, <38 0>; |
| interrupt-names = "LINE_0", "LINE_1"; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 37>; |
| divider = <6>; |
| sjw = <1>; |
| sample-point = <875>; |
| sjw-data = <1>; |
| sample-point-data = <875>; |
| status = "disabled"; |
| }; |
| }; |
| |
| rstc: rstc@400e1800 { |
| compatible = "atmel,sam-rstc"; |
| reg = <0x400e1800 0x10>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 1>; |
| user-nrst; |
| }; |
| }; |
| }; |
| |
| &nvic { |
| arm,num-irq-priority-bits = <3>; |
| }; |