1/*
2 * Copyright (c) 2020 Google LLC.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <atmel/samd21.dtsi>
9#include <atmel/samx2xx18.dtsi>
10#include "seeeduino_xiao-pinctrl.dtsi"
11#include "seeed_xiao_connector.dtsi"
12
13/ {
14	model = "Seeeduino XIAO";
15	compatible = "seeed,seeeduino-xiao";
16
17	chosen {
18		zephyr,console = &sercom4;
19		zephyr,shell-uart = &sercom4;
20		zephyr,sram = &sram0;
21		zephyr,flash = &flash0;
22		zephyr,code-partition = &code_partition;
23	};
24
25	leds {
26		compatible = "gpio-leds";
27		led: led_0 {
28			gpios = <&porta 17 GPIO_ACTIVE_LOW>;
29			label = "LED";
30		};
31		rx_led: led_1 {
32			gpios = <&porta 18 GPIO_ACTIVE_LOW>;
33			label = "RX_LED";
34		};
35		tx_led: led_2 {
36			gpios = <&porta 19 GPIO_ACTIVE_LOW>;
37			label = "TX_LED";
38		};
39	};
40
41	/* These aliases are provided for compatibility with samples */
42	aliases {
43		led0 = &led;
44		led1 = &rx_led;
45		led2 = &tx_led;
46	};
47};
48
49&cpu0 {
50	clock-frequency = <48000000>;
51};
52
53&sercom4 {
54	status = "okay";
55	compatible = "atmel,sam0-uart";
56	current-speed = <115200>;
57	rxpo = <1>;
58	txpo = <0>;
59
60	pinctrl-0 = <&sercom4_uart_default>;
61	pinctrl-names = "default";
62};
63
64&sercom0 {
65	status = "okay";
66	compatible = "atmel,sam0-spi";
67	dipo = <1>;
68	dopo = <1>;
69	#address-cells = <1>;
70	#size-cells = <0>;
71
72	pinctrl-0 = <&sercom0_spi_default>;
73	pinctrl-names = "default";
74};
75
76&sercom2 {
77	status = "okay";
78	compatible = "atmel,sam0-i2c";
79	clock-frequency = <I2C_BITRATE_FAST>;
80	#address-cells = <1>;
81	#size-cells = <0>;
82
83	pinctrl-0 = <&sercom2_i2c_default>;
84	pinctrl-names = "default";
85};
86
87zephyr_udc0: &usb0 {
88	status = "okay";
89
90	pinctrl-0 = <&usb_dc_default>;
91	pinctrl-names = "default";
92};
93
94&dac0 {
95	status = "okay";
96
97	pinctrl-0 = <&dac_default>;
98	pinctrl-names = "default";
99};
100
101&flash0 {
102	partitions {
103		compatible = "fixed-partitions";
104		#address-cells = <1>;
105		#size-cells = <1>;
106
107		boot_partition: partition@0 {
108			label = "uf2";
109			reg = <0x00000000 DT_SIZE_K(8)>;
110			read-only;
111		};
112
113		code_partition: partition@2000 {
114			label = "code";
115			reg = <0x2000 DT_SIZE_K(256-8-16)>;
116			read-only;
117		};
118
119		/*
120		 * The final 16 KiB is reserved for the application.
121		 * Storage partition may be used by FCB or LittleFS.
122		 */
123		storage_partition: partition@3c000 {
124			label = "storage";
125			reg = <0x0003c000 DT_SIZE_K(16)>;
126		};
127	};
128};
129