/*
 * Copyright (c) 2021 Matija Tudan
 *
 * 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 &gpioa 0 0>,	/* A0 */
			   <1 0 &gpioa 1 0>,	/* A1 */
			   <2 0 &gpioc 3 0>,	/* A2 */
			   <3 0 &gpioc 2 0>,	/* A3 */
			   <4 0 &gpioc 1 0>,	/* A4 */
			   <5 0 &gpioc 0 0>,	/* A5 */
			   <6 0 &gpioa 3 0>,	/* D0 */
			   <7 0 &gpioa 2 0>,	/* D1 */
			   <8 0 &gpioa 12 0>,	/* D2 */
			   <9 0 &gpiob 3 0>,	/* D3 */
			   <10 0 &gpiob 5 0>,	/* D4 */
			   <11 0 &gpioa 15 0>,	/* D5 */
			   <12 0 &gpiob 10 0>,	/* D6 */
			   <13 0 &gpioc 7 0>,	/* D7 */
			   <14 0 &gpiob 6 0>,	/* D8 */
			   <15 0 &gpioa 8 0>,	/* D9 */
			   <16 0 &gpioa 11 0>,	/* D10 */
			   <17 0 &gpiob 15 0>,	/* D11 */
			   <18 0 &gpiob 14 0>,	/* D12 */
			   <19 0 &gpiob 13 0>,	/* D13 */
			   <20 0 &gpiob 7 0>,	/* D14 */
			   <21 0 &gpiob 8 0>;	/* D15 */
	};
};

arduino_i2c: &i2c1 {};
arduino_spi: &spi2 {};
