1/dts-v1/;
2#include <ambiq/ambiq_apollo4p.dtsi>
3#include <zephyr/dt-bindings/input/input-event-codes.h>
4
5#include "apollo4p_evb-pinctrl.dtsi"
6
7/ {
8	model = "Ambiq Apollo4 Plus evaluation board";
9	compatible = "ambiq,apollo4p_evb";
10
11	chosen {
12		zephyr,itcm = &tcm;
13		zephyr,sram = &sram0;
14		zephyr,flash = &flash0;
15		zephyr,console = &uart0;
16		zephyr,shell-uart = &uart0;
17		zephyr,uart-pipe = &uart0;
18		zephyr,flash-controller = &flash;
19	};
20
21	aliases {
22		watchdog0 = &wdt0;
23		led0 = &led0;
24		led1 = &led1;
25		led2 = &led2;
26		sw0 = &button0;
27		sw1 = &button1;
28		rtc = &rtc0;
29	};
30
31	leds {
32		compatible = "gpio-leds";
33		led0: led_0 {
34			gpios = <&gpio0_31 30 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
35			label = "LED 0";
36		};
37		led1: led_1 {
38			gpios = <&gpio64_95 26 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
39			label = "LED 1";
40		};
41		led2: led_2 {
42			gpios = <&gpio96_127 1 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
43			label = "LED 2";
44		};
45	};
46
47	buttons {
48		compatible = "gpio-keys";
49		polling-mode;
50		button0: button_0 {
51			gpios = <&gpio0_31 18 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
52			label = "BTN0";
53			zephyr,code = <INPUT_KEY_0>;
54			status = "okay";
55		};
56		button1: button_1 {
57			gpios = <&gpio0_31 19 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
58			label = "BTN1";
59			zephyr,code = <INPUT_KEY_1>;
60			status = "okay";
61		};
62	};
63};
64
65&uart0 {
66	current-speed = <115200>;
67	pinctrl-0 = <&uart0_default>;
68	pinctrl-names = "default";
69	status = "okay";
70};
71
72&itm {
73	pinctrl-0 = <&itm_default>;
74	pinctrl-names = "default";
75	status = "okay";
76};
77
78&adc0 {
79	pinctrl-0 = <&adc0_default>;
80	pinctrl-names = "default";
81	status = "okay";
82};
83
84&counter0 {
85	status = "okay";
86};
87
88&rtc0 {
89	status = "okay";
90	clock = "XTAL";
91};
92
93&wdt0 {
94	status = "okay";
95};
96
97&iom0_i2c {
98	pinctrl-0 = <&i2c0_default>;
99	pinctrl-names = "default";
100	clock-frequency = <I2C_BITRATE_STANDARD>;
101	scl-gpios = <&gpio0_31 5 (GPIO_OPEN_DRAIN | GPIO_PULL_UP)>;
102	sda-gpios = <&gpio0_31 6 (GPIO_OPEN_DRAIN | GPIO_PULL_UP)>;
103	status = "okay";
104};
105
106&iom1_spi {
107	pinctrl-0 = <&spi1_default>;
108	pinctrl-names = "default";
109	cs-gpios = <&gpio0_31 11 GPIO_ACTIVE_LOW>;
110	clock-frequency = <1000000>;
111	status = "okay";
112};
113
114&mspi0 {
115	pinctrl-0 = <&mspi0_default>;
116	pinctrl-names = "default";
117	status = "okay";
118};
119
120&mspi1 {
121	pinctrl-0 = <&mspi1_default>;
122	pinctrl-names = "default";
123	status = "okay";
124};
125
126&mspi2 {
127	pinctrl-0 = <&mspi2_default>;
128	pinctrl-names = "default";
129	status = "okay";
130};
131
132&flash0 {
133	erase-block-size = <2048>;
134	write-block-size = <16>;
135
136	partitions {
137		compatible = "fixed-partitions";
138		#address-cells = <1>;
139		#size-cells = <1>;
140
141		/* Set 16KB of storage at the end of the 1952KB of flash */
142		storage_partition: partition@1e4000 {
143			label = "storage";
144			reg = <0x001e4000 0x4000>;
145		};
146	};
147};
148
149&stimer0 {
150	clk-source = <3>;
151};
152
153zephyr_udc0: &usb {
154	vddusb33-gpios = <&gpio96_127 7 (GPIO_PULL_UP)>;
155	vddusb0p9-gpios = <&gpio96_127 5 (GPIO_PULL_UP)>;
156	status = "okay";
157};
158
159&gpio0_31 {
160	status = "okay";
161};
162
163&gpio32_63 {
164	status = "okay";
165};
166
167&gpio64_95 {
168	status = "okay";
169};
170
171&gpio96_127 {
172	status = "okay";
173};
174