forked from Minki/linux
gpio: samsung: Fix input mode setting function for GPIO int
This patch makes GPIO pin to INTERRUPT mode or INPUT mode according to bitmap_gpio_int. When the related bit of bitmap_gpio_int is set, it makes GPIO pin to INTERRUPT mode instrad of INPUT mode in the samsung_gpiolib_4bit_input function. Signed-off-by: Eunki Kim <eunki_kim@samsung.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
This commit is contained in:
parent
453e2dd768
commit
2b88ff4a75
@ -596,7 +596,10 @@ static int samsung_gpiolib_4bit_input(struct gpio_chip *chip,
|
||||
unsigned long con;
|
||||
|
||||
con = __raw_readl(base + GPIOCON_OFF);
|
||||
con &= ~(0xf << con_4bit_shift(offset));
|
||||
if (ourchip->bitmap_gpio_int & BIT(offset))
|
||||
con |= 0xf << con_4bit_shift(offset);
|
||||
else
|
||||
con &= ~(0xf << con_4bit_shift(offset));
|
||||
__raw_writel(con, base + GPIOCON_OFF);
|
||||
|
||||
gpio_dbg("%s: %p: CON now %08lx\n", __func__, base, con);
|
||||
@ -1081,6 +1084,8 @@ static void __init samsung_gpiolib_add_4bit_chips(struct samsung_gpio_chip *chip
|
||||
if ((base != NULL) && (chip->base == NULL))
|
||||
chip->base = base + ((i) * 0x20);
|
||||
|
||||
chip->bitmap_gpio_int = 0;
|
||||
|
||||
samsung_gpiolib_add(chip);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user