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

arduino_i2c: &i2c2 {};
arduino_spi: &spi1 {};
arduino_serial: &usart6 {};
