/*
 * Copyright (C) 2015 Ash Charles, Gumstix 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.
 */

/*
 * Palo35 expansion board is manufactured by Gumstix Inc.
 */

/dts-v1/;

#include "omap3-overo.dtsi"
#include "omap3-overo-palo35-common.dtsi"

/ {
	model = "OMAP35xx Gumstix Overo on Palo35";
	compatible = "gumstix,omap3-overo-palo35", "gumstix,omap3-overo", "ti,omap3430", "ti,omap3";
};

&omap3_pmx_core2 {
	led_pins: pinmux_led_pins {
		pinctrl-single,pins = <
			OMAP3430_CORE2_IOPAD(0x25ea, PIN_OUTPUT | MUX_MODE4)	/* etk_d7.gpio_21 */
			OMAP3430_CORE2_IOPAD(0x25ec, PIN_OUTPUT | MUX_MODE4)	/* etk_d8.gpio_22 */
		>;
	};

	button_pins: pinmux_button_pins {
		pinctrl-single,pins = <
			OMAP3430_CORE2_IOPAD(0x25ee, PIN_INPUT | MUX_MODE4)	/* etk_d9.gpio_23 */
			OMAP3430_CORE2_IOPAD(0x25dc, PIN_INPUT | MUX_MODE4)	/* etk_d0.gpio_14 */
		>;
	};
};
