ARM: 5731/2: Fix U300 generic GPIO, remove ifdefs from MMCI v3
The #ifdefs in the MMCI driver were erroneous and just masking a bug in the U300 generic GPIO implementation. This removes the ifdefs and fixes the U300 generic GPIO instead. Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
aa45ee8fc0
commit
ee17962e24
@ -281,6 +281,16 @@ int gpio_unregister_callback(unsigned gpio)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(gpio_unregister_callback);
|
EXPORT_SYMBOL(gpio_unregister_callback);
|
||||||
|
|
||||||
|
/* Non-zero means valid */
|
||||||
|
int gpio_is_valid(int number)
|
||||||
|
{
|
||||||
|
if (number >= 0 &&
|
||||||
|
number < (U300_GPIO_NUM_PORTS * U300_GPIO_PINS_PER_PORT))
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(gpio_is_valid);
|
||||||
|
|
||||||
int gpio_request(unsigned gpio, const char *label)
|
int gpio_request(unsigned gpio, const char *label)
|
||||||
{
|
{
|
||||||
if (gpio_pin[gpio].users)
|
if (gpio_pin[gpio].users)
|
||||||
|
@ -258,6 +258,7 @@
|
|||||||
#define PIN_TO_PORT(val) (val >> 3)
|
#define PIN_TO_PORT(val) (val >> 3)
|
||||||
|
|
||||||
/* These can be found in arch/arm/mach-u300/gpio.c */
|
/* These can be found in arch/arm/mach-u300/gpio.c */
|
||||||
|
extern int gpio_is_valid(int number);
|
||||||
extern int gpio_request(unsigned gpio, const char *label);
|
extern int gpio_request(unsigned gpio, const char *label);
|
||||||
extern void gpio_free(unsigned gpio);
|
extern void gpio_free(unsigned gpio);
|
||||||
extern int gpio_direction_input(unsigned gpio);
|
extern int gpio_direction_input(unsigned gpio);
|
||||||
|
@ -678,7 +678,6 @@ static int __devinit mmci_probe(struct amba_device *dev, struct amba_id *id)
|
|||||||
writel(0, host->base + MMCIMASK1);
|
writel(0, host->base + MMCIMASK1);
|
||||||
writel(0xfff, host->base + MMCICLEAR);
|
writel(0xfff, host->base + MMCICLEAR);
|
||||||
|
|
||||||
#ifdef CONFIG_GPIOLIB
|
|
||||||
if (gpio_is_valid(plat->gpio_cd)) {
|
if (gpio_is_valid(plat->gpio_cd)) {
|
||||||
ret = gpio_request(plat->gpio_cd, DRIVER_NAME " (cd)");
|
ret = gpio_request(plat->gpio_cd, DRIVER_NAME " (cd)");
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
@ -697,7 +696,6 @@ static int __devinit mmci_probe(struct amba_device *dev, struct amba_id *id)
|
|||||||
else if (ret != -ENOSYS)
|
else if (ret != -ENOSYS)
|
||||||
goto err_gpio_wp;
|
goto err_gpio_wp;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = request_irq(dev->irq[0], mmci_irq, IRQF_SHARED, DRIVER_NAME " (cmd)", host);
|
ret = request_irq(dev->irq[0], mmci_irq, IRQF_SHARED, DRIVER_NAME " (cmd)", host);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
Loading…
Reference in New Issue
Block a user