/*
 * Copyright (c) 2019 Richard Osterloh <richard.osterloh@gmail.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 0 0>,	/* A0 */
			   <1 0 &gpioa 1 0>,	/* A1 */
			   <2 0 &gpioa 4 0>,	/* A2 */
			   <3 0 &gpiob 0 0>,	/* A3 */
			   <4 0 &gpioc 1 0>,	/* A4 */
			   <5 0 &gpioc 0 0>,	/* A5 */
			   <6 0 &gpioc 5 0>,	/* D0 */
			   <7 0 &gpioc 4 0>,	/* D1 */
			   <8 0 &gpioa 10 0>,	/* D2 */
			   <9 0 &gpiob 3 0>,	/* D3 */
			   <10 0 &gpiob 5 0>,	/* D4 */
			   <11 0 &gpiob 4 0>,	/* D5 */
			   <12 0 &gpiob 10 0>,	/* D6 */
			   <13 0 &gpioa 8 0>,	/* D7 */
			   <14 0 &gpioa 9 0>,	/* D8 */
			   <15 0 &gpioc 7 0>,	/* D9 */
			   <16 0 &gpiob 6 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 8 0>;	/* D15 */
	};
};

arduino_i2c: &i2c1 {};
arduino_spi: &spi1 {};
arduino_serial: &usart1 {};
