|  | /* | 
|  | * 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>; | 
|  | arm,num-mpu-regions = <8>; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | 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>; | 
|  | }; |