| /* |
| * Copyright (c) 2020 Gerson Fernando Budke <nandojve@gmail.com> |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <arm/armv7-m.dtsi> |
| #include <zephyr/dt-bindings/i2c/i2c.h> |
| #include <zephyr/dt-bindings/gpio/gpio.h> |
| #include <zephyr/dt-bindings/clock/atmel_sam_pmc.h> |
| |
| / { |
| chosen { |
| zephyr,flash-controller = &flashcalw; |
| zephyr,entropy = &trng; |
| }; |
| |
| cpus { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| cpu0: cpu@0 { |
| device_type = "cpu"; |
| compatible = "arm,cortex-m4"; |
| reg = <0>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| mpu: mpu@e000ed90 { |
| compatible = "arm,armv7m-mpu"; |
| reg = <0xe000ed90 0x40>; |
| }; |
| }; |
| }; |
| |
| sram0: memory@20000000 { |
| compatible = "mmio-sram"; |
| }; |
| |
| /** |
| * HRAM1 are 4k SRAM that can be used by PicoCache or just extra |
| * memory available. The PicoCache will be keep disable to ensures |
| * deterministic behaviour. That way the extra memory can be |
| * exclusive for USB descriptors |
| */ |
| sram1: memory@21000000 { |
| compatible = "zephyr,memory-region", "mmio-sram"; |
| reg = <0x21000000 DT_SIZE_K(4)>; |
| zephyr,memory-region = "SRAM1"; |
| }; |
| |
| soc { |
| pmc: pmc@400e0000 { |
| compatible = "atmel,sam-pmc"; |
| reg = <0x400e0000 0x740>; |
| interrupts = <22 0>; |
| #clock-cells = <2>; |
| status = "okay"; |
| }; |
| |
| flashcalw: flash-controller@400a0000 { |
| compatible = "atmel,sam4l-flashcalw-controller"; |
| reg = <0x400a0000 0x400>; |
| interrupts = <0 0>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| flash0: flash@0 { |
| compatible = "soc-nv-flash"; |
| |
| write-block-size = <8>; |
| erase-block-size = <512>; |
| }; |
| |
| /* |
| * No driver implemented yet, keeped it disabled |
| */ |
| status = "disabled"; |
| }; |
| |
| twim0: twim@40018000 { |
| compatible = "atmel,sam-i2c-twim"; |
| clock-frequency = <I2C_BITRATE_STANDARD>; |
| reg = <0x40018000 0x4000>; |
| interrupts = <61 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 4>; |
| status = "disabled"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| twim1: twim@4001c000 { |
| compatible = "atmel,sam-i2c-twim"; |
| clock-frequency = <I2C_BITRATE_STANDARD>; |
| reg = <0x4001c000 0x4000>; |
| interrupts = <63 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 6>; |
| status = "disabled"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| twim2: twim@40078000 { |
| compatible = "atmel,sam-i2c-twim"; |
| clock-frequency = <I2C_BITRATE_STANDARD>; |
| reg = <0x40078000 0x4000>; |
| interrupts = <77 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 21>; |
| status = "disabled"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| twim3: twim@4007c000 { |
| compatible = "atmel,sam-i2c-twim"; |
| clock-frequency = <I2C_BITRATE_STANDARD>; |
| reg = <0x4007c000 0x4000>; |
| interrupts = <78 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 22>; |
| status = "disabled"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| |
| spi0: spi@40008000 { |
| compatible = "atmel,sam-spi"; |
| reg = <0x40008000 0x4000>; |
| interrupts = <54 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 1>; |
| status = "disabled"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| |
| usart0: usart@40024000 { |
| compatible = "atmel,sam-usart"; |
| reg = <0x40024000 0x4000>; |
| interrupts = <65 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 8>; |
| status = "disabled"; |
| }; |
| usart1: usart@40028000 { |
| compatible = "atmel,sam-usart"; |
| reg = <0x40028000 0x4000>; |
| interrupts = <66 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 9>; |
| status = "disabled"; |
| }; |
| usart2: usart@4002c000 { |
| compatible = "atmel,sam-usart"; |
| reg = <0x4002c000 0x4000>; |
| interrupts = <67 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 10>; |
| status = "disabled"; |
| }; |
| usart3: usart@40030000 { |
| compatible = "atmel,sam-usart"; |
| reg = <0x40030000 0x4000>; |
| interrupts = <68 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 11>; |
| status = "disabled"; |
| }; |
| |
| usbc: usbd@400a5000 { |
| compatible = "atmel,sam-usbc"; |
| reg = <0x400a5000 0x1000>; |
| interrupts = <18 5>; |
| interrupt-names = "usbc"; |
| maximum-speed = "full-speed"; |
| num-bidir-endpoints = <8>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 101>; |
| status = "disabled"; |
| }; |
| |
| pinctrl: pinctrl@400e1000 { |
| compatible = "atmel,sam-pinctrl"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| ranges = <0x400e1000 0x400e1000 0x800>; |
| |
| gpioa: gpio@400e1000 { |
| compatible = "atmel,sam4l-gpio"; |
| reg = <0x400e1000 0x200>; |
| interrupts = <25 1>, <26 1>, <27 1>, <28 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 68>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #atmel,pin-cells = <2>; |
| }; |
| gpiob: gpio@400e1200 { |
| compatible = "atmel,sam4l-gpio"; |
| reg = <0x400e1200 0x200>; |
| interrupts = <29 1>, <30 1>, <31 1>, <32 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 68>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #atmel,pin-cells = <2>; |
| }; |
| gpioc: gpio@400e1400 { |
| compatible = "atmel,sam4l-gpio"; |
| reg = <0x400e1400 0x200>; |
| interrupts = <33 1>, <34 1>, <35 1>, <36 1>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 68>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #atmel,pin-cells = <2>; |
| }; |
| }; |
| |
| tc0: tc@40010000 { |
| compatible = "atmel,sam-tc"; |
| reg = <0x40010000 0x100>; |
| interrupts = <55 0 |
| 56 0 |
| 57 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 2>; |
| status = "disabled"; |
| }; |
| |
| tc1: tc@40014000 { |
| compatible = "atmel,sam-tc"; |
| reg = <0x40014000 0x100>; |
| interrupts = <58 0 |
| 59 0 |
| 60 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 3>; |
| status = "disabled"; |
| }; |
| |
| trng: random@40068000 { |
| compatible = "atmel,sam-trng"; |
| reg = <0x40068000 0x4000>; |
| interrupts = <73 0>; |
| clocks = <&pmc PMC_TYPE_PERIPHERAL 17>; |
| status = "okay"; |
| }; |
| |
| uid: device_uid@80020c { |
| compatible = "atmel,sam4l-uid"; |
| reg = <0x80020c 0xf>; |
| status = "okay"; |
| }; |
| }; |
| }; |
| |
| &nvic { |
| arm,num-irq-priority-bits = <4>; |
| }; |