From 8283c4ff57bdf3c1d8985c86e4ef44e1bb70f1f6 Mon Sep 17 00:00:00 2001 From: Bill Pemberton Date: Mon, 19 Nov 2012 13:20:08 -0500 Subject: gpio: remove use of __devexit_p CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer needed. Signed-off-by: Bill Pemberton Cc: Grant Likely Cc: Peter Tyser Acked-by: Linus Walleij Acked-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- drivers/gpio/gpio-stmpe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/gpio/gpio-stmpe.c') diff --git a/drivers/gpio/gpio-stmpe.c b/drivers/gpio/gpio-stmpe.c index dce34727bbf8..821392d22137 100644 --- a/drivers/gpio/gpio-stmpe.c +++ b/drivers/gpio/gpio-stmpe.c @@ -412,7 +412,7 @@ static struct platform_driver stmpe_gpio_driver = { .driver.name = "stmpe-gpio", .driver.owner = THIS_MODULE, .probe = stmpe_gpio_probe, - .remove = __devexit_p(stmpe_gpio_remove), + .remove = stmpe_gpio_remove, }; static int __init stmpe_gpio_init(void) -- cgit v1.2.3 From 3836309d93462bbf34851c078be6e5e77d888e3d Mon Sep 17 00:00:00 2001 From: Bill Pemberton Date: Mon, 19 Nov 2012 13:22:34 -0500 Subject: gpio: remove use of __devinit CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: Bill Pemberton Cc: Grant Likely Cc: Peter Tyser Cc: Santosh Shilimkar Cc: Kevin Hilman Acked-by: Linus Walleij Acked-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- drivers/gpio/gpio-74x164.c | 2 +- drivers/gpio/gpio-ab8500.c | 2 +- drivers/gpio/gpio-adnp.c | 2 +- drivers/gpio/gpio-adp5520.c | 2 +- drivers/gpio/gpio-adp5588.c | 2 +- drivers/gpio/gpio-arizona.c | 2 +- drivers/gpio/gpio-cs5535.c | 2 +- drivers/gpio/gpio-da9052.c | 2 +- drivers/gpio/gpio-em.c | 2 +- drivers/gpio/gpio-ep93xx.c | 2 +- drivers/gpio/gpio-generic.c | 2 +- drivers/gpio/gpio-ich.c | 6 +++--- drivers/gpio/gpio-janz-ttl.c | 6 +++--- drivers/gpio/gpio-langwell.c | 4 ++-- drivers/gpio/gpio-lpc32xx.c | 2 +- drivers/gpio/gpio-max7300.c | 2 +- drivers/gpio/gpio-max7301.c | 2 +- drivers/gpio/gpio-max730x.c | 2 +- drivers/gpio/gpio-max732x.c | 4 ++-- drivers/gpio/gpio-mc33880.c | 2 +- drivers/gpio/gpio-mcp23s08.c | 2 +- drivers/gpio/gpio-ml-ioh.c | 4 ++-- drivers/gpio/gpio-mpc5200.c | 4 ++-- drivers/gpio/gpio-msic.c | 2 +- drivers/gpio/gpio-msm-v2.c | 2 +- drivers/gpio/gpio-mvebu.c | 2 +- drivers/gpio/gpio-mxc.c | 4 ++-- drivers/gpio/gpio-mxs.c | 2 +- drivers/gpio/gpio-omap.c | 6 +++--- drivers/gpio/gpio-pca953x.c | 6 +++--- drivers/gpio/gpio-pch.c | 4 ++-- drivers/gpio/gpio-pxa.c | 6 +++--- drivers/gpio/gpio-rc5t583.c | 2 +- drivers/gpio/gpio-rdc321x.c | 2 +- drivers/gpio/gpio-sch.c | 2 +- drivers/gpio/gpio-sodaville.c | 4 ++-- drivers/gpio/gpio-sta2x11.c | 4 ++-- drivers/gpio/gpio-stmpe.c | 4 ++-- drivers/gpio/gpio-stp-xway.c | 2 +- drivers/gpio/gpio-sx150x.c | 2 +- drivers/gpio/gpio-tc3589x.c | 2 +- drivers/gpio/gpio-tegra.c | 2 +- drivers/gpio/gpio-timberdale.c | 2 +- drivers/gpio/gpio-tps6586x.c | 2 +- drivers/gpio/gpio-tps65910.c | 2 +- drivers/gpio/gpio-tps65912.c | 2 +- drivers/gpio/gpio-twl4030.c | 6 +++--- drivers/gpio/gpio-twl6040.c | 2 +- drivers/gpio/gpio-vr41xx.c | 2 +- drivers/gpio/gpio-vt8500.c | 2 +- drivers/gpio/gpio-vx855.c | 2 +- drivers/gpio/gpio-wm831x.c | 2 +- drivers/gpio/gpio-wm8350.c | 2 +- drivers/gpio/gpio-wm8994.c | 2 +- drivers/gpio/gpio-xilinx.c | 2 +- 55 files changed, 76 insertions(+), 76 deletions(-) (limited to 'drivers/gpio/gpio-stmpe.c') diff --git a/drivers/gpio/gpio-74x164.c b/drivers/gpio/gpio-74x164.c index ee1cb30e7608..2e6df4180dea 100644 --- a/drivers/gpio/gpio-74x164.c +++ b/drivers/gpio/gpio-74x164.c @@ -105,7 +105,7 @@ static int gen_74x164_direction_output(struct gpio_chip *gc, return 0; } -static int __devinit gen_74x164_probe(struct spi_device *spi) +static int gen_74x164_probe(struct spi_device *spi) { struct gen_74x164_chip *chip; struct gen_74x164_chip_platform_data *pdata; diff --git a/drivers/gpio/gpio-ab8500.c b/drivers/gpio/gpio-ab8500.c index 48c3babbf3c6..0a636de39989 100644 --- a/drivers/gpio/gpio-ab8500.c +++ b/drivers/gpio/gpio-ab8500.c @@ -402,7 +402,7 @@ static void ab8500_gpio_irq_remove(struct ab8500_gpio *ab8500_gpio) } } -static int __devinit ab8500_gpio_probe(struct platform_device *pdev) +static int ab8500_gpio_probe(struct platform_device *pdev) { struct ab8500_platform_data *ab8500_pdata = dev_get_platdata(pdev->dev.parent); diff --git a/drivers/gpio/gpio-adnp.c b/drivers/gpio/gpio-adnp.c index 9796b9cbde89..9f23684d1cfc 100644 --- a/drivers/gpio/gpio-adnp.c +++ b/drivers/gpio/gpio-adnp.c @@ -516,7 +516,7 @@ static void adnp_irq_teardown(struct adnp *adnp) irq_domain_remove(adnp->domain); } -static __devinit int adnp_i2c_probe(struct i2c_client *client, +static int adnp_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct device_node *np = client->dev.of_node; diff --git a/drivers/gpio/gpio-adp5520.c b/drivers/gpio/gpio-adp5520.c index fc01e6d8c46b..b9fac75b4ddd 100644 --- a/drivers/gpio/gpio-adp5520.c +++ b/drivers/gpio/gpio-adp5520.c @@ -87,7 +87,7 @@ static int adp5520_gpio_direction_output(struct gpio_chip *chip, return ret; } -static int __devinit adp5520_gpio_probe(struct platform_device *pdev) +static int adp5520_gpio_probe(struct platform_device *pdev) { struct adp5520_gpio_platform_data *pdata = pdev->dev.platform_data; struct adp5520_gpio *dev; diff --git a/drivers/gpio/gpio-adp5588.c b/drivers/gpio/gpio-adp5588.c index f762269cb624..27001ec3bcbb 100644 --- a/drivers/gpio/gpio-adp5588.c +++ b/drivers/gpio/gpio-adp5588.c @@ -346,7 +346,7 @@ static void adp5588_irq_teardown(struct adp5588_gpio *dev) } #endif /* CONFIG_GPIO_ADP5588_IRQ */ -static int __devinit adp5588_gpio_probe(struct i2c_client *client, +static int adp5588_gpio_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct adp5588_gpio_platform_data *pdata = client->dev.platform_data; diff --git a/drivers/gpio/gpio-arizona.c b/drivers/gpio/gpio-arizona.c index a406573259ad..0a76fb0f66ce 100644 --- a/drivers/gpio/gpio-arizona.c +++ b/drivers/gpio/gpio-arizona.c @@ -94,7 +94,7 @@ static struct gpio_chip template_chip = { .can_sleep = 1, }; -static int __devinit arizona_gpio_probe(struct platform_device *pdev) +static int arizona_gpio_probe(struct platform_device *pdev) { struct arizona *arizona = dev_get_drvdata(pdev->dev.parent); struct arizona_pdata *pdata = arizona->dev->platform_data; diff --git a/drivers/gpio/gpio-cs5535.c b/drivers/gpio/gpio-cs5535.c index 00f98f934d36..d4a6d82d7a3e 100644 --- a/drivers/gpio/gpio-cs5535.c +++ b/drivers/gpio/gpio-cs5535.c @@ -300,7 +300,7 @@ static struct cs5535_gpio_chip cs5535_gpio_chip = { }, }; -static int __devinit cs5535_gpio_probe(struct platform_device *pdev) +static int cs5535_gpio_probe(struct platform_device *pdev) { struct resource *res; int err = -EIO; diff --git a/drivers/gpio/gpio-da9052.c b/drivers/gpio/gpio-da9052.c index 9f5824dfd606..5d2bc81d6f84 100644 --- a/drivers/gpio/gpio-da9052.c +++ b/drivers/gpio/gpio-da9052.c @@ -201,7 +201,7 @@ static struct gpio_chip reference_gp __devinitdata = { .base = -1, }; -static int __devinit da9052_gpio_probe(struct platform_device *pdev) +static int da9052_gpio_probe(struct platform_device *pdev) { struct da9052_gpio *gpio; struct da9052_pdata *pdata; diff --git a/drivers/gpio/gpio-em.c b/drivers/gpio/gpio-em.c index e246165864ac..6253a05349ef 100644 --- a/drivers/gpio/gpio-em.c +++ b/drivers/gpio/gpio-em.c @@ -268,7 +268,7 @@ static void em_gio_irq_domain_cleanup(struct em_gio_priv *p) /* FIXME: irq domain wants to be freed! */ } -static int __devinit em_gio_probe(struct platform_device *pdev) +static int em_gio_probe(struct platform_device *pdev) { struct gpio_em_config *pdata = pdev->dev.platform_data; struct em_gio_priv *p; diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c index 9fe5b8fe9be8..56b98eebe1fc 100644 --- a/drivers/gpio/gpio-ep93xx.c +++ b/drivers/gpio/gpio-ep93xx.c @@ -340,7 +340,7 @@ static int ep93xx_gpio_add_bank(struct bgpio_chip *bgc, struct device *dev, return gpiochip_add(&bgc->gc); } -static int __devinit ep93xx_gpio_probe(struct platform_device *pdev) +static int ep93xx_gpio_probe(struct platform_device *pdev) { struct ep93xx_gpio *ep93xx_gpio; struct resource *res; diff --git a/drivers/gpio/gpio-generic.c b/drivers/gpio/gpio-generic.c index 983f0f2a85f4..be3759648149 100644 --- a/drivers/gpio/gpio-generic.c +++ b/drivers/gpio/gpio-generic.c @@ -444,7 +444,7 @@ static void __iomem *bgpio_map(struct platform_device *pdev, return ret; } -static int __devinit bgpio_pdev_probe(struct platform_device *pdev) +static int bgpio_pdev_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct resource *r; diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c index c230263302ca..3ff9ff671e31 100644 --- a/drivers/gpio/gpio-ich.c +++ b/drivers/gpio/gpio-ich.c @@ -238,7 +238,7 @@ static void ichx_gpio_set(struct gpio_chip *chip, unsigned nr, int val) ichx_write_bit(GPIO_LVL, nr, val, 0); } -static void __devinit ichx_gpiolib_setup(struct gpio_chip *chip) +static void ichx_gpiolib_setup(struct gpio_chip *chip) { chip->owner = THIS_MODULE; chip->label = DRV_NAME; @@ -313,7 +313,7 @@ static struct ichx_desc intel5_desc = { .ngpio = 76, }; -static int __devinit ichx_gpio_request_regions(struct resource *res_base, +static int ichx_gpio_request_regions(struct resource *res_base, const char *name, u8 use_gpio) { int i; @@ -353,7 +353,7 @@ static void ichx_gpio_release_regions(struct resource *res_base, u8 use_gpio) } } -static int __devinit ichx_gpio_probe(struct platform_device *pdev) +static int ichx_gpio_probe(struct platform_device *pdev) { struct resource *res_base, *res_pm; int err; diff --git a/drivers/gpio/gpio-janz-ttl.c b/drivers/gpio/gpio-janz-ttl.c index 365dd040445b..cd28270672f2 100644 --- a/drivers/gpio/gpio-janz-ttl.c +++ b/drivers/gpio/gpio-janz-ttl.c @@ -108,13 +108,13 @@ static void ttl_set_value(struct gpio_chip *gpio, unsigned offset, int value) spin_unlock(&mod->lock); } -static void __devinit ttl_write_reg(struct ttl_module *mod, u8 reg, u16 val) +static void ttl_write_reg(struct ttl_module *mod, u8 reg, u16 val) { iowrite16be(reg, &mod->regs->control); iowrite16be(val, &mod->regs->control); } -static void __devinit ttl_setup_device(struct ttl_module *mod) +static void ttl_setup_device(struct ttl_module *mod) { /* reset the device to a known state */ iowrite16be(0x0000, &mod->regs->control); @@ -140,7 +140,7 @@ static void __devinit ttl_setup_device(struct ttl_module *mod) ttl_write_reg(mod, MASTER_CONF_CTL, CONF_PAE | CONF_PBE | CONF_PCE); } -static int __devinit ttl_probe(struct platform_device *pdev) +static int ttl_probe(struct platform_device *pdev) { struct janz_platform_data *pdata; struct device *dev = &pdev->dev; diff --git a/drivers/gpio/gpio-langwell.c b/drivers/gpio/gpio-langwell.c index b8158967eac3..a3bf90d4e93b 100644 --- a/drivers/gpio/gpio-langwell.c +++ b/drivers/gpio/gpio-langwell.c @@ -332,7 +332,7 @@ static const struct dev_pm_ops lnw_gpio_pm_ops = { .runtime_idle = lnw_gpio_runtime_idle, }; -static int __devinit lnw_gpio_probe(struct pci_dev *pdev, +static int lnw_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id) { void *base; @@ -435,7 +435,7 @@ static struct pci_driver lnw_gpio_driver = { }; -static int __devinit wp_gpio_probe(struct platform_device *pdev) +static int wp_gpio_probe(struct platform_device *pdev) { struct lnw_gpio *lnw; struct gpio_chip *gc; diff --git a/drivers/gpio/gpio-lpc32xx.c b/drivers/gpio/gpio-lpc32xx.c index 3644e0dcb3dd..9f676f4629f1 100644 --- a/drivers/gpio/gpio-lpc32xx.c +++ b/drivers/gpio/gpio-lpc32xx.c @@ -542,7 +542,7 @@ static int lpc32xx_of_xlate(struct gpio_chip *gc, return gpiospec->args[1]; } -static int __devinit lpc32xx_gpio_probe(struct platform_device *pdev) +static int lpc32xx_gpio_probe(struct platform_device *pdev) { int i; diff --git a/drivers/gpio/gpio-max7300.c b/drivers/gpio/gpio-max7300.c index 869235f95e86..5c92414e4d60 100644 --- a/drivers/gpio/gpio-max7300.c +++ b/drivers/gpio/gpio-max7300.c @@ -31,7 +31,7 @@ static int max7300_i2c_read(struct device *dev, unsigned int reg) return i2c_smbus_read_byte_data(client, reg); } -static int __devinit max7300_probe(struct i2c_client *client, +static int max7300_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct max7301 *ts; diff --git a/drivers/gpio/gpio-max7301.c b/drivers/gpio/gpio-max7301.c index 31bf49d73f5f..cf5d5b3a0e0b 100644 --- a/drivers/gpio/gpio-max7301.c +++ b/drivers/gpio/gpio-max7301.c @@ -50,7 +50,7 @@ static int max7301_spi_read(struct device *dev, unsigned int reg) return word & 0xff; } -static int __devinit max7301_probe(struct spi_device *spi) +static int max7301_probe(struct spi_device *spi) { struct max7301 *ts; int ret; diff --git a/drivers/gpio/gpio-max730x.c b/drivers/gpio/gpio-max730x.c index 05e2dac60b3b..91b4f45ef042 100644 --- a/drivers/gpio/gpio-max730x.c +++ b/drivers/gpio/gpio-max730x.c @@ -160,7 +160,7 @@ static void max7301_set(struct gpio_chip *chip, unsigned offset, int value) mutex_unlock(&ts->lock); } -int __devinit __max730x_probe(struct max7301 *ts) +int __max730x_probe(struct max7301 *ts) { struct device *dev = ts->dev; struct max7301_platform_data *pdata; diff --git a/drivers/gpio/gpio-max732x.c b/drivers/gpio/gpio-max732x.c index 67ef5eae87cd..5edd2cb3b4a7 100644 --- a/drivers/gpio/gpio-max732x.c +++ b/drivers/gpio/gpio-max732x.c @@ -526,7 +526,7 @@ static void max732x_irq_teardown(struct max732x_chip *chip) } #endif -static int __devinit max732x_setup_gpio(struct max732x_chip *chip, +static int max732x_setup_gpio(struct max732x_chip *chip, const struct i2c_device_id *id, unsigned gpio_start) { @@ -574,7 +574,7 @@ static int __devinit max732x_setup_gpio(struct max732x_chip *chip, return port; } -static int __devinit max732x_probe(struct i2c_client *client, +static int max732x_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct max732x_platform_data *pdata; diff --git a/drivers/gpio/gpio-mc33880.c b/drivers/gpio/gpio-mc33880.c index c6572e1de333..79fc430de247 100644 --- a/drivers/gpio/gpio-mc33880.c +++ b/drivers/gpio/gpio-mc33880.c @@ -80,7 +80,7 @@ static void mc33880_set(struct gpio_chip *chip, unsigned offset, int value) mutex_unlock(&mc->lock); } -static int __devinit mc33880_probe(struct spi_device *spi) +static int mc33880_probe(struct spi_device *spi) { struct mc33880 *mc; struct mc33880_platform_data *pdata; diff --git a/drivers/gpio/gpio-mcp23s08.c b/drivers/gpio/gpio-mcp23s08.c index 47b6002a73f5..45079aeb60bc 100644 --- a/drivers/gpio/gpio-mcp23s08.c +++ b/drivers/gpio/gpio-mcp23s08.c @@ -475,7 +475,7 @@ fail: #ifdef CONFIG_I2C -static int __devinit mcp230xx_probe(struct i2c_client *client, +static int mcp230xx_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct mcp23s08_platform_data *pdata; diff --git a/drivers/gpio/gpio-ml-ioh.c b/drivers/gpio/gpio-ml-ioh.c index c824b5d1acd3..934b9bce6282 100644 --- a/drivers/gpio/gpio-ml-ioh.c +++ b/drivers/gpio/gpio-ml-ioh.c @@ -385,7 +385,7 @@ static irqreturn_t ioh_gpio_handler(int irq, void *dev_id) return ret; } -static __devinit void ioh_gpio_alloc_generic_chip(struct ioh_gpio *chip, +static void ioh_gpio_alloc_generic_chip(struct ioh_gpio *chip, unsigned int irq_start, unsigned int num) { struct irq_chip_generic *gc; @@ -406,7 +406,7 @@ static __devinit void ioh_gpio_alloc_generic_chip(struct ioh_gpio *chip, IRQ_NOREQUEST | IRQ_NOPROBE, 0); } -static int __devinit ioh_gpio_probe(struct pci_dev *pdev, +static int ioh_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id) { int ret; diff --git a/drivers/gpio/gpio-mpc5200.c b/drivers/gpio/gpio-mpc5200.c index 2c7cef367fc0..42647f26c9e0 100644 --- a/drivers/gpio/gpio-mpc5200.c +++ b/drivers/gpio/gpio-mpc5200.c @@ -148,7 +148,7 @@ mpc52xx_wkup_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) return 0; } -static int __devinit mpc52xx_wkup_gpiochip_probe(struct platform_device *ofdev) +static int mpc52xx_wkup_gpiochip_probe(struct platform_device *ofdev) { struct mpc52xx_gpiochip *chip; struct mpc52xx_gpio_wkup __iomem *regs; @@ -308,7 +308,7 @@ mpc52xx_simple_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) return 0; } -static int __devinit mpc52xx_simple_gpiochip_probe(struct platform_device *ofdev) +static int mpc52xx_simple_gpiochip_probe(struct platform_device *ofdev) { struct mpc52xx_gpiochip *chip; struct gpio_chip *gc; diff --git a/drivers/gpio/gpio-msic.c b/drivers/gpio/gpio-msic.c index b38986285868..27ea7b9257ff 100644 --- a/drivers/gpio/gpio-msic.c +++ b/drivers/gpio/gpio-msic.c @@ -256,7 +256,7 @@ static void msic_gpio_irq_handler(unsigned irq, struct irq_desc *desc) chip->irq_eoi(data); } -static int __devinit platform_msic_gpio_probe(struct platform_device *pdev) +static int platform_msic_gpio_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct intel_msic_gpio_pdata *pdata = dev->platform_data; diff --git a/drivers/gpio/gpio-msm-v2.c b/drivers/gpio/gpio-msm-v2.c index 26f5122330c2..5451bec942ef 100644 --- a/drivers/gpio/gpio-msm-v2.c +++ b/drivers/gpio/gpio-msm-v2.c @@ -352,7 +352,7 @@ static struct irq_chip msm_gpio_irq_chip = { .irq_set_wake = msm_gpio_irq_set_wake, }; -static int __devinit msm_gpio_probe(struct platform_device *dev) +static int msm_gpio_probe(struct platform_device *dev) { int i, irq, ret; diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index cf7afb9eb61a..88ad416c2bb0 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c @@ -478,7 +478,7 @@ static struct of_device_id mvebu_gpio_of_match[] __devinitdata = { }; MODULE_DEVICE_TABLE(of, mvebu_gpio_of_match); -static int __devinit mvebu_gpio_probe(struct platform_device *pdev) +static int mvebu_gpio_probe(struct platform_device *pdev) { struct mvebu_gpio_chip *mvchip; const struct of_device_id *match; diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c index 80f44bb64a87..7877335c4cc8 100644 --- a/drivers/gpio/gpio-mxc.c +++ b/drivers/gpio/gpio-mxc.c @@ -356,7 +356,7 @@ static void __init mxc_gpio_init_gc(struct mxc_gpio_port *port, int irq_base) IRQ_NOREQUEST, 0); } -static void __devinit mxc_gpio_get_hw(struct platform_device *pdev) +static void mxc_gpio_get_hw(struct platform_device *pdev) { const struct of_device_id *of_id = of_match_device(mxc_gpio_dt_ids, &pdev->dev); @@ -395,7 +395,7 @@ static int mxc_gpio_to_irq(struct gpio_chip *gc, unsigned offset) return irq_find_mapping(port->domain, offset); } -static int __devinit mxc_gpio_probe(struct platform_device *pdev) +static int mxc_gpio_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; struct mxc_gpio_port *port; diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c index 796fb13e4815..fa2a63cad32e 100644 --- a/drivers/gpio/gpio-mxs.c +++ b/drivers/gpio/gpio-mxs.c @@ -214,7 +214,7 @@ static const struct of_device_id mxs_gpio_dt_ids[] = { }; MODULE_DEVICE_TABLE(of, mxs_gpio_dt_ids); -static int __devinit mxs_gpio_probe(struct platform_device *pdev) +static int mxs_gpio_probe(struct platform_device *pdev) { const struct of_device_id *of_id = of_match_device(mxs_gpio_dt_ids, &pdev->dev); diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index d335af1d4d85..148a4f23d118 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@ -1012,7 +1012,7 @@ static void omap_gpio_mod_init(struct gpio_bank *bank) dev_err(bank->dev, "Could not get gpio dbck\n"); } -static __devinit void +static void omap_mpuio_alloc_gc(struct gpio_bank *bank, unsigned int irq_start, unsigned int num) { @@ -1041,7 +1041,7 @@ omap_mpuio_alloc_gc(struct gpio_bank *bank, unsigned int irq_start, IRQ_NOREQUEST | IRQ_NOPROBE, 0); } -static void __devinit omap_gpio_chip_init(struct gpio_bank *bank) +static void omap_gpio_chip_init(struct gpio_bank *bank) { int j; static int gpio; @@ -1089,7 +1089,7 @@ static void __devinit omap_gpio_chip_init(struct gpio_bank *bank) static const struct of_device_id omap_gpio_match[]; -static int __devinit omap_gpio_probe(struct platform_device *pdev) +static int omap_gpio_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct device_node *node = dev->of_node; diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c index 9c693ae17956..fff7c2be58f9 100644 --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c @@ -602,7 +602,7 @@ pca953x_get_alt_pdata(struct i2c_client *client, int *gpio_base, u32 *invert) } #endif -static int __devinit device_pca953x_init(struct pca953x_chip *chip, u32 invert) +static int device_pca953x_init(struct pca953x_chip *chip, u32 invert) { int ret; @@ -621,7 +621,7 @@ out: return ret; } -static int __devinit device_pca957x_init(struct pca953x_chip *chip, u32 invert) +static int device_pca957x_init(struct pca953x_chip *chip, u32 invert) { int ret; u32 val = 0; @@ -652,7 +652,7 @@ out: return ret; } -static int __devinit pca953x_probe(struct i2c_client *client, +static int pca953x_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct pca953x_platform_data *pdata; diff --git a/drivers/gpio/gpio-pch.c b/drivers/gpio/gpio-pch.c index d693560cde4f..09568a4b7799 100644 --- a/drivers/gpio/gpio-pch.c +++ b/drivers/gpio/gpio-pch.c @@ -325,7 +325,7 @@ static irqreturn_t pch_gpio_handler(int irq, void *dev_id) return ret; } -static __devinit void pch_gpio_alloc_generic_chip(struct pch_gpio *chip, +static void pch_gpio_alloc_generic_chip(struct pch_gpio *chip, unsigned int irq_start, unsigned int num) { struct irq_chip_generic *gc; @@ -345,7 +345,7 @@ static __devinit void pch_gpio_alloc_generic_chip(struct pch_gpio *chip, IRQ_NOREQUEST | IRQ_NOPROBE, 0); } -static int __devinit pch_gpio_probe(struct pci_dev *pdev, +static int pch_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id) { s32 ret; diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c index 98d52cb3fd1a..3e35243c136f 100644 --- a/drivers/gpio/gpio-pxa.c +++ b/drivers/gpio/gpio-pxa.c @@ -250,7 +250,7 @@ static int pxa_gpio_of_xlate(struct gpio_chip *gc, } #endif -static int __devinit pxa_init_gpio_chip(int gpio_end, +static int pxa_init_gpio_chip(int gpio_end, int (*set_wake)(unsigned int, unsigned int)) { int i, gpio, nbanks = gpio_to_bank(gpio_end) + 1; @@ -490,7 +490,7 @@ const struct irq_domain_ops pxa_irq_domain_ops = { .xlate = irq_domain_xlate_twocell, }; -static int __devinit pxa_gpio_probe_dt(struct platform_device *pdev) +static int pxa_gpio_probe_dt(struct platform_device *pdev) { int ret, nr_banks, nr_gpios; struct device_node *prev, *next, *np = pdev->dev.of_node; @@ -537,7 +537,7 @@ err: #define pxa_gpio_probe_dt(pdev) (-1) #endif -static int __devinit pxa_gpio_probe(struct platform_device *pdev) +static int pxa_gpio_probe(struct platform_device *pdev) { struct pxa_gpio_chip *c; struct resource *res; diff --git a/drivers/gpio/gpio-rc5t583.c b/drivers/gpio/gpio-rc5t583.c index 2931514c574a..59ee5de68e50 100644 --- a/drivers/gpio/gpio-rc5t583.c +++ b/drivers/gpio/gpio-rc5t583.c @@ -111,7 +111,7 @@ static void rc5t583_gpio_free(struct gpio_chip *gc, unsigned offset) rc5t583_set_bits(parent, RC5T583_GPIO_PGSEL, BIT(offset)); } -static int __devinit rc5t583_gpio_probe(struct platform_device *pdev) +static int rc5t583_gpio_probe(struct platform_device *pdev) { struct rc5t583 *rc5t583 = dev_get_drvdata(pdev->dev.parent); struct rc5t583_platform_data *pdata = dev_get_platdata(rc5t583->dev); diff --git a/drivers/gpio/gpio-rdc321x.c b/drivers/gpio/gpio-rdc321x.c index 17b971bffc85..dd3b49f09844 100644 --- a/drivers/gpio/gpio-rdc321x.c +++ b/drivers/gpio/gpio-rdc321x.c @@ -128,7 +128,7 @@ static int rdc_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) /* * Cache the initial value of both GPIO data registers */ -static int __devinit rdc321x_gpio_probe(struct platform_device *pdev) +static int rdc321x_gpio_probe(struct platform_device *pdev) { int err; struct resource *r; diff --git a/drivers/gpio/gpio-sch.c b/drivers/gpio/gpio-sch.c index ed54425bffe8..4498855c7d74 100644 --- a/drivers/gpio/gpio-sch.c +++ b/drivers/gpio/gpio-sch.c @@ -185,7 +185,7 @@ static struct gpio_chip sch_gpio_resume = { .set = sch_gpio_resume_set, }; -static int __devinit sch_gpio_probe(struct platform_device *pdev) +static int sch_gpio_probe(struct platform_device *pdev) { struct resource *res; int err, id; diff --git a/drivers/gpio/gpio-sodaville.c b/drivers/gpio/gpio-sodaville.c index e25f73130b40..88f374ac7753 100644 --- a/drivers/gpio/gpio-sodaville.c +++ b/drivers/gpio/gpio-sodaville.c @@ -129,7 +129,7 @@ static struct irq_domain_ops irq_domain_sdv_ops = { .xlate = sdv_xlate, }; -static __devinit int sdv_register_irqsupport(struct sdv_gpio_chip_data *sd, +static int sdv_register_irqsupport(struct sdv_gpio_chip_data *sd, struct pci_dev *pdev) { struct irq_chip_type *ct; @@ -186,7 +186,7 @@ out_free_desc: return ret; } -static int __devinit sdv_gpio_probe(struct pci_dev *pdev, +static int sdv_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id) { struct sdv_gpio_chip_data *sd; diff --git a/drivers/gpio/gpio-sta2x11.c b/drivers/gpio/gpio-sta2x11.c index 6064fb376e11..558542552aae 100644 --- a/drivers/gpio/gpio-sta2x11.c +++ b/drivers/gpio/gpio-sta2x11.c @@ -320,7 +320,7 @@ static irqreturn_t gsta_gpio_handler(int irq, void *dev_id) return ret; } -static __devinit void gsta_alloc_irq_chip(struct gsta_gpio *chip) +static void gsta_alloc_irq_chip(struct gsta_gpio *chip) { struct irq_chip_generic *gc; struct irq_chip_type *ct; @@ -353,7 +353,7 @@ static __devinit void gsta_alloc_irq_chip(struct gsta_gpio *chip) } /* The platform device used here is instantiated by the MFD device */ -static int __devinit gsta_probe(struct platform_device *dev) +static int gsta_probe(struct platform_device *dev) { int i, err; struct pci_dev *pdev; diff --git a/drivers/gpio/gpio-stmpe.c b/drivers/gpio/gpio-stmpe.c index 821392d22137..72cf6183ee9f 100644 --- a/drivers/gpio/gpio-stmpe.c +++ b/drivers/gpio/gpio-stmpe.c @@ -267,7 +267,7 @@ static irqreturn_t stmpe_gpio_irq(int irq, void *dev) return IRQ_HANDLED; } -static int __devinit stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio) +static int stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio) { int base = stmpe_gpio->irq_base; int irq; @@ -301,7 +301,7 @@ static void stmpe_gpio_irq_remove(struct stmpe_gpio *stmpe_gpio) } } -static int __devinit stmpe_gpio_probe(struct platform_device *pdev) +static int stmpe_gpio_probe(struct platform_device *pdev) { struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent); struct stmpe_gpio_platform_data *pdata; diff --git a/drivers/gpio/gpio-stp-xway.c b/drivers/gpio/gpio-stp-xway.c index 8bead0bb6459..85841ee70b17 100644 --- a/drivers/gpio/gpio-stp-xway.c +++ b/drivers/gpio/gpio-stp-xway.c @@ -197,7 +197,7 @@ static int xway_stp_hw_init(struct xway_stp *chip) return 0; } -static int __devinit xway_stp_probe(struct platform_device *pdev) +static int xway_stp_probe(struct platform_device *pdev) { struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); const __be32 *shadow, *groups, *dsl, *phy; diff --git a/drivers/gpio/gpio-sx150x.c b/drivers/gpio/gpio-sx150x.c index 0e1472db6a4b..9c93308abff6 100644 --- a/drivers/gpio/gpio-sx150x.c +++ b/drivers/gpio/gpio-sx150x.c @@ -575,7 +575,7 @@ static void sx150x_remove_irq_chip(struct sx150x_chip *chip) } } -static int __devinit sx150x_probe(struct i2c_client *client, +static int sx150x_probe(struct i2c_client *client, const struct i2c_device_id *id) { static const u32 i2c_funcs = I2C_FUNC_SMBUS_BYTE_DATA | diff --git a/drivers/gpio/gpio-tc3589x.c b/drivers/gpio/gpio-tc3589x.c index debe67e595d2..d69d7c8838c6 100644 --- a/drivers/gpio/gpio-tc3589x.c +++ b/drivers/gpio/gpio-tc3589x.c @@ -311,7 +311,7 @@ static int tc3589x_gpio_irq_init(struct tc3589x_gpio *tc3589x_gpio, return 0; } -static int __devinit tc3589x_gpio_probe(struct platform_device *pdev) +static int tc3589x_gpio_probe(struct platform_device *pdev) { struct tc3589x *tc3589x = dev_get_drvdata(pdev->dev.parent); struct tc3589x_gpio_platform_data *pdata; diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index d982593d7563..45105a26d4bb 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c @@ -376,7 +376,7 @@ static struct of_device_id tegra_gpio_of_match[] __devinitdata = { */ static struct lock_class_key gpio_lock_class; -static int __devinit tegra_gpio_probe(struct platform_device *pdev) +static int tegra_gpio_probe(struct platform_device *pdev) { const struct of_device_id *match; struct tegra_gpio_soc_config *config; diff --git a/drivers/gpio/gpio-timberdale.c b/drivers/gpio/gpio-timberdale.c index 1a3e2b9b4772..728d6e773a84 100644 --- a/drivers/gpio/gpio-timberdale.c +++ b/drivers/gpio/gpio-timberdale.c @@ -222,7 +222,7 @@ static struct irq_chip timbgpio_irqchip = { .irq_set_type = timbgpio_irq_type, }; -static int __devinit timbgpio_probe(struct platform_device *pdev) +static int timbgpio_probe(struct platform_device *pdev) { int err, i; struct gpio_chip *gc; diff --git a/drivers/gpio/gpio-tps6586x.c b/drivers/gpio/gpio-tps6586x.c index d048ea81e521..b0b2ee076e68 100644 --- a/drivers/gpio/gpio-tps6586x.c +++ b/drivers/gpio/gpio-tps6586x.c @@ -80,7 +80,7 @@ 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_probe(struct platform_device *pdev) { struct tps6586x_platform_data *pdata; struct tps6586x_gpio *tps6586x_gpio; diff --git a/drivers/gpio/gpio-tps65910.c b/drivers/gpio/gpio-tps65910.c index cf4e327b128b..635352c063c7 100644 --- a/drivers/gpio/gpio-tps65910.c +++ b/drivers/gpio/gpio-tps65910.c @@ -113,7 +113,7 @@ static struct tps65910_board *tps65910_parse_dt_for_gpio(struct device *dev, } #endif -static int __devinit tps65910_gpio_probe(struct platform_device *pdev) +static int tps65910_gpio_probe(struct platform_device *pdev) { struct tps65910 *tps65910 = dev_get_drvdata(pdev->dev.parent); struct tps65910_board *pdata = dev_get_platdata(tps65910->dev); diff --git a/drivers/gpio/gpio-tps65912.c b/drivers/gpio/gpio-tps65912.c index 55c1d35f2e14..c0623b8a7495 100644 --- a/drivers/gpio/gpio-tps65912.c +++ b/drivers/gpio/gpio-tps65912.c @@ -84,7 +84,7 @@ static struct gpio_chip template_chip = { .base = -1, }; -static int __devinit tps65912_gpio_probe(struct platform_device *pdev) +static int tps65912_gpio_probe(struct platform_device *pdev) { struct tps65912 *tps65912 = dev_get_drvdata(pdev->dev.parent); struct tps65912_board *pdata = tps65912->dev->platform_data; diff --git a/drivers/gpio/gpio-twl4030.c b/drivers/gpio/gpio-twl4030.c index c5f8ca233e1f..648e5608a175 100644 --- a/drivers/gpio/gpio-twl4030.c +++ b/drivers/gpio/gpio-twl4030.c @@ -352,7 +352,7 @@ static struct gpio_chip twl_gpiochip = { /*----------------------------------------------------------------------*/ -static int __devinit gpio_twl4030_pulls(u32 ups, u32 downs) +static int gpio_twl4030_pulls(u32 ups, u32 downs) { u8 message[6]; unsigned i, gpio_bit; @@ -377,7 +377,7 @@ static int __devinit gpio_twl4030_pulls(u32 ups, u32 downs) REG_GPIOPUPDCTR1, 5); } -static int __devinit gpio_twl4030_debounce(u32 debounce, u8 mmc_cd) +static int gpio_twl4030_debounce(u32 debounce, u8 mmc_cd) { u8 message[4]; @@ -419,7 +419,7 @@ static struct twl4030_gpio_platform_data *of_gpio_twl4030(struct device *dev) return omap_twl_info; } -static int __devinit gpio_twl4030_probe(struct platform_device *pdev) +static int gpio_twl4030_probe(struct platform_device *pdev) { struct twl4030_gpio_platform_data *pdata = pdev->dev.platform_data; struct device_node *node = pdev->dev.of_node; diff --git a/drivers/gpio/gpio-twl6040.c b/drivers/gpio/gpio-twl6040.c index dd58e8b25043..2962b84bd253 100644 --- a/drivers/gpio/gpio-twl6040.c +++ b/drivers/gpio/gpio-twl6040.c @@ -82,7 +82,7 @@ static struct gpio_chip twl6040gpo_chip = { /*----------------------------------------------------------------------*/ -static int __devinit gpo_twl6040_probe(struct platform_device *pdev) +static int gpo_twl6040_probe(struct platform_device *pdev) { struct twl6040_gpo_data *pdata = pdev->dev.platform_data; struct device *twl6040_core_dev = pdev->dev.parent; diff --git a/drivers/gpio/gpio-vr41xx.c b/drivers/gpio/gpio-vr41xx.c index 54d6e9a7400f..c13920b6cd72 100644 --- a/drivers/gpio/gpio-vr41xx.c +++ b/drivers/gpio/gpio-vr41xx.c @@ -490,7 +490,7 @@ static struct gpio_chip vr41xx_gpio_chip = { .to_irq = vr41xx_gpio_to_irq, }; -static int __devinit giu_probe(struct platform_device *pdev) +static int giu_probe(struct platform_device *pdev) { struct resource *res; unsigned int trigger, i, pin; diff --git a/drivers/gpio/gpio-vt8500.c b/drivers/gpio/gpio-vt8500.c index bcd8e4aa7c7d..579f26403918 100644 --- a/drivers/gpio/gpio-vt8500.c +++ b/drivers/gpio/gpio-vt8500.c @@ -269,7 +269,7 @@ static struct of_device_id vt8500_gpio_dt_ids[] = { { /* Sentinel */ }, }; -static int __devinit vt8500_gpio_probe(struct platform_device *pdev) +static int vt8500_gpio_probe(struct platform_device *pdev) { void __iomem *gpio_base; struct device_node *np; diff --git a/drivers/gpio/gpio-vx855.c b/drivers/gpio/gpio-vx855.c index 43fcc42576dc..90dd23b0af8a 100644 --- a/drivers/gpio/gpio-vx855.c +++ b/drivers/gpio/gpio-vx855.c @@ -219,7 +219,7 @@ static void vx855gpio_gpio_setup(struct vx855_gpio *vg) } /* This platform device is ordinarily registered by the vx855 mfd driver */ -static __devinit int vx855gpio_probe(struct platform_device *pdev) +static int vx855gpio_probe(struct platform_device *pdev) { struct resource *res_gpi; struct resource *res_gpo; diff --git a/drivers/gpio/gpio-wm831x.c b/drivers/gpio/gpio-wm831x.c index 273d541ac6b5..8182145ea29b 100644 --- a/drivers/gpio/gpio-wm831x.c +++ b/drivers/gpio/gpio-wm831x.c @@ -243,7 +243,7 @@ static struct gpio_chip template_chip = { .can_sleep = 1, }; -static int __devinit wm831x_gpio_probe(struct platform_device *pdev) +static int wm831x_gpio_probe(struct platform_device *pdev) { struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent); struct wm831x_pdata *pdata = wm831x->dev->platform_data; diff --git a/drivers/gpio/gpio-wm8350.c b/drivers/gpio/gpio-wm8350.c index 348a7d985ee3..2b99fc3fadd0 100644 --- a/drivers/gpio/gpio-wm8350.c +++ b/drivers/gpio/gpio-wm8350.c @@ -109,7 +109,7 @@ static struct gpio_chip template_chip = { .can_sleep = 1, }; -static int __devinit wm8350_gpio_probe(struct platform_device *pdev) +static int wm8350_gpio_probe(struct platform_device *pdev) { struct wm8350 *wm8350 = dev_get_drvdata(pdev->dev.parent); struct wm8350_platform_data *pdata = wm8350->dev->platform_data; diff --git a/drivers/gpio/gpio-wm8994.c b/drivers/gpio/gpio-wm8994.c index 59f0944ba484..fc3917889dab 100644 --- a/drivers/gpio/gpio-wm8994.c +++ b/drivers/gpio/gpio-wm8994.c @@ -245,7 +245,7 @@ static struct gpio_chip template_chip = { .can_sleep = 1, }; -static int __devinit wm8994_gpio_probe(struct platform_device *pdev) +static int wm8994_gpio_probe(struct platform_device *pdev) { struct wm8994 *wm8994 = dev_get_drvdata(pdev->dev.parent); struct wm8994_pdata *pdata = wm8994->dev->platform_data; diff --git a/drivers/gpio/gpio-xilinx.c b/drivers/gpio/gpio-xilinx.c index 79b0fe8a7253..5a35138eeade 100644 --- a/drivers/gpio/gpio-xilinx.c +++ b/drivers/gpio/gpio-xilinx.c @@ -159,7 +159,7 @@ static void xgpio_save_regs(struct of_mm_gpio_chip *mm_gc) * driver data structure. It returns 0, if the driver is bound to the GPIO * device, or a negative value if there is an error. */ -static int __devinit xgpio_of_probe(struct device_node *np) +static int xgpio_of_probe(struct device_node *np) { struct xgpio_instance *chip; int status = 0; -- cgit v1.2.3 From 206210ce68c1feb1d9d05839ceacc97ad1b0b324 Mon Sep 17 00:00:00 2001 From: Bill Pemberton Date: Mon, 19 Nov 2012 13:25:50 -0500 Subject: gpio: remove use of __devexit CONFIG_HOTPLUG is going away as an option so __devexit is no longer needed. Signed-off-by: Bill Pemberton Cc: Grant Likely Acked-by: Linus Walleij Cc: Peter Tyser Acked-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- drivers/gpio/gpio-74x164.c | 2 +- drivers/gpio/gpio-ab8500.c | 2 +- drivers/gpio/gpio-adnp.c | 2 +- drivers/gpio/gpio-adp5520.c | 2 +- drivers/gpio/gpio-adp5588.c | 2 +- drivers/gpio/gpio-arizona.c | 2 +- drivers/gpio/gpio-cs5535.c | 2 +- drivers/gpio/gpio-da9052.c | 2 +- drivers/gpio/gpio-em.c | 2 +- drivers/gpio/gpio-generic.c | 2 +- drivers/gpio/gpio-ich.c | 2 +- drivers/gpio/gpio-janz-ttl.c | 2 +- drivers/gpio/gpio-langwell.c | 2 +- drivers/gpio/gpio-max7300.c | 2 +- drivers/gpio/gpio-max7301.c | 2 +- drivers/gpio/gpio-max730x.c | 2 +- drivers/gpio/gpio-max732x.c | 2 +- drivers/gpio/gpio-mc33880.c | 2 +- drivers/gpio/gpio-mcp23s08.c | 2 +- drivers/gpio/gpio-ml-ioh.c | 2 +- drivers/gpio/gpio-msm-v2.c | 2 +- drivers/gpio/gpio-pch.c | 2 +- drivers/gpio/gpio-rc5t583.c | 2 +- drivers/gpio/gpio-rdc321x.c | 2 +- drivers/gpio/gpio-sch.c | 2 +- drivers/gpio/gpio-stmpe.c | 2 +- drivers/gpio/gpio-sx150x.c | 2 +- drivers/gpio/gpio-tc3589x.c | 2 +- drivers/gpio/gpio-timberdale.c | 2 +- drivers/gpio/gpio-tps6586x.c | 2 +- drivers/gpio/gpio-tps65910.c | 2 +- drivers/gpio/gpio-tps65912.c | 2 +- drivers/gpio/gpio-twl4030.c | 2 +- drivers/gpio/gpio-twl6040.c | 2 +- drivers/gpio/gpio-vr41xx.c | 2 +- drivers/gpio/gpio-vx855.c | 2 +- drivers/gpio/gpio-wm831x.c | 2 +- drivers/gpio/gpio-wm8350.c | 2 +- drivers/gpio/gpio-wm8994.c | 2 +- 39 files changed, 39 insertions(+), 39 deletions(-) (limited to 'drivers/gpio/gpio-stmpe.c') diff --git a/drivers/gpio/gpio-74x164.c b/drivers/gpio/gpio-74x164.c index 2e6df4180dea..464be961f605 100644 --- a/drivers/gpio/gpio-74x164.c +++ b/drivers/gpio/gpio-74x164.c @@ -181,7 +181,7 @@ exit_destroy: return ret; } -static int __devexit gen_74x164_remove(struct spi_device *spi) +static int gen_74x164_remove(struct spi_device *spi) { struct gen_74x164_chip *chip; int ret; diff --git a/drivers/gpio/gpio-ab8500.c b/drivers/gpio/gpio-ab8500.c index 0a636de39989..983ad425f0ac 100644 --- a/drivers/gpio/gpio-ab8500.c +++ b/drivers/gpio/gpio-ab8500.c @@ -474,7 +474,7 @@ out_free: * ab8500_gpio_remove() - remove Ab8500-gpio driver * @pdev : Platform device registered */ -static int __devexit ab8500_gpio_remove(struct platform_device *pdev) +static int ab8500_gpio_remove(struct platform_device *pdev) { struct ab8500_gpio *ab8500_gpio = platform_get_drvdata(pdev); int ret; diff --git a/drivers/gpio/gpio-adnp.c b/drivers/gpio/gpio-adnp.c index 2a34204bc729..e60567fc5073 100644 --- a/drivers/gpio/gpio-adnp.c +++ b/drivers/gpio/gpio-adnp.c @@ -563,7 +563,7 @@ teardown: return err; } -static __devexit int adnp_i2c_remove(struct i2c_client *client) +static int adnp_i2c_remove(struct i2c_client *client) { struct adnp *adnp = i2c_get_clientdata(client); struct device_node *np = client->dev.of_node; diff --git a/drivers/gpio/gpio-adp5520.c b/drivers/gpio/gpio-adp5520.c index b9fac75b4ddd..8afa95f831b1 100644 --- a/drivers/gpio/gpio-adp5520.c +++ b/drivers/gpio/gpio-adp5520.c @@ -167,7 +167,7 @@ err: return ret; } -static int __devexit adp5520_gpio_remove(struct platform_device *pdev) +static int adp5520_gpio_remove(struct platform_device *pdev) { struct adp5520_gpio *dev; int ret; diff --git a/drivers/gpio/gpio-adp5588.c b/drivers/gpio/gpio-adp5588.c index 27001ec3bcbb..2ba56987db04 100644 --- a/drivers/gpio/gpio-adp5588.c +++ b/drivers/gpio/gpio-adp5588.c @@ -438,7 +438,7 @@ err: return ret; } -static int __devexit adp5588_gpio_remove(struct i2c_client *client) +static int adp5588_gpio_remove(struct i2c_client *client) { struct adp5588_gpio_platform_data *pdata = client->dev.platform_data; struct adp5588_gpio *dev = i2c_get_clientdata(client); diff --git a/drivers/gpio/gpio-arizona.c b/drivers/gpio/gpio-arizona.c index 0a76fb0f66ce..0ea853f68db2 100644 --- a/drivers/gpio/gpio-arizona.c +++ b/drivers/gpio/gpio-arizona.c @@ -141,7 +141,7 @@ err: return ret; } -static int __devexit arizona_gpio_remove(struct platform_device *pdev) +static int arizona_gpio_remove(struct platform_device *pdev) { struct arizona_gpio *arizona_gpio = platform_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-cs5535.c b/drivers/gpio/gpio-cs5535.c index d4a6d82d7a3e..c0a3aeba6f21 100644 --- a/drivers/gpio/gpio-cs5535.c +++ b/drivers/gpio/gpio-cs5535.c @@ -355,7 +355,7 @@ done: return err; } -static int __devexit cs5535_gpio_remove(struct platform_device *pdev) +static int cs5535_gpio_remove(struct platform_device *pdev) { struct resource *r; int err; diff --git a/drivers/gpio/gpio-da9052.c b/drivers/gpio/gpio-da9052.c index 2139825c4d59..a05aacd2777a 100644 --- a/drivers/gpio/gpio-da9052.c +++ b/drivers/gpio/gpio-da9052.c @@ -229,7 +229,7 @@ static int da9052_gpio_probe(struct platform_device *pdev) return 0; } -static int __devexit da9052_gpio_remove(struct platform_device *pdev) +static int da9052_gpio_remove(struct platform_device *pdev) { struct da9052_gpio *gpio = platform_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-em.c b/drivers/gpio/gpio-em.c index 6253a05349ef..320a718cab40 100644 --- a/drivers/gpio/gpio-em.c +++ b/drivers/gpio/gpio-em.c @@ -375,7 +375,7 @@ err0: return ret; } -static int __devexit em_gio_remove(struct platform_device *pdev) +static int em_gio_remove(struct platform_device *pdev) { struct em_gio_priv *p = platform_get_drvdata(pdev); struct resource *irq[2]; diff --git a/drivers/gpio/gpio-generic.c b/drivers/gpio/gpio-generic.c index be3759648149..05fcc0f247ca 100644 --- a/drivers/gpio/gpio-generic.c +++ b/drivers/gpio/gpio-generic.c @@ -507,7 +507,7 @@ static int bgpio_pdev_probe(struct platform_device *pdev) return gpiochip_add(&bgc->gc); } -static int __devexit bgpio_pdev_remove(struct platform_device *pdev) +static int bgpio_pdev_remove(struct platform_device *pdev) { struct bgpio_chip *bgc = platform_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c index 3ff9ff671e31..6cc87ac8e019 100644 --- a/drivers/gpio/gpio-ich.c +++ b/drivers/gpio/gpio-ich.c @@ -442,7 +442,7 @@ add_err: return err; } -static int __devexit ichx_gpio_remove(struct platform_device *pdev) +static int ichx_gpio_remove(struct platform_device *pdev) { int err; diff --git a/drivers/gpio/gpio-janz-ttl.c b/drivers/gpio/gpio-janz-ttl.c index cd28270672f2..7d0a04169a35 100644 --- a/drivers/gpio/gpio-janz-ttl.c +++ b/drivers/gpio/gpio-janz-ttl.c @@ -211,7 +211,7 @@ out_return: return ret; } -static int __devexit ttl_remove(struct platform_device *pdev) +static int ttl_remove(struct platform_device *pdev) { struct ttl_module *mod = platform_get_drvdata(pdev); struct device *dev = &pdev->dev; diff --git a/drivers/gpio/gpio-langwell.c b/drivers/gpio/gpio-langwell.c index a3bf90d4e93b..e77b2b3e94af 100644 --- a/drivers/gpio/gpio-langwell.c +++ b/drivers/gpio/gpio-langwell.c @@ -484,7 +484,7 @@ err_kmalloc: return retval; } -static int __devexit wp_gpio_remove(struct platform_device *pdev) +static int wp_gpio_remove(struct platform_device *pdev) { struct lnw_gpio *lnw = platform_get_drvdata(pdev); int err; diff --git a/drivers/gpio/gpio-max7300.c b/drivers/gpio/gpio-max7300.c index 5c92414e4d60..4b6b9a04e326 100644 --- a/drivers/gpio/gpio-max7300.c +++ b/drivers/gpio/gpio-max7300.c @@ -55,7 +55,7 @@ static int max7300_probe(struct i2c_client *client, return ret; } -static int __devexit max7300_remove(struct i2c_client *client) +static int max7300_remove(struct i2c_client *client) { return __max730x_remove(&client->dev); } diff --git a/drivers/gpio/gpio-max7301.c b/drivers/gpio/gpio-max7301.c index cf5d5b3a0e0b..c6c535c1310e 100644 --- a/drivers/gpio/gpio-max7301.c +++ b/drivers/gpio/gpio-max7301.c @@ -75,7 +75,7 @@ static int max7301_probe(struct spi_device *spi) return ret; } -static int __devexit max7301_remove(struct spi_device *spi) +static int max7301_remove(struct spi_device *spi) { return __max730x_remove(&spi->dev); } diff --git a/drivers/gpio/gpio-max730x.c b/drivers/gpio/gpio-max730x.c index 91b4f45ef042..22b75825a39e 100644 --- a/drivers/gpio/gpio-max730x.c +++ b/drivers/gpio/gpio-max730x.c @@ -226,7 +226,7 @@ exit_destroy: } EXPORT_SYMBOL_GPL(__max730x_probe); -int __devexit __max730x_remove(struct device *dev) +int __max730x_remove(struct device *dev) { struct max7301 *ts = dev_get_drvdata(dev); int ret; diff --git a/drivers/gpio/gpio-max732x.c b/drivers/gpio/gpio-max732x.c index 5edd2cb3b4a7..1e0467ce4c37 100644 --- a/drivers/gpio/gpio-max732x.c +++ b/drivers/gpio/gpio-max732x.c @@ -651,7 +651,7 @@ out_failed: return ret; } -static int __devexit max732x_remove(struct i2c_client *client) +static int max732x_remove(struct i2c_client *client) { struct max732x_platform_data *pdata = client->dev.platform_data; struct max732x_chip *chip = i2c_get_clientdata(client); diff --git a/drivers/gpio/gpio-mc33880.c b/drivers/gpio/gpio-mc33880.c index 79fc430de247..6a8fdc26ae6a 100644 --- a/drivers/gpio/gpio-mc33880.c +++ b/drivers/gpio/gpio-mc33880.c @@ -147,7 +147,7 @@ exit_destroy: return ret; } -static int __devexit mc33880_remove(struct spi_device *spi) +static int mc33880_remove(struct spi_device *spi) { struct mc33880 *mc; int ret; diff --git a/drivers/gpio/gpio-mcp23s08.c b/drivers/gpio/gpio-mcp23s08.c index 45079aeb60bc..ce620f1ef4aa 100644 --- a/drivers/gpio/gpio-mcp23s08.c +++ b/drivers/gpio/gpio-mcp23s08.c @@ -508,7 +508,7 @@ fail: return status; } -static int __devexit mcp230xx_remove(struct i2c_client *client) +static int mcp230xx_remove(struct i2c_client *client) { struct mcp23s08 *mcp = i2c_get_clientdata(client); int status; diff --git a/drivers/gpio/gpio-ml-ioh.c b/drivers/gpio/gpio-ml-ioh.c index 934b9bce6282..b73366523fae 100644 --- a/drivers/gpio/gpio-ml-ioh.c +++ b/drivers/gpio/gpio-ml-ioh.c @@ -517,7 +517,7 @@ err_pci_enable: return ret; } -static void __devexit ioh_gpio_remove(struct pci_dev *pdev) +static void ioh_gpio_remove(struct pci_dev *pdev) { int err; int i; diff --git a/drivers/gpio/gpio-msm-v2.c b/drivers/gpio/gpio-msm-v2.c index 5451bec942ef..55a7e7769af6 100644 --- a/drivers/gpio/gpio-msm-v2.c +++ b/drivers/gpio/gpio-msm-v2.c @@ -376,7 +376,7 @@ static int msm_gpio_probe(struct platform_device *dev) return 0; } -static int __devexit msm_gpio_remove(struct platform_device *dev) +static int msm_gpio_remove(struct platform_device *dev) { int ret = gpiochip_remove(&msm_gpio.gpio_chip); diff --git a/drivers/gpio/gpio-pch.c b/drivers/gpio/gpio-pch.c index 09568a4b7799..bb2b66be17a4 100644 --- a/drivers/gpio/gpio-pch.c +++ b/drivers/gpio/gpio-pch.c @@ -442,7 +442,7 @@ err_pci_enable: return ret; } -static void __devexit pch_gpio_remove(struct pci_dev *pdev) +static void pch_gpio_remove(struct pci_dev *pdev) { int err; struct pch_gpio *chip = pci_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-rc5t583.c b/drivers/gpio/gpio-rc5t583.c index 59ee5de68e50..e63d6a397e17 100644 --- a/drivers/gpio/gpio-rc5t583.c +++ b/drivers/gpio/gpio-rc5t583.c @@ -146,7 +146,7 @@ static int rc5t583_gpio_probe(struct platform_device *pdev) return gpiochip_add(&rc5t583_gpio->gpio_chip); } -static int __devexit rc5t583_gpio_remove(struct platform_device *pdev) +static int rc5t583_gpio_remove(struct platform_device *pdev) { struct rc5t583_gpio *rc5t583_gpio = platform_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-rdc321x.c b/drivers/gpio/gpio-rdc321x.c index dd3b49f09844..1bf55f67f7a5 100644 --- a/drivers/gpio/gpio-rdc321x.c +++ b/drivers/gpio/gpio-rdc321x.c @@ -206,7 +206,7 @@ out_free: return err; } -static int __devexit rdc321x_gpio_remove(struct platform_device *pdev) +static int rdc321x_gpio_remove(struct platform_device *pdev) { int ret; struct rdc321x_gpio *rdc321x_gpio_dev = platform_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-sch.c b/drivers/gpio/gpio-sch.c index 4498855c7d74..edae963f4625 100644 --- a/drivers/gpio/gpio-sch.c +++ b/drivers/gpio/gpio-sch.c @@ -271,7 +271,7 @@ err_sch_gpio_core: return err; } -static int __devexit sch_gpio_remove(struct platform_device *pdev) +static int sch_gpio_remove(struct platform_device *pdev) { struct resource *res; if (gpio_ba) { diff --git a/drivers/gpio/gpio-stmpe.c b/drivers/gpio/gpio-stmpe.c index 72cf6183ee9f..6dff78b19725 100644 --- a/drivers/gpio/gpio-stmpe.c +++ b/drivers/gpio/gpio-stmpe.c @@ -378,7 +378,7 @@ out_free: return ret; } -static int __devexit stmpe_gpio_remove(struct platform_device *pdev) +static int stmpe_gpio_remove(struct platform_device *pdev) { struct stmpe_gpio *stmpe_gpio = platform_get_drvdata(pdev); struct stmpe *stmpe = stmpe_gpio->stmpe; diff --git a/drivers/gpio/gpio-sx150x.c b/drivers/gpio/gpio-sx150x.c index 9c93308abff6..796b6c42fa70 100644 --- a/drivers/gpio/gpio-sx150x.c +++ b/drivers/gpio/gpio-sx150x.c @@ -622,7 +622,7 @@ probe_fail_pre_gpiochip_add: return rc; } -static int __devexit sx150x_remove(struct i2c_client *client) +static int sx150x_remove(struct i2c_client *client) { struct sx150x_chip *chip; int rc; diff --git a/drivers/gpio/gpio-tc3589x.c b/drivers/gpio/gpio-tc3589x.c index d69d7c8838c6..839f44923cb9 100644 --- a/drivers/gpio/gpio-tc3589x.c +++ b/drivers/gpio/gpio-tc3589x.c @@ -389,7 +389,7 @@ out_free: return ret; } -static int __devexit tc3589x_gpio_remove(struct platform_device *pdev) +static int tc3589x_gpio_remove(struct platform_device *pdev) { struct tc3589x_gpio *tc3589x_gpio = platform_get_drvdata(pdev); struct tc3589x *tc3589x = tc3589x_gpio->tc3589x; diff --git a/drivers/gpio/gpio-timberdale.c b/drivers/gpio/gpio-timberdale.c index 728d6e773a84..702cca9284f1 100644 --- a/drivers/gpio/gpio-timberdale.c +++ b/drivers/gpio/gpio-timberdale.c @@ -316,7 +316,7 @@ err_mem: return err; } -static int __devexit timbgpio_remove(struct platform_device *pdev) +static int timbgpio_remove(struct platform_device *pdev) { int err; struct timbgpio_platform_data *pdata = pdev->dev.platform_data; diff --git a/drivers/gpio/gpio-tps6586x.c b/drivers/gpio/gpio-tps6586x.c index b0b2ee076e68..c1b82da56504 100644 --- a/drivers/gpio/gpio-tps6586x.c +++ b/drivers/gpio/gpio-tps6586x.c @@ -126,7 +126,7 @@ static int 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); diff --git a/drivers/gpio/gpio-tps65910.c b/drivers/gpio/gpio-tps65910.c index 635352c063c7..5083825a0348 100644 --- a/drivers/gpio/gpio-tps65910.c +++ b/drivers/gpio/gpio-tps65910.c @@ -188,7 +188,7 @@ skip_init: return ret; } -static int __devexit tps65910_gpio_remove(struct platform_device *pdev) +static int tps65910_gpio_remove(struct platform_device *pdev) { struct tps65910_gpio *tps65910_gpio = platform_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-tps65912.c b/drivers/gpio/gpio-tps65912.c index c0623b8a7495..30a5844a7dca 100644 --- a/drivers/gpio/gpio-tps65912.c +++ b/drivers/gpio/gpio-tps65912.c @@ -113,7 +113,7 @@ static int tps65912_gpio_probe(struct platform_device *pdev) return ret; } -static int __devexit tps65912_gpio_remove(struct platform_device *pdev) +static int tps65912_gpio_remove(struct platform_device *pdev) { struct tps65912_gpio_data *tps65912_gpio = platform_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-twl4030.c b/drivers/gpio/gpio-twl4030.c index 648e5608a175..8beae6627656 100644 --- a/drivers/gpio/gpio-twl4030.c +++ b/drivers/gpio/gpio-twl4030.c @@ -505,7 +505,7 @@ out: return ret; } -/* Cannot use __devexit as gpio_twl4030_probe() calls us */ +/* Cannot use as gpio_twl4030_probe() calls us */ static int gpio_twl4030_remove(struct platform_device *pdev) { struct twl4030_gpio_platform_data *pdata = pdev->dev.platform_data; diff --git a/drivers/gpio/gpio-twl6040.c b/drivers/gpio/gpio-twl6040.c index 2962b84bd253..0be82c6dd796 100644 --- a/drivers/gpio/gpio-twl6040.c +++ b/drivers/gpio/gpio-twl6040.c @@ -113,7 +113,7 @@ static int gpo_twl6040_probe(struct platform_device *pdev) return ret; } -static int __devexit gpo_twl6040_remove(struct platform_device *pdev) +static int gpo_twl6040_remove(struct platform_device *pdev) { return gpiochip_remove(&twl6040gpo_chip); } diff --git a/drivers/gpio/gpio-vr41xx.c b/drivers/gpio/gpio-vr41xx.c index c13920b6cd72..9902732a382d 100644 --- a/drivers/gpio/gpio-vr41xx.c +++ b/drivers/gpio/gpio-vr41xx.c @@ -552,7 +552,7 @@ static int giu_probe(struct platform_device *pdev) return cascade_irq(irq, giu_get_irq); } -static int __devexit giu_remove(struct platform_device *pdev) +static int giu_remove(struct platform_device *pdev) { if (giu_base) { iounmap(giu_base); diff --git a/drivers/gpio/gpio-vx855.c b/drivers/gpio/gpio-vx855.c index 90dd23b0af8a..2b7252cb2427 100644 --- a/drivers/gpio/gpio-vx855.c +++ b/drivers/gpio/gpio-vx855.c @@ -284,7 +284,7 @@ out_release: return ret; } -static int __devexit vx855gpio_remove(struct platform_device *pdev) +static int vx855gpio_remove(struct platform_device *pdev) { struct vx855_gpio *vg = platform_get_drvdata(pdev); struct resource *res; diff --git a/drivers/gpio/gpio-wm831x.c b/drivers/gpio/gpio-wm831x.c index 8182145ea29b..2a743e10ecb6 100644 --- a/drivers/gpio/gpio-wm831x.c +++ b/drivers/gpio/gpio-wm831x.c @@ -275,7 +275,7 @@ static int wm831x_gpio_probe(struct platform_device *pdev) return ret; } -static int __devexit wm831x_gpio_remove(struct platform_device *pdev) +static int wm831x_gpio_remove(struct platform_device *pdev) { struct wm831x_gpio *wm831x_gpio = platform_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-wm8350.c b/drivers/gpio/gpio-wm8350.c index 2b99fc3fadd0..0b598cf3df9d 100644 --- a/drivers/gpio/gpio-wm8350.c +++ b/drivers/gpio/gpio-wm8350.c @@ -141,7 +141,7 @@ static int wm8350_gpio_probe(struct platform_device *pdev) return ret; } -static int __devexit wm8350_gpio_remove(struct platform_device *pdev) +static int wm8350_gpio_remove(struct platform_device *pdev) { struct wm8350_gpio_data *wm8350_gpio = platform_get_drvdata(pdev); diff --git a/drivers/gpio/gpio-wm8994.c b/drivers/gpio/gpio-wm8994.c index fc3917889dab..ae409fd94af7 100644 --- a/drivers/gpio/gpio-wm8994.c +++ b/drivers/gpio/gpio-wm8994.c @@ -281,7 +281,7 @@ err: return ret; } -static int __devexit wm8994_gpio_remove(struct platform_device *pdev) +static int wm8994_gpio_remove(struct platform_device *pdev) { struct wm8994_gpio *wm8994_gpio = platform_get_drvdata(pdev); -- cgit v1.2.3 From 86605cfe8c7c166999bc7476b17940c68bf2f8b7 Mon Sep 17 00:00:00 2001 From: Vipul Kumar Samar Date: Mon, 26 Nov 2012 17:06:51 +0530 Subject: gpio: stmpe: Add DT support for stmpe gpio This patch allows the STMPE GPIO driver to be successfully probed and initialised when Device Tree support is enabled. Bindings are mentioned in Documentation too. Acked-by: Lee Jones Signed-off-by: Vipul Kumar Samar Signed-off-by: Viresh Kumar Signed-off-by: Linus Walleij --- Documentation/devicetree/bindings/gpio/gpio-stmpe.txt | 18 ++++++++++++++++++ drivers/gpio/gpio-stmpe.c | 10 ++++++++-- drivers/mfd/stmpe.c | 2 ++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/gpio-stmpe.txt (limited to 'drivers/gpio/gpio-stmpe.c') diff --git a/Documentation/devicetree/bindings/gpio/gpio-stmpe.txt b/Documentation/devicetree/bindings/gpio/gpio-stmpe.txt new file mode 100644 index 000000000000..a0e4cf885213 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-stmpe.txt @@ -0,0 +1,18 @@ +STMPE gpio +---------- + +Required properties: + - compatible: "st,stmpe-gpio" + +Optional properties: + - st,norequest-mask: bitmask specifying which GPIOs should _not_ be requestable + due to different usage (e.g. touch, keypad) + +Node name must be stmpe_gpio and should be child node of stmpe node to which it +belongs. + +Example: + stmpe_gpio { + compatible = "st,stmpe-gpio"; + st,norequest-mask = <0x20>; //gpio 5 can't be used + }; diff --git a/drivers/gpio/gpio-stmpe.c b/drivers/gpio/gpio-stmpe.c index dce34727bbf8..522c90ee96e8 100644 --- a/drivers/gpio/gpio-stmpe.c +++ b/drivers/gpio/gpio-stmpe.c @@ -12,6 +12,7 @@ #include #include #include +#include #include /* @@ -304,6 +305,7 @@ static void stmpe_gpio_irq_remove(struct stmpe_gpio *stmpe_gpio) static int __devinit stmpe_gpio_probe(struct platform_device *pdev) { struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent); + struct device_node *np = pdev->dev.of_node; struct stmpe_gpio_platform_data *pdata; struct stmpe_gpio *stmpe_gpio; int ret; @@ -321,13 +323,17 @@ static int __devinit stmpe_gpio_probe(struct platform_device *pdev) stmpe_gpio->dev = &pdev->dev; stmpe_gpio->stmpe = stmpe; - stmpe_gpio->norequest_mask = pdata ? pdata->norequest_mask : 0; - stmpe_gpio->chip = template_chip; stmpe_gpio->chip.ngpio = stmpe->num_gpios; stmpe_gpio->chip.dev = &pdev->dev; stmpe_gpio->chip.base = pdata ? pdata->gpio_base : -1; + if (pdata) + stmpe_gpio->norequest_mask = pdata->norequest_mask; + else if (np) + of_property_read_u32(np, "st,norequest-mask", + &stmpe_gpio->norequest_mask); + if (irq >= 0) stmpe_gpio->irq_base = stmpe->irq_base + STMPE_INT_GPIO(0); else diff --git a/drivers/mfd/stmpe.c b/drivers/mfd/stmpe.c index c94f521f392c..79e88d1fd99a 100644 --- a/drivers/mfd/stmpe.c +++ b/drivers/mfd/stmpe.c @@ -294,12 +294,14 @@ static struct resource stmpe_gpio_resources[] = { static struct mfd_cell stmpe_gpio_cell = { .name = "stmpe-gpio", + .of_compatible = "st,stmpe-gpio", .resources = stmpe_gpio_resources, .num_resources = ARRAY_SIZE(stmpe_gpio_resources), }; static struct mfd_cell stmpe_gpio_cell_noirq = { .name = "stmpe-gpio", + .of_compatible = "st,stmpe-gpio", /* gpio cell resources consist of an irq only so no resources here */ }; -- cgit v1.2.3 From fc13d5a5b17c657b7682c145d367dcb859c507d9 Mon Sep 17 00:00:00 2001 From: Lee Jones Date: Mon, 10 Dec 2012 10:07:54 +0000 Subject: gpio: Provide the STMPE GPIO driver with its own IRQ Domain The STMPE GPIO driver can be used as an IRQ controller by some related devices. Here we provide it with its very own IRQ Domain so that IRQs can be issued dynamically. This will stand the driver in good stead when it is enabled for Device Tree, as this it a prerequisite. Cc: Grant Likely Reviewed-by: Viresh Kumar Signed-off-by: Lee Jones Signed-off-by: Linus Walleij --- drivers/gpio/gpio-stmpe.c | 78 ++++++++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 31 deletions(-) (limited to 'drivers/gpio/gpio-stmpe.c') diff --git a/drivers/gpio/gpio-stmpe.c b/drivers/gpio/gpio-stmpe.c index 522c90ee96e8..3e1d39895cef 100644 --- a/drivers/gpio/gpio-stmpe.c +++ b/drivers/gpio/gpio-stmpe.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -29,6 +30,7 @@ struct stmpe_gpio { struct stmpe *stmpe; struct device *dev; struct mutex irq_lock; + struct irq_domain *domain; int irq_base; unsigned norequest_mask; @@ -104,7 +106,7 @@ static int stmpe_gpio_to_irq(struct gpio_chip *chip, unsigned offset) { struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(chip); - return stmpe_gpio->irq_base + offset; + return irq_create_mapping(stmpe_gpio->domain, offset); } static int stmpe_gpio_request(struct gpio_chip *chip, unsigned offset) @@ -133,7 +135,7 @@ static struct gpio_chip template_chip = { static int stmpe_gpio_irq_set_type(struct irq_data *d, unsigned int type) { struct stmpe_gpio *stmpe_gpio = irq_data_get_irq_chip_data(d); - int offset = d->irq - stmpe_gpio->irq_base; + int offset = d->hwirq; int regoffset = offset / 8; int mask = 1 << (offset % 8); @@ -200,7 +202,7 @@ static void stmpe_gpio_irq_sync_unlock(struct irq_data *d) static void stmpe_gpio_irq_mask(struct irq_data *d) { struct stmpe_gpio *stmpe_gpio = irq_data_get_irq_chip_data(d); - int offset = d->irq - stmpe_gpio->irq_base; + int offset = d->hwirq; int regoffset = offset / 8; int mask = 1 << (offset % 8); @@ -210,7 +212,7 @@ static void stmpe_gpio_irq_mask(struct irq_data *d) static void stmpe_gpio_irq_unmask(struct irq_data *d) { struct stmpe_gpio *stmpe_gpio = irq_data_get_irq_chip_data(d); - int offset = d->irq - stmpe_gpio->irq_base; + int offset = d->hwirq; int regoffset = offset / 8; int mask = 1 << (offset % 8); @@ -252,8 +254,9 @@ static irqreturn_t stmpe_gpio_irq(int irq, void *dev) while (stat) { int bit = __ffs(stat); int line = bank * 8 + bit; + int virq = irq_find_mapping(stmpe_gpio->domain, line); - handle_nested_irq(stmpe_gpio->irq_base + line); + handle_nested_irq(virq); stat &= ~(1 << bit); } @@ -268,38 +271,55 @@ static irqreturn_t stmpe_gpio_irq(int irq, void *dev) return IRQ_HANDLED; } -static int __devinit stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio) +int stmpe_gpio_irq_map(struct irq_domain *d, unsigned int virq, + irq_hw_number_t hwirq) { - int base = stmpe_gpio->irq_base; - int irq; + struct stmpe_gpio *stmpe_gpio = d->host_data; + + if (!stmpe_gpio) + return -EINVAL; - for (irq = base; irq < base + stmpe_gpio->chip.ngpio; irq++) { - irq_set_chip_data(irq, stmpe_gpio); - irq_set_chip_and_handler(irq, &stmpe_gpio_irq_chip, - handle_simple_irq); - irq_set_nested_thread(irq, 1); + irq_set_chip_data(hwirq, stmpe_gpio); + irq_set_chip_and_handler(hwirq, &stmpe_gpio_irq_chip, + handle_simple_irq); + irq_set_nested_thread(hwirq, 1); #ifdef CONFIG_ARM - set_irq_flags(irq, IRQF_VALID); + set_irq_flags(hwirq, IRQF_VALID); #else - irq_set_noprobe(irq); + irq_set_noprobe(hwirq); #endif - } return 0; } -static void stmpe_gpio_irq_remove(struct stmpe_gpio *stmpe_gpio) +void stmpe_gpio_irq_unmap(struct irq_domain *d, unsigned int virq) { - int base = stmpe_gpio->irq_base; - int irq; - - for (irq = base; irq < base + stmpe_gpio->chip.ngpio; irq++) { #ifdef CONFIG_ARM - set_irq_flags(irq, 0); + set_irq_flags(virq, 0); #endif - irq_set_chip_and_handler(irq, NULL, NULL); - irq_set_chip_data(irq, NULL); + irq_set_chip_and_handler(virq, NULL, NULL); + irq_set_chip_data(virq, NULL); +} + +static const struct irq_domain_ops stmpe_gpio_irq_simple_ops = { + .unmap = stmpe_gpio_irq_unmap, + .map = stmpe_gpio_irq_map, + .xlate = irq_domain_xlate_twocell, +}; + +static int __devinit stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio) +{ + int base = stmpe_gpio->irq_base; + + stmpe_gpio->domain = irq_domain_add_simple(NULL, + stmpe_gpio->chip.ngpio, base, + &stmpe_gpio_irq_simple_ops, stmpe_gpio); + if (!stmpe_gpio->domain) { + dev_err(stmpe_gpio->dev, "failed to create irqdomain\n"); + return -ENOSYS; } + + return 0; } static int __devinit stmpe_gpio_probe(struct platform_device *pdev) @@ -354,7 +374,7 @@ static int __devinit stmpe_gpio_probe(struct platform_device *pdev) IRQF_ONESHOT, "stmpe-gpio", stmpe_gpio); if (ret) { dev_err(&pdev->dev, "unable to get irq: %d\n", ret); - goto out_removeirq; + goto out_disable; } } @@ -374,9 +394,6 @@ static int __devinit stmpe_gpio_probe(struct platform_device *pdev) out_freeirq: if (irq >= 0) free_irq(irq, stmpe_gpio); -out_removeirq: - if (irq >= 0) - stmpe_gpio_irq_remove(stmpe_gpio); out_disable: stmpe_disable(stmpe, STMPE_BLOCK_GPIO); out_free: @@ -404,10 +421,9 @@ static int __devexit stmpe_gpio_remove(struct platform_device *pdev) stmpe_disable(stmpe, STMPE_BLOCK_GPIO); - if (irq >= 0) { + if (irq >= 0) free_irq(irq, stmpe_gpio); - stmpe_gpio_irq_remove(stmpe_gpio); - } + platform_set_drvdata(pdev, NULL); kfree(stmpe_gpio); -- cgit v1.2.3