/*
 * Copyright (C) 2015 Nest Labs, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#include "flintstone-evt1-mlb.dtsi"

/ {
	model = "NestLabs Flintstone EVT Board (FCT)";
	compatible = "nestlabs,flintstone-evt1", "fsl,imx6sx";
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&mlb_hogs &fct_hogs>;

	hog {
		fct_hogs: fct-hogs {
			fsl,pins = <
				MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9	0x000000b0	/* opt3001 interrupt */

				MX6SX_PAD_QSPI1A_DATA3__GPIO4_IO_19	0x000000b0	/* led enable - ring */
				MX6SX_PAD_SD3_DATA0__GPIO7_IO_2		0x004000b0	/* led enable - keypad and info */

				MX6SX_PAD_QSPI1A_DATA2__GPIO4_IO_18	0x000000b0	/* led trigger - ring */
				MX6SX_PAD_SD3_CMD__GPIO7_IO_1		0x004000b0	/* led trigger - keypad */
				MX6SX_PAD_SD3_DATA2__GPIO7_IO_4		0x004000b0	/* led trigger - info */

				MX6SX_PAD_SD4_DATA2__GPIO6_IO_16	0x000000b0	/* AIR mcu reset */
				MX6SX_PAD_SD4_DATA6__GPIO6_IO_20	0x000000b0	/* AIR mcu boot0 */
				MX6SX_PAD_SD4_DATA0__GPIO6_IO_14	0x000000b0	/* for ecspi2 */

				MX6SX_PAD_RGMII1_RXC__GPIO5_IO_5	0x000000b0	/* NFC OOB: interrupt from NFC */
				MX6SX_PAD_GPIO1_IO10__GPIO1_IO_10	0x000000b0	/* NFC OOB: firmware download */
				MX6SX_PAD_GPIO1_IO11__GPIO1_IO_11	0x000000b0	/* NFC OOB: enable */

				MX6SX_PAD_SD4_CMD__GPIO6_IO_13		0x000000b0	/* ecspi2 mosi */
				MX6SX_PAD_SD4_CLK__GPIO6_IO_12		0x000000b0	/* ecspi2 miso */
				MX6SX_PAD_SD4_DATA1__GPIO6_IO_15	0x000000b0	/* ecspi2 sclk */

				MX6SX_PAD_QSPI1B_DATA2__GPIO4_IO_26	0x000000b0	/* i2c2 sda */
				MX6SX_PAD_QSPI1B_DATA3__GPIO4_IO_27	0x000000b0	/* i2c2 scl */

				MX6SX_PAD_SD4_DATA4__GPIO6_IO_18	0x000000b0	/* uart 5 */
				MX6SX_PAD_SD4_DATA5__GPIO6_IO_19	0x000000b0	/* uart 5 */

				MX6SX_PAD_KEY_COL0__GPIO2_IO_10		0x000000b0
				MX6SX_PAD_KEY_COL1__GPIO2_IO_11		0x000000b0
				MX6SX_PAD_KEY_COL2__GPIO2_IO_12		0x000000b0
				MX6SX_PAD_KEY_COL3__GPIO2_IO_13		0x000000b0
				MX6SX_PAD_KEY_ROW0__GPIO2_IO_15		0x000000b0
				MX6SX_PAD_KEY_ROW1__GPIO2_IO_16		0x000000b0
				MX6SX_PAD_KEY_ROW2__GPIO2_IO_17		0x000000b0
				MX6SX_PAD_KEY_ROW3__GPIO2_IO_18		0x000000b0
			>;
		};
	};
};
