1// SPDX-License-Identifier: GPL-2.0
2/*
3 * at91-kizbox3-hs.dts - Device Tree file for Overkiz KIZBOX3-HS board
4 *
5 * Copyright (C) 2018 Overkiz SAS
6 *
7 * Authors: Dorian Rocipon <d.rocipon@overkiz.com>
8 *          Kevin Carli <k.carli@overkiz.com>
9 *          Mickael Gardet <m.gardet@overkiz.com>
10 */
11/dts-v1/;
12#include "at91-kizbox3_common.dtsi"
13
14/ {
15	model = "Overkiz KIZBOX3-HS";
16	compatible = "overkiz,kizbox3-hs", "atmel,sama5d2", "atmel,sama5";
17
18	led-controller-1 {
19		status = "okay";
20
21		led-1 {
22			status = "okay";
23		};
24
25		led-2 {
26			status = "okay";
27		};
28
29		led-3 {
30			status = "okay";
31		};
32
33		led-4 {
34			status = "okay";
35		};
36	};
37
38	led-controller-2  {
39		compatible = "gpio-leds";
40		pinctrl-names = "default";
41		pinctrl-0 = <&pinctrl_led_red
42			     &pinctrl_led_white>;
43		status = "okay";
44
45		led-5 {
46			label = "pio:red:user";
47			gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>;
48			default-state = "off";
49		};
50
51		led-6 {
52			label = "pio:white:user";
53			gpios = <&pioA PIN_PB8 GPIO_ACTIVE_HIGH>;
54			default-state = "off";
55		};
56	};
57
58	gpio-keys {
59		compatible = "gpio-keys";
60		pinctrl-names = "default" , "default", "default",
61				"default", "default" ;
62		pinctrl-0 = <&pinctrl_key_gpio_default>;
63		pinctrl-1 = <&pinctrl_pio_rf &pinctrl_pio_wifi>;
64		pinctrl-2 = <&pinctrl_pio_io_boot
65			     &pinctrl_pio_io_reset
66			     &pinctrl_pio_io_test_radio>;
67		pinctrl-3 = <&pinctrl_pio_zbe_test_radio
68			     &pinctrl_pio_zbe_rst>;
69		pinctrl-4 = <&pinctrl_pio_input>;
70
71		switch-1 {
72			label = "SW1";
73			gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>;
74			linux,code = <0x101>;
75			wakeup-source;
76		};
77
78		switch-2 {
79			label = "SW2";
80			gpios = <&pioA PIN_PA18 GPIO_ACTIVE_LOW>;
81			linux,code = <0x102>;
82			wakeup-source;
83		};
84
85		switch-3 {
86			label = "SW3";
87			gpios = <&pioA PIN_PA22 GPIO_ACTIVE_LOW>;
88			linux,code = <0x103>;
89			wakeup-source;
90		};
91
92		switch-7 {
93			label = "SW7";
94			gpios = <&pioA PIN_PA26 GPIO_ACTIVE_LOW>;
95			linux,code = <0x107>;
96			wakeup-source;
97		};
98
99		switch-8 {
100			label = "SW8";
101			gpios = <&pioA PIN_PA24 GPIO_ACTIVE_LOW>;
102			linux,code = <0x108>;
103			wakeup-source;
104		};
105	};
106
107	gpios {
108		compatible = "gpio";
109		status = "okay";
110
111		rf_on {
112			label = "rf on";
113			gpio = <&pioA PIN_PC19 GPIO_ACTIVE_HIGH>;
114			output;
115			init-low;
116		};
117
118		wifi_on {
119			label = "wifi on";
120			gpio = <&pioA PIN_PC20 GPIO_ACTIVE_HIGH>;
121			output;
122			init-low;
123		};
124
125		zbe_test_radio {
126			label = "zbe test radio";
127			gpio = <&pioA PIN_PB21 GPIO_ACTIVE_HIGH>;
128			output;
129			init-low;
130		};
131
132		zbe_rst {
133			label = "zbe rst";
134			gpio = <&pioA PIN_PB25 GPIO_ACTIVE_HIGH>;
135			output;
136			init-low;
137		};
138
139		io_reset {
140			label = "io reset";
141			gpio = <&pioA PIN_PB30 GPIO_ACTIVE_HIGH>;
142			output;
143			init-low;
144		};
145
146		io_test_radio {
147			label = "io test radio";
148			gpio = <&pioA PIN_PC9 GPIO_ACTIVE_HIGH>;
149			output;
150			init-low;
151		};
152
153		io_boot_0 {
154			label = "io boot 0";
155			gpio = <&pioA PIN_PC11 GPIO_ACTIVE_HIGH>;
156			output;
157			init-low;
158		};
159
160		io_boot_1 {
161			label = "io boot 1";
162			gpio = <&pioA PIN_PC17 GPIO_ACTIVE_HIGH>;
163			output;
164			init-low;
165		};
166
167		verbose_bootloader {
168			label = "verbose bootloader";
169			gpio = <&pioA PIN_PB11 GPIO_ACTIVE_HIGH>;
170			input;
171		};
172
173		 nail_bed_detection  {
174			label = "nail bed detection";
175			gpio = <&pioA PIN_PB12 GPIO_ACTIVE_HIGH>;
176			input;
177		};
178
179		 id_usba {
180			label = "id usba";
181			gpio = <&pioA PIN_PC0 GPIO_ACTIVE_LOW>;
182			input;
183		};
184	};
185};
186
187&pioA {
188	pinctrl_key_gpio_default: key_gpio_default {
189		pinmux = <PIN_PA22__GPIO>,
190		<PIN_PA24__GPIO>,
191		<PIN_PA26__GPIO>,
192		<PIN_PA29__GPIO>,
193		<PIN_PA18__GPIO>;
194		bias-disable;
195		};
196
197	pinctrl_gpio {
198		pinctrl_pio_rf: gpio_rf {
199			pinmux = <PIN_PC19__GPIO>;
200			bias-disable;
201		};
202		pinctrl_pio_wifi: gpio_wifi {
203			pinmux = <PIN_PC20__GPIO>;
204			bias-disable;
205		};
206		pinctrl_pio_io_boot: gpio_io_boot {
207			pinmux =
208			<PIN_PC11__GPIO>,
209			<PIN_PC17__GPIO>;
210			bias-disable;
211		};
212		pinctrl_pio_io_test_radio: gpio_io_test_radio {
213			pinmux = <PIN_PC9__GPIO>;
214			bias-disable;
215		};
216		pinctrl_pio_zbe_test_radio: gpio_zbe_test_radio {
217			pinmux = <PIN_PB21__GPIO>;
218			bias-disable;
219		};
220		pinctrl_pio_zbe_rst: gpio_zbe_rst {
221			pinmux = <PIN_PB25__GPIO>;
222			bias-disable;
223		};
224		/* stm32 reset must be open drain (internal pull up) */
225		pinctrl_pio_io_reset: gpio_io_reset {
226			pinmux = <PIN_PB30__GPIO>;
227			bias-disable;
228			drive-open-drain;
229			output-low;
230		};
231		pinctrl_pio_input: gpio_input {
232			pinmux =
233			<PIN_PB11__GPIO>,
234			<PIN_PB12__GPIO>,
235			<PIN_PC0__GPIO>;
236			bias-disable;
237		};
238	};
239
240	pinctrl_leds {
241		pinctrl_led_red: led_red {
242			pinmux = <PIN_PB1__GPIO>;
243			bias-disable;
244		};
245		pinctrl_led_white: led_white {
246			pinmux = <PIN_PB8__GPIO>;
247			bias-disable;
248		};
249	};
250};
251
252&adc {
253	status = "okay";
254};
255
256&uart0 {
257	status = "okay";
258};
259
260&uart1 {
261	status = "okay";
262};
263
264&uart2 {
265	status = "okay";
266};
267
268&uart3 {
269	status = "okay";
270};
271
272&uart4 {
273	status = "okay";
274};
275
276&flx0 {
277	status = "okay";
278
279	uart5: serial@200  {
280			status = "okay";
281	};
282};
283
284&flx3 {
285	status = "okay";
286	uart8: serial@200 {
287		status = "okay";
288	};
289};
290
291&flx4 {
292	status = "okay";
293
294	i2c6: i2c@600 {
295		status = "okay";
296	};
297};
298
299&usb0 {
300	status = "okay";
301};
302
303&usb1 {
304	status = "okay";
305};
306
307&usb2 {
308	status = "okay";
309};
310