gpio/omap: debounce remove SoC specific registers, use pdata
Use register offsets passed in from pdata for accessing debounce registers. Signed-off-by: Kevin Hilman <khilman@ti.com>
This commit is contained in:
@@ -81,6 +81,8 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
|
|||||||
pdata->regs->irqenable = OMAP24XX_GPIO_IRQENABLE1;
|
pdata->regs->irqenable = OMAP24XX_GPIO_IRQENABLE1;
|
||||||
pdata->regs->set_irqenable = OMAP24XX_GPIO_SETIRQENABLE1;
|
pdata->regs->set_irqenable = OMAP24XX_GPIO_SETIRQENABLE1;
|
||||||
pdata->regs->clr_irqenable = OMAP24XX_GPIO_CLEARIRQENABLE1;
|
pdata->regs->clr_irqenable = OMAP24XX_GPIO_CLEARIRQENABLE1;
|
||||||
|
pdata->regs->debounce = OMAP24XX_GPIO_DEBOUNCE_VAL;
|
||||||
|
pdata->regs->debounce_en = OMAP24XX_GPIO_DEBOUNCE_EN;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
pdata->bank_type = METHOD_GPIO_44XX;
|
pdata->bank_type = METHOD_GPIO_44XX;
|
||||||
@@ -94,6 +96,8 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
|
|||||||
pdata->regs->irqenable = OMAP4_GPIO_IRQSTATUSSET0;
|
pdata->regs->irqenable = OMAP4_GPIO_IRQSTATUSSET0;
|
||||||
pdata->regs->set_irqenable = OMAP4_GPIO_IRQSTATUSSET0;
|
pdata->regs->set_irqenable = OMAP4_GPIO_IRQSTATUSSET0;
|
||||||
pdata->regs->clr_irqenable = OMAP4_GPIO_IRQSTATUSCLR0;
|
pdata->regs->clr_irqenable = OMAP4_GPIO_IRQSTATUSCLR0;
|
||||||
|
pdata->regs->debounce = OMAP4_GPIO_DEBOUNCINGTIME;
|
||||||
|
pdata->regs->debounce_en = OMAP4_GPIO_DEBOUNCENABLE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
WARN(1, "Invalid gpio bank_type\n");
|
WARN(1, "Invalid gpio bank_type\n");
|
||||||
|
@@ -185,6 +185,8 @@ struct omap_gpio_reg_offs {
|
|||||||
u16 irqenable;
|
u16 irqenable;
|
||||||
u16 set_irqenable;
|
u16 set_irqenable;
|
||||||
u16 clr_irqenable;
|
u16 clr_irqenable;
|
||||||
|
u16 debounce;
|
||||||
|
u16 debounce_en;
|
||||||
|
|
||||||
bool irqenable_inv;
|
bool irqenable_inv;
|
||||||
};
|
};
|
||||||
|
@@ -168,7 +168,7 @@ do { \
|
|||||||
static void _set_gpio_debounce(struct gpio_bank *bank, unsigned gpio,
|
static void _set_gpio_debounce(struct gpio_bank *bank, unsigned gpio,
|
||||||
unsigned debounce)
|
unsigned debounce)
|
||||||
{
|
{
|
||||||
void __iomem *reg = bank->base;
|
void __iomem *reg;
|
||||||
u32 val;
|
u32 val;
|
||||||
u32 l;
|
u32 l;
|
||||||
|
|
||||||
@@ -184,19 +184,10 @@ static void _set_gpio_debounce(struct gpio_bank *bank, unsigned gpio,
|
|||||||
|
|
||||||
l = GPIO_BIT(bank, gpio);
|
l = GPIO_BIT(bank, gpio);
|
||||||
|
|
||||||
if (bank->method == METHOD_GPIO_44XX)
|
reg = bank->base + bank->regs->debounce;
|
||||||
reg += OMAP4_GPIO_DEBOUNCINGTIME;
|
|
||||||
else
|
|
||||||
reg += OMAP24XX_GPIO_DEBOUNCE_VAL;
|
|
||||||
|
|
||||||
__raw_writel(debounce, reg);
|
__raw_writel(debounce, reg);
|
||||||
|
|
||||||
reg = bank->base;
|
reg = bank->base + bank->regs->debounce_en;
|
||||||
if (bank->method == METHOD_GPIO_44XX)
|
|
||||||
reg += OMAP4_GPIO_DEBOUNCENABLE;
|
|
||||||
else
|
|
||||||
reg += OMAP24XX_GPIO_DEBOUNCE_EN;
|
|
||||||
|
|
||||||
val = __raw_readl(reg);
|
val = __raw_readl(reg);
|
||||||
|
|
||||||
if (debounce) {
|
if (debounce) {
|
||||||
|
Reference in New Issue
Block a user