/*
 * 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 4 0>,	/* A0 */
			   <1 0 &gpio0 5 0>,	/* A1 */
			   <2 0 &gpio0 30 0>,	/* A2 */
			   <3 0 &gpio0 28 0>,	/* A3 */
			   <4 0 &gpio0 2 0>,	/* A4 */
			   <5 0 &gpio0 3 0>,	/* A5 */
			   <6 0 &gpio0 14 0>,	/* SCK */
			   <7 0 &gpio0 13 0>,	/* MOSI */
			   <8 0 &gpio0 15 0>,	/* MISO */
			   <9 0 &gpio0 24 0>,	/* RXD */
			   <10 0 &gpio0 25 0>,	/* TXD */
			   <11 0 &gpio0 10 0>,	/* D2 (NFC2) */
			   <12 0 &gpio0 12 0>,	/* SDA */
			   <13 0 &gpio0 11 0>,	/* SCL */
			   <14 0 &gpio1 8 0>,	/* D5 */
			   <15 0 &gpio0 7 0>,	/* D6 */
			   <16 0 &gpio0 26 0>,	/* D9 */
			   <17 0 &gpio0 27 0>,	/* D10 */
			   <18 0 &gpio0 6 0>,	/* D11 */
			   <19 0 &gpio0 8 0>,	/* D12 */
			   <20 0 &gpio1 9 0>;	/* D13 */
	};
};

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