1/*
2 * Copyright (c) 2024 Analog Devices, Inc.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8
9#include <adi/max32/max32690.dtsi>
10#include <adi/max32/max32690-pinctrl.dtsi>
11#include <zephyr/dt-bindings/gpio/adi-max32-gpio.h>
12#include <zephyr/dt-bindings/input/input-event-codes.h>
13
14/ {
15	model = "Analog Devices AD-APARD32690-SL";
16	compatible = "adi,apard32690";
17
18	chosen {
19		zephyr,console = &uart0;
20		zephyr,shell-uart = &uart0;
21		zephyr,sram = &sram0;
22		zephyr,flash = &flash0;
23	};
24
25	leds {
26		compatible = "gpio-leds";
27		blue_led: blue_led {
28			gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
29			label = "LED1";
30		};
31		red_led: red_led {
32			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
33			label = "LED2";
34		};
35		green_led: green_led {
36			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
37			label = "LED3";
38		};
39	};
40
41	buttons {
42		compatible = "gpio-keys";
43		usr_btn: usr_btn {
44			gpios = <&gpio1 27 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>;
45			label = "S2";
46			zephyr,code = <INPUT_KEY_0>;
47		};
48	};
49
50	aliases {
51		led0 = &blue_led;
52		led1 = &red_led;
53		led2 = &green_led;
54		sw0 = &usr_btn;
55	};
56
57	arduino_header: connector {
58		compatible = "arduino-header-r3";
59		#gpio-cells = <2>;
60		gpio-map-mask = <0xffffffff 0xffffffc0>;
61		gpio-map-pass-thru = <0 0x3f>;
62		gpio-map = <0 0 &gpio3 0 0>,	/* A0 */
63			   <1 0 &gpio3 1 0>,	/* A1 */
64			   <2 0 &gpio3 2 0>,	/* A2 */
65			   <3 0 &gpio3 3 0>,	/* A3 */
66			   <4 0 &gpio3 4 0>,	/* A4 */
67			   <5 0 &gpio3 5 0>,	/* A5 */
68			   <6 0 &gpio2 14 0>,	/* D0 */
69			   <7 0 &gpio2 16 0>,	/* D1 */
70			   <8 0 &gpio2 13 0>,	/* D2 */
71			   <9 0 &gpio2 15 0>,	/* D3 */
72			   <10 0 &gpio0 8 0>,	/* D4 */
73			   <11 0 &gpio0 7 0>,	/* D5 */
74			   <12 0 &gpio1 24 0>,	/* D6 */
75			   <13 0 &gpio1 25 0>,	/* D7 */
76			   <14 0 &gpio1 31 0>,	/* D8 */
77			   <15 0 &gpio1 30 0>,	/* D9 */
78			   <16 0 &gpio1 23 0>,	/* D10 */
79			   <17 0 &gpio1 29 0>,	/* D11 */
80			   <18 0 &gpio1 28 0>,	/* D12 */
81			   <19 0 &gpio1 26 0>,	/* D13 */
82			   <20 0 &gpio2 17 0>,	/* D14 */
83			   <21 0 &gpio2 18 0>;	/* D15 */
84	};
85};
86
87&clk_ipo {
88	status = "okay";
89};
90
91&clk_ibro {
92	status = "okay";
93};
94
95&gpio0 {
96	status = "okay";
97};
98
99&gpio1 {
100	status = "okay";
101};
102
103&gpio2 {
104	status = "okay";
105};
106
107&gpio3 {
108	status = "okay";
109};
110
111&gpio4 {
112	status = "okay";
113};
114
115&uart0 {
116	clock-source = <ADI_MAX32_PRPH_CLK_SRC_IBRO>;
117	pinctrl-0 = <&uart0a_tx_p2_12 &uart0a_rx_p2_11>;
118	pinctrl-names = "default";
119	current-speed = <115200>;
120	data-bits = <8>;
121	parity = "none";
122	status = "okay";
123};
124
125&trng {
126	status = "okay";
127};
128
129arduino_serial: &uart1 {
130	clock-source = <ADI_MAX32_PRPH_CLK_SRC_IBRO>;
131	pinctrl-0 = <&uart1a_tx_p2_16 &uart1a_rx_p2_14>;
132	pinctrl-names = "default";
133	current-speed = <115200>;
134};
135
136&spi1a_miso_p1_28 {
137	power-source = <MAX32_VSEL_VDDIOH>;
138};
139
140&spi1a_mosi_p1_29 {
141	power-source = <MAX32_VSEL_VDDIOH>;
142};
143
144&spi1a_sck_p1_26 {
145	power-source = <MAX32_VSEL_VDDIOH>;
146};
147
148&spi1a_ss0_p1_23 {
149	power-source = <MAX32_VSEL_VDDIOH>;
150};
151
152arduino_spi: &spi1 {
153	pinctrl-0 = <&spi1a_miso_p1_28 &spi1a_mosi_p1_29 &spi1a_sck_p1_26
154		     &spi1a_ss0_p1_23>;
155	pinctrl-names = "default";
156};
157
158&spi4a_miso_p1_2 {
159	power-source = <MAX32_VSEL_VDDIOH>;
160};
161
162&spi4a_mosi_p1_1 {
163	power-source = <MAX32_VSEL_VDDIOH>;
164};
165
166&spi4a_sck_p1_3 {
167	power-source = <MAX32_VSEL_VDDIOH>;
168};
169
170&spi4a_ss0_p1_0 {
171	power-source = <MAX32_VSEL_VDDIOH>;
172};
173
174pmod_spi: &spi4 {
175	pinctrl-0 = <&spi4a_miso_p1_2 &spi4a_mosi_p1_1 &spi4a_sck_p1_3
176		     &spi4a_ss0_p1_0>;
177	pinctrl-names = "default";
178};
179
180&spi3a_miso_p0_20 {
181	power-source = <MAX32_VSEL_VDDIOH>;
182};
183
184&spi3a_mosi_p0_21 {
185	power-source = <MAX32_VSEL_VDDIOH>;
186};
187
188&spi3a_sck_p0_16 {
189	power-source = <MAX32_VSEL_VDDIOH>;
190};
191
192&spi3a_ss0_p0_19 {
193	power-source = <MAX32_VSEL_VDDIOH>;
194};
195
196&spi3 {
197	pinctrl-0 = <&spi3a_miso_p0_20 &spi3a_mosi_p0_21 &spi3a_sck_p0_16
198		     &spi3a_ss0_p0_19>;
199	pinctrl-names = "default";
200	status = "okay";
201
202	adin1110: adin1110@0 {
203		compatible = "adi,adin1110";
204		reg = <0x0>;
205		spi-max-frequency = <DT_FREQ_M(25)>;
206		int-gpios = <&gpio0 17 (GPIO_ACTIVE_LOW | MAX32_GPIO_VSEL_VDDIOH)>;
207		reset-gpios = <&gpio0 15 (GPIO_ACTIVE_LOW | MAX32_GPIO_VSEL_VDDIOH)>;
208		status = "okay";
209
210		port1 {
211			local-mac-address = [ 00 E0 22 FE DA C9 ];
212		};
213		mdio {
214			compatible = "adi,adin2111-mdio";
215			#address-cells = <1>;
216			#size-cells = <0>;
217
218			ethernet-phy@1 {
219				reg = <0x1>;
220				compatible = "adi,adin2111-phy";
221			};
222		};
223	};
224};
225
226&w1 {
227	pinctrl-0 = <&owm_io_p0_8 &owm_pe_p0_7>;
228	pinctrl-names = "default";
229};
230