|  | /* | 
|  | * Copyright (c) 2021 Argentum Systems Ltd. | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #include <mem.h> | 
|  | #include <arm/armv6-m.dtsi> | 
|  | #include <zephyr/dt-bindings/adc/adc.h> | 
|  | #include <zephyr/dt-bindings/gpio/gpio.h> | 
|  | #include <zephyr/dt-bindings/i2c/i2c.h> | 
|  | #include <zephyr/dt-bindings/pwm/pwm.h> | 
|  |  | 
|  | / { | 
|  | aliases { | 
|  | watchdog0 = &wdog; | 
|  | }; | 
|  |  | 
|  | chosen { | 
|  | zephyr,flash-controller = &nvmctrl; | 
|  | zephyr,entropy = &trng; | 
|  | }; | 
|  |  | 
|  | cpus { | 
|  | #address-cells = <1>; | 
|  | #size-cells = <0>; | 
|  |  | 
|  | cpu0: cpu@0 { | 
|  | device_type = "cpu"; | 
|  | compatible = "arm,cortex-m0+"; | 
|  | reg = <0>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | sram0: memory@20000000 { | 
|  | compatible = "mmio-sram"; | 
|  | reg = <0x20000000 0x8000>; | 
|  | }; | 
|  |  | 
|  | id: device_id@80a00c { | 
|  | compatible = "atmel,sam0-id"; | 
|  | reg =	<0x0080A00C 0x4>, | 
|  | <0x0080A040 0x4>, | 
|  | <0x0080A044 0x4>, | 
|  | <0x0080A048 0x4>; | 
|  | }; | 
|  |  | 
|  | soc { | 
|  | nvmctrl: nvmctrl@41004000  { | 
|  | compatible = "atmel,sam0-nvmctrl"; | 
|  | reg = <0x41004000 0x22>; | 
|  | interrupts = <4 0>; | 
|  | lock-regions = <16>; | 
|  |  | 
|  | #address-cells = <1>; | 
|  | #size-cells = <1>; | 
|  |  | 
|  | flash0: flash@0 { | 
|  | compatible = "soc-nv-flash"; | 
|  | reg = <0 0x40000>; | 
|  | write-block-size = <4>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | pm: pm@40000400 { | 
|  | compatible = "atmel,saml2x-pm"; | 
|  | reg = <0x40000400 0x400>; | 
|  | interrupts = <0 0>; | 
|  | #clock-cells = <2>; | 
|  | }; | 
|  |  | 
|  | mclk: mclk@40000400 { | 
|  | compatible = "atmel,saml2x-mclk"; | 
|  | reg = <0x40000400 0x400>; | 
|  | #clock-cells = <2>; | 
|  | }; | 
|  |  | 
|  | gclk: gclk@40001800 { | 
|  | compatible = "atmel,saml2x-gclk"; | 
|  | reg = <0x40001800 0x400>; | 
|  | #clock-cells = <1>; | 
|  | }; | 
|  |  | 
|  | dmac: dmac@44000400 { | 
|  | compatible = "atmel,sam0-dmac"; | 
|  | reg = <0x44000400 0x400>; | 
|  | interrupts = <5 0>; | 
|  | #dma-cells = <2>; | 
|  | }; | 
|  |  | 
|  | eic: eic@40002400 { | 
|  | compatible = "atmel,sam0-eic"; | 
|  | reg = <0x40002400 0x24>; | 
|  | interrupts = <3 0>; | 
|  | }; | 
|  |  | 
|  | wdog: watchdog@40001c00 { | 
|  | compatible = "atmel,sam0-watchdog"; | 
|  | reg = <0x40001c00 0x0c>; | 
|  | interrupts = <1 0>; | 
|  | }; | 
|  |  | 
|  | sercom0: sercom@42000000 { | 
|  | compatible = "atmel,sam0-sercom"; | 
|  | reg = <0x42000000 0x40>; | 
|  | status = "disabled"; | 
|  | }; | 
|  |  | 
|  | sercom1: sercom@42000400 { | 
|  | compatible = "atmel,sam0-sercom"; | 
|  | reg = <0x42000400 0x40>; | 
|  | status = "disabled"; | 
|  | }; | 
|  |  | 
|  | sercom2: sercom@42000800 { | 
|  | compatible = "atmel,sam0-sercom"; | 
|  | reg = <0x42000800 0x40>; | 
|  | status = "disabled"; | 
|  | }; | 
|  |  | 
|  | sercom3: sercom@42000c00 { | 
|  | compatible = "atmel,sam0-sercom"; | 
|  | reg = <0x42000C00 0x40>; | 
|  | status = "disabled"; | 
|  | }; | 
|  |  | 
|  | sercom4: sercom@42001000 { | 
|  | compatible = "atmel,sam0-sercom"; | 
|  | reg = <0x42001000 0x40>; | 
|  | status = "disabled"; | 
|  | }; | 
|  |  | 
|  | sercom5: sercom@43000400 { | 
|  | compatible = "atmel,sam0-sercom"; | 
|  | reg = <0x43000400 0x40>; | 
|  | status = "disabled"; | 
|  | }; | 
|  |  | 
|  | tc4: tc@43000800 { | 
|  | compatible = "atmel,sam0-tc32"; | 
|  | reg = <0x43000800 0x34>; | 
|  | }; | 
|  |  | 
|  | pinctrl: pinctrl@40002800 { | 
|  | compatible = "atmel,sam0-pinctrl"; | 
|  | #address-cells = <1>; | 
|  | #size-cells = <1>; | 
|  | ranges = <0x40002800 0x40002800 0x100>; | 
|  |  | 
|  | porta: gpio@40002800 { | 
|  | compatible = "atmel,sam0-gpio"; | 
|  | reg = <0x40002800 0x80>; | 
|  | gpio-controller; | 
|  | #gpio-cells = <2>; | 
|  | #atmel,pin-cells = <2>; | 
|  |  | 
|  | }; | 
|  |  | 
|  | portb: gpio@40002880 { | 
|  | compatible = "atmel,sam0-gpio"; | 
|  | reg = <0x40002880 0x80>; | 
|  | gpio-controller; | 
|  | #gpio-cells = <2>; | 
|  | #atmel,pin-cells = <2>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | rtc: rtc@40002000 { | 
|  | compatible = "atmel,sam0-rtc"; | 
|  | reg = <0x40002000 0x1c>; | 
|  | interrupts = <2 0>; | 
|  | clock-generator = <0>; | 
|  | status = "disabled"; | 
|  | }; | 
|  |  | 
|  | adc: adc@43000c00 { | 
|  | compatible = "atmel,sam0-adc"; | 
|  | reg = <0x43000c00 0x30>; | 
|  |  | 
|  | /* | 
|  | * 16 MHz max, so clock it with the | 
|  | * 48 MHz DFLL / 2 / 2 = 12 MHz | 
|  | */ | 
|  | gclk = <3>; | 
|  | prescaler = <2>; | 
|  | #io-channel-cells = <1>; | 
|  | }; | 
|  |  | 
|  | dac: dac@42003000 { | 
|  | compatible = "atmel,sam0-dac"; | 
|  | status = "disabled"; | 
|  | reg = <0x42003000 0x1a>; | 
|  | #io-channel-cells = <0>; | 
|  | }; | 
|  |  | 
|  | trng: random@42003800 { | 
|  | compatible = "atmel,sam-trng"; | 
|  | reg = <0x42003800 0x24>; | 
|  | interrupts = <27 0>; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &nvic { | 
|  | arm,num-irq-priority-bits = <2>; | 
|  | }; |