/* Copyright (c) 2023 Andriy Gelman
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/ {
	arduino_header: connector {
		compatible = "arduino-header-r3";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map = <0 0 &gpio14 0 0>,	/* A0 */
			   <1 0 &gpio14 1 0>,	/* A1 */
			   <2 0 &gpio14 2 0>,	/* A2 */
			   <3 0 &gpio14 3 0>,	/* A3 */
			   <4 0 &gpio14 4 0>,	/* A4 */
			   <5 0 &gpio14 5 0>,	/* A5 */
			   <6 0 &gpio2 15 0>,	/* D0 */
			   <7 0 &gpio2 14 0>,	/* D1 */
			   <8 0 &gpio1 0 0>,	/* D2 */
			   <9 0 &gpio1 1 0>,	/* D3 */
			   <10 0 &gpio1 8 0>,	/* D4 */
			   <11 0 &gpio2 12 0>,	/* D5 */
			   <12 0 &gpio2 11 0>,	/* D6 */
			   <13 0 &gpio1 9 0>,	/* D7 */
			   <14 0 &gpio1 10 0>,	/* D8 */
			   <15 0 &gpio1 11 0>,	/* D9 */
			   <16 0 &gpio3 10 0>,	/* D10 */
			   <17 0 &gpio3 8 0>,	/* D11 */
			   <18 0 &gpio3 7 0>,	/* D12 */
			   <19 0 &gpio3 9 0>,	/* D13 */
			   <20 0 &gpio3 15 0>,	/* D14 */
			   <21 0 &gpio0 13 0>;	/* D15 */
	};
};

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&gpio2 {
	status = "okay";
};

&gpio3 {
	status = "okay";
};

&gpio14 {
	status = "okay";
};

arduino_spi: &usic2ch0 {};
arduino_serial: &usic1ch0 {};
arduino_i2c: &usic1ch1 {};
