/*
 * Copyright (c) 2020 Richard Osterloh <richard.osterloh@gmail.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/ {
	feather_header: connector {
		compatible = "adafruit-feather-header";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map = <0 0 &gpio0 2 0>,	/* A0 */
			   <1 0 &gpio0 3 0>,	/* A1 */
			   <2 0 &gpio0 4 0>,	/* A2 */
			   <3 0 &gpio0 5 0>,	/* A3 */
			   <4 0 &gpio0 28 0>,	/* A4 */
			   <5 0 &gpio0 29 0>,	/* A5 */
			   <6 0 &gpio0 12 0>,	/* SCK */
			   <7 0 &gpio0 13 0>,	/* MOSI */
			   <8 0 &gpio0 14 0>,	/* MISO */
			   <9 0 &gpio0 8 0>,	/* TXD */
			   <10 0 &gpio0 6 0>,	/* RXD */
			   <11 0 &gpio0 20 0>,	/* PIN_DFU */
			   <12 0 &gpio0 25 0>,	/* SDA */
			   <13 0 &gpio0 26 0>,	/* SCL */
			   <14 0 &gpio0 27 0>,	/* P0.27 */
			   <15 0 &gpio0 30 0>,	/* A6 */
			   <16 0 &gpio0 31 0>,	/* A7 (VBAT ADC) */
			   <17 0 &gpio0 11 0>,	/* P0.11 */
			   <18 0 &gpio0 7 0>,	/* P0.07 */
			   <19 0 &gpio0 15 0>,	/* P0.15 */
			   <20 0 &gpio0 16 0>;	/* P0.16 */
	};
};

feather_serial: &uart0 {};
feather_i2c: &i2c0 {};
