static void enable_board_wakeup_source(void)
{
	int gpio_val;
	/* Android does not have touchscreen as wakeup source */
#if !defined(CONFIG_ANDROID)
	gpio_val = omap_mux_get_gpio(OMAP4_TOUCH_IRQ_1);
	if ((gpio_val & OMAP44XX_PADCONF_WAKEUPENABLE0) == 0) {
		gpio_val |= OMAP44XX_PADCONF_WAKEUPENABLE0;
		omap_mux_set_gpio(gpio_val, OMAP4_TOUCH_IRQ_1);
	}

#endif
	gpio_val = omap_mux_get_gpio(32);

	if ((gpio_val & OMAP44XX_PADCONF_WAKEUPENABLE0) == 0) {
		gpio_val |= OMAP44XX_PADCONF_WAKEUPENABLE0;
		omap_mux_set_gpio(gpio_val, 32);
	}

	gpio_val = omap_mux_get_gpio(29);

	if ((gpio_val & OMAP44XX_PADCONF_WAKEUPENABLE0) == 0) {
		gpio_val |= OMAP44XX_PADCONF_WAKEUPENABLE0;
		omap_mux_set_gpio(gpio_val, 29);
	}

	/*
	 * Enable IO daisy for sys_nirq1/2, to be able to
	 * wakeup from interrupts from PMIC/Audio IC.
	 * Needed only in Device OFF mode.
	 */
	omap_mux_enable_wakeup("sys_nirq1");
}
static void omap_sfh7741prox_init(void)
{
    int  error;
    struct omap_mux *prox_gpio_mux;
    bool wake_enable;

    error = gpio_request(OMAP4_SFH7741_SENSOR_OUTPUT_GPIO, "sfh7741");
    if (error < 0) {
        pr_err("%s: GPIO configuration failed: GPIO %d, error %d\n"
               , __func__, OMAP4_SFH7741_SENSOR_OUTPUT_GPIO, error);
        return ;
    }

    error = gpio_direction_input(OMAP4_SFH7741_SENSOR_OUTPUT_GPIO);
    if (error < 0) {
        pr_err("Proximity GPIO input configuration failed\n");
        goto fail1;
    }

    error = gpio_request(OMAP4_SFH7741_ENABLE_GPIO, "sfh7741");
    if (error < 0) {
        pr_err("failed to request GPIO %d, error %d\n",
               OMAP4_SFH7741_ENABLE_GPIO, error);
        goto fail1;
    }

    error = gpio_direction_output(OMAP4_SFH7741_ENABLE_GPIO , 0);
    if (error < 0) {
        pr_err("%s: GPIO configuration failed: GPIO %d,	error %d\n",
               __func__, OMAP4_SFH7741_ENABLE_GPIO, error);
        goto fail3;
    }

    prox_gpio_mux = omap_mux_get_gpio(OMAP4_SFH7741_SENSOR_OUTPUT_GPIO);
    wake_enable = omap_mux_get_wakeupenable(prox_gpio_mux);
    if (!wake_enable)
        omap_mux_set_wakeupenable(prox_gpio_mux);

    return;

fail3:
    gpio_free(OMAP4_SFH7741_ENABLE_GPIO);
fail1:
    gpio_free(OMAP4_SFH7741_SENSOR_OUTPUT_GPIO);
}