/*
 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
 *
 * 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.
 */

&twl {
	/*
	 * On most OMAP4 platforms, the twl6030 IRQ line is connected
	 * to the SYS_NIRQ1 line on OMAP and the twl6030 MSECURE line is
	 * connected to the fref_clk0_out.sys_drm_msecure line.
	 * Therefore, configure the defaults for the SYS_NIRQ1 and
	 * fref_clk0_out.sys_drm_msecure pins here.
	 */
	pinctrl-names = "default";
	pinctrl-0 = <
		&twl6030_pins
		&twl6030_wkup_pins
	>;
};

&omap4_pmx_wkup {
	twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
		pinctrl-single,pins = <
			OMAP4_IOPAD(0x054, PIN_OUTPUT | MUX_MODE2)		/* fref_clk0_out.sys_drm_msecure */
		>;
	};
};

&omap4_pmx_core {
	twl6030_pins: pinmux_twl6030_pins {
		pinctrl-single,pins = <
			OMAP4_IOPAD(0x19e, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0)	/* sys_nirq1.sys_nirq1 */
		>;
	};
};
