Merge tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC driver specific changes from Olof Johansson: "A collection of mostly SoC-specific driver updates: - a handful of pincontrol and setup changes - new drivers for hwmon and reset controller for vexpress - timing support updates for OMAP (gpmc and other interfaces) - plus a collection of smaller cleanups" * tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (21 commits) ARM: ux500: fix pin warning ARM: OMAP2+: tusb6010: generic timing calculation ARM: OMAP2+: smc91x: generic timing calculation ARM: OMAP2+: onenand: generic timing calculation ARM: OMAP2+: gpmc: generic timing calculation ARM: OMAP2+: gpmc: handle additional timings ARM: OMAP2+: nand: remove redundant rounding gpio: samsung: use pr_* instead of printk ARM: ux500: fixup magnetometer pins ARM: ux500: add STM pin configuration ARM: ux500: 8500: add pinctrl support for uart1 and uart2 ARM: ux500: cosmetic fixups for uart0 gpio: samsung: Fix input mode setting function for GPIO int ARM: SAMSUNG: Insert bitmap_gpio_int member in samsung_gpio_chip ARM: ux500: 8500: define SDI sleep states ARM: vexpress: Reset driver ARM: ux500: 8500: update SKE keypad pinctrl table hwmon: Versatile Express hwmon driver ARM: ux500: delete duplicate macro ARM: ux500: 8500: add IDLE pin configuration for SPI ...
This commit is contained in:
@@ -42,12 +42,6 @@
|
||||
#include <plat/gpio-fns.h>
|
||||
#include <plat/pm.h>
|
||||
|
||||
#ifndef DEBUG_GPIO
|
||||
#define gpio_dbg(x...) do { } while (0)
|
||||
#else
|
||||
#define gpio_dbg(x...) printk(KERN_DEBUG x)
|
||||
#endif
|
||||
|
||||
int samsung_gpio_setpull_updown(struct samsung_gpio_chip *chip,
|
||||
unsigned int off, samsung_gpio_pull_t pull)
|
||||
{
|
||||
@@ -596,10 +590,13 @@ 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);
|
||||
pr_debug("%s: %p: CON now %08lx\n", __func__, base, con);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -627,7 +624,7 @@ static int samsung_gpiolib_4bit_output(struct gpio_chip *chip,
|
||||
__raw_writel(con, base + GPIOCON_OFF);
|
||||
__raw_writel(dat, base + GPIODAT_OFF);
|
||||
|
||||
gpio_dbg("%s: %p: CON %08lx, DAT %08lx\n", __func__, base, con, dat);
|
||||
pr_debug("%s: %p: CON %08lx, DAT %08lx\n", __func__, base, con, dat);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -671,7 +668,7 @@ static int samsung_gpiolib_4bit2_input(struct gpio_chip *chip,
|
||||
con &= ~(0xf << con_4bit_shift(offset));
|
||||
__raw_writel(con, regcon);
|
||||
|
||||
gpio_dbg("%s: %p: CON %08lx\n", __func__, base, con);
|
||||
pr_debug("%s: %p: CON %08lx\n", __func__, base, con);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -706,7 +703,7 @@ static int samsung_gpiolib_4bit2_output(struct gpio_chip *chip,
|
||||
__raw_writel(con, regcon);
|
||||
__raw_writel(dat, base + GPIODAT_OFF);
|
||||
|
||||
gpio_dbg("%s: %p: CON %08lx, DAT %08lx\n", __func__, base, con, dat);
|
||||
pr_debug("%s: %p: CON %08lx, DAT %08lx\n", __func__, base, con, dat);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -926,10 +923,10 @@ static void __init samsung_gpiolib_add(struct samsung_gpio_chip *chip)
|
||||
#ifdef CONFIG_PM
|
||||
if (chip->pm != NULL) {
|
||||
if (!chip->pm->save || !chip->pm->resume)
|
||||
printk(KERN_ERR "gpio: %s has missing PM functions\n",
|
||||
pr_err("gpio: %s has missing PM functions\n",
|
||||
gc->label);
|
||||
} else
|
||||
printk(KERN_ERR "gpio: %s has no PM function\n", gc->label);
|
||||
pr_err("gpio: %s has no PM function\n", gc->label);
|
||||
#endif
|
||||
|
||||
/* gpiochip_add() prints own failure message on error. */
|
||||
@@ -1081,6 +1078,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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user