/*
 * Copyright (C) 2013 Freescale Semiconductor, 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.
 */

/dts-v1/;

#include "imx6dl.dtsi"
#include "imx6qdl-sabresd.dtsi"

/ {
	model = "Freescale i.MX6 DualLite SABRE Smart Device Board";
	compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl";
};

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

	hog {
		pinctrl_hog: hoggrp {
			fsl,pins = <
				MX6DL_PAD_GPIO_4__GPIO1_IO04   0x80000000
				MX6DL_PAD_GPIO_5__GPIO1_IO05   0x80000000
				MX6DL_PAD_NANDF_D0__GPIO2_IO00 0x80000000
				MX6DL_PAD_NANDF_D1__GPIO2_IO01 0x80000000
				MX6DL_PAD_NANDF_D2__GPIO2_IO02 0x80000000
				MX6DL_PAD_NANDF_D3__GPIO2_IO03 0x80000000
			>;
		};
	};
};
