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

arduino_i2c: &i2c4 {};
arduino_spi: &spi5 {};
arduino_serial: &usart1 {};
