/*
    ...
 * Copyright (C) 2014 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 "diamond3-common.dtsi"

/ {
	model = "NestLabs D3 EVT Board";
	compatible = "nestlabs,diamond3-evt", "fsl,imx6sx";
};

&iomuxc {
	lcdif1 {
		/* Set weak pullups on all LCD data pins */
		pinctrl_lcdif_dat_1: lcdifdatgrp-1 {
			fsl,pins = <
				MX6SX_PAD_LCD1_DATA00__LCDIF1_DATA_0 0x4001b040
				MX6SX_PAD_LCD1_DATA01__LCDIF1_DATA_1 0x4001b040
				MX6SX_PAD_LCD1_DATA02__LCDIF1_DATA_2 0x4001b040
				MX6SX_PAD_LCD1_DATA03__LCDIF1_DATA_3 0x4001b040
				MX6SX_PAD_LCD1_DATA04__LCDIF1_DATA_4 0x4001b040
				MX6SX_PAD_LCD1_DATA05__LCDIF1_DATA_5 0x4001b040
				MX6SX_PAD_LCD1_DATA06__LCDIF1_DATA_6 0x4001b040
				MX6SX_PAD_LCD1_DATA07__LCDIF1_DATA_7 0x4001b040
				MX6SX_PAD_LCD1_DATA08__LCDIF1_DATA_8 0x4001b040
				MX6SX_PAD_LCD1_DATA09__LCDIF1_DATA_9 0x4001b040
				MX6SX_PAD_LCD1_DATA10__LCDIF1_DATA_10 0x4001b040
				MX6SX_PAD_LCD1_DATA11__LCDIF1_DATA_11 0x4001b040
				MX6SX_PAD_LCD1_DATA12__LCDIF1_DATA_12 0x4001b040
				MX6SX_PAD_LCD1_DATA13__LCDIF1_DATA_13 0x4001b040
				MX6SX_PAD_LCD1_DATA14__LCDIF1_DATA_14 0x4001b040
				MX6SX_PAD_LCD1_DATA15__LCDIF1_DATA_15 0x4001b040
				MX6SX_PAD_LCD1_DATA16__LCDIF1_DATA_16 0x4001b040
				MX6SX_PAD_LCD1_DATA17__LCDIF1_DATA_17 0x4001b040
				MX6SX_PAD_LCD1_DATA18__LCDIF1_DATA_18 0x4001b040
				MX6SX_PAD_LCD1_DATA19__LCDIF1_DATA_19 0x4001b040
				MX6SX_PAD_LCD1_DATA20__LCDIF1_DATA_20 0x4001b040
				MX6SX_PAD_LCD1_DATA21__LCDIF1_DATA_21 0x4001b040
				MX6SX_PAD_LCD1_DATA22__LCDIF1_DATA_22 0x4001b040
				MX6SX_PAD_LCD1_DATA23__LCDIF1_DATA_23 0x4001b040
			>;
		};

		/* Set weak pullups on all LCD control pins */
		pinctrl_lcdif_ctrl_1: lcdifctrlgrp-1 {
			fsl,pins = <
				MX6SX_PAD_LCD1_CLK__LCDIF1_CLK	0x4001b040
				MX6SX_PAD_LCD1_ENABLE__LCDIF1_ENABLE 0x4001b040
				MX6SX_PAD_LCD1_VSYNC__LCDIF1_VSYNC 0x4001b040
				MX6SX_PAD_LCD1_HSYNC__LCDIF1_HSYNC 0x4001b040
				MX6SX_PAD_LCD1_RESET__GPIO3_IO_27 0x1b040
			>;
		};
	};
};
