diff options
Diffstat (limited to 'drivers/gpio/gpio-tps6586x.c')
| -rw-r--r-- | drivers/gpio/gpio-tps6586x.c | 15 | 
1 files changed, 12 insertions, 3 deletions
| diff --git a/drivers/gpio/gpio-tps6586x.c b/drivers/gpio/gpio-tps6586x.c index 2526b3bb0fae..29e8e750bd49 100644 --- a/drivers/gpio/gpio-tps6586x.c +++ b/drivers/gpio/gpio-tps6586x.c @@ -80,7 +80,15 @@ static int tps6586x_gpio_output(struct gpio_chip *gc, unsigned offset,  				val, mask);  } -static int __devinit tps6586x_gpio_probe(struct platform_device *pdev) +static int tps6586x_gpio_to_irq(struct gpio_chip *gc, unsigned offset) +{ +	struct tps6586x_gpio *tps6586x_gpio = to_tps6586x_gpio(gc); + +	return tps6586x_irq_get_virq(tps6586x_gpio->parent, +				TPS6586X_INT_PLDO_0 + offset); +} + +static int tps6586x_gpio_probe(struct platform_device *pdev)  {  	struct tps6586x_platform_data *pdata;  	struct tps6586x_gpio *tps6586x_gpio; @@ -106,6 +114,7 @@ static int __devinit tps6586x_gpio_probe(struct platform_device *pdev)  	tps6586x_gpio->gpio_chip.direction_output = tps6586x_gpio_output;  	tps6586x_gpio->gpio_chip.set	= tps6586x_gpio_set;  	tps6586x_gpio->gpio_chip.get	= tps6586x_gpio_get; +	tps6586x_gpio->gpio_chip.to_irq	= tps6586x_gpio_to_irq;  #ifdef CONFIG_OF_GPIO  	tps6586x_gpio->gpio_chip.of_node = pdev->dev.parent->of_node; @@ -126,7 +135,7 @@ static int __devinit tps6586x_gpio_probe(struct platform_device *pdev)  	return ret;  } -static int __devexit tps6586x_gpio_remove(struct platform_device *pdev) +static int tps6586x_gpio_remove(struct platform_device *pdev)  {  	struct tps6586x_gpio *tps6586x_gpio = platform_get_drvdata(pdev); @@ -137,7 +146,7 @@ static struct platform_driver tps6586x_gpio_driver = {  	.driver.name	= "tps6586x-gpio",  	.driver.owner	= THIS_MODULE,  	.probe		= tps6586x_gpio_probe, -	.remove		= __devexit_p(tps6586x_gpio_remove), +	.remove		= tps6586x_gpio_remove,  };  static int __init tps6586x_gpio_init(void) |