* published by the Free Software Foundation.
*/
#include <linux/err.h>
+#include <linux/io.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/interrupt.h>
#include <asm/hardware.h>
#include <asm/arch/mmc.h>
#include <asm/arch/board.h>
-#include <asm/io.h>
#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
#define TWL_GPIO_ISR1A 0x19
#define LDO_CLR 0x00
#define VSEL_S2_CLR 0x40
-#define GPIO_0_BIT_POS 1 << 0
+#define GPIO_0_BIT_POS (1 << 0)
#define MMC1_CD_IRQ 0
#define MMC2_CD_IRQ 1
* Configure TWL4030 GPIO parameters for MMC hotplug irq
*/
ret = twl4030_request_gpio(MMC1_CD_IRQ);
- if (ret != 0)
+ if (ret)
goto err;
ret = twl4030_set_gpio_edge_ctrl(MMC1_CD_IRQ,
TWL4030_GPIO_EDGE_RISING | TWL4030_GPIO_EDGE_FALLING);
- if (ret != 0)
+ if (ret)
goto err;
ret = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0x02,
TWL_GPIO_PUPDCTR1);
- if (ret != 0)
+ if (ret)
goto err;
ret = twl4030_set_gpio_debounce(MMC1_CD_IRQ, TWL4030_GPIO_IS_ENABLE);
- if (ret != 0)
+ if (ret)
goto err;
return ret;
+
err:
dev_err(dev, "Failed to configure TWL4030 GPIO IRQ\n");
-
return ret;
}
int ret = 0;
ret = twl4030_free_gpio(MMC1_CD_IRQ);
- if (ret != 0)
+ if (ret)
dev_err(dev, "Failed to configure TWL4030 GPIO IRQ\n");
}
u8 reg = 0, ret = 0;
ret = twl4030_i2c_read_u8(TWL4030_MODULE_GPIO, ®, TWL_GPIO_IMR1A);
- if (ret != 0)
+ if (ret)
goto err;
reg = (mask == 1) ? (reg | GPIO_0_BIT_POS) : (reg & ~GPIO_0_BIT_POS);
ret = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, reg, TWL_GPIO_IMR1A);
- if (ret != 0)
+ if (ret)
goto err;
ret = twl4030_i2c_read_u8(TWL4030_MODULE_GPIO, ®, TWL_GPIO_ISR1A);
- if (ret != 0)
+ if (ret)
goto err;
reg = (mask == 1) ? (reg | GPIO_0_BIT_POS) : (reg & ~GPIO_0_BIT_POS);
ret = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, reg, TWL_GPIO_ISR1A);
- if (ret != 0)
+ if (ret)
goto err;
+
err:
return ret;
}
#define OMAP2_CONTROL_PBIAS 0x48002520
#endif
- if (power_on == 1) {
+ if (power_on) {
if (cpu_is_omap24xx())
devconf = omap_readl(0x490022E8);
else
ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
P1_DEV_GRP, VMMC1_DEV_GRP);
- if (ret != 0)
+ if (ret)
goto err;
ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
vdd_sel, VMMC1_DEDICATED);
- if (ret != 0)
+ if (ret)
goto err;
msleep(100);
return ret;
- } else if (power_on == 0) {
+ } else {
/* Power OFF */
/* For MMC1, Toggle PBIAS before every power up sequence */
OMAP2_CONTROL_PBIAS);
ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
LDO_CLR, VMMC1_DEV_GRP);
- if (ret != 0)
+ if (ret)
goto err;
ret = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
VSEL_S2_CLR, VMMC1_DEDICATED);
- if (ret != 0)
+ if (ret)
goto err;
/* 100ms delay required for PBIAS configuration */
msleep(100);
omap_writel(omap_readl(OMAP2_CONTROL_PBIAS) | 0x7,
OMAP2_CONTROL_PBIAS);
- } else {
- ret = -1;
- goto err;
}
return 0;
+
err:
return 1;
}