From b9cfddd90d03b9000f1dd969149c0d091101dcef Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Wed, 12 Dec 2012 13:21:44 +0100 Subject: pinctrl: imx5: fix GPIO_8 pad CAN1_RXCAN configuration 3 is an invalid value for the CAN1_IPP_IND_CANRX_SELECT_INPUT register. Set it to 2, which correctly selects the GPIO_8 pad. Signed-off-by: Philipp Zabel Signed-off-by: Linus Walleij --- drivers/pinctrl/pinctrl-imx53.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/pinctrl') diff --git a/drivers/pinctrl/pinctrl-imx53.c b/drivers/pinctrl/pinctrl-imx53.c index ec4048691775..af571dc3dc63 100644 --- a/drivers/pinctrl/pinctrl-imx53.c +++ b/drivers/pinctrl/pinctrl-imx53.c @@ -1371,7 +1371,7 @@ static struct imx_pin_reg imx53_pin_regs[] = { IMX_PIN_REG(MX53_PAD_GPIO_8, 0x6C8, 0x338, 0, 0x7F8, 1), /* MX53_PAD_GPIO_8__ESAI1_TX5_RX0 */ IMX_PIN_REG(MX53_PAD_GPIO_8, 0x6C8, 0x338, 1, 0x000, 0), /* MX53_PAD_GPIO_8__GPIO1_8 */ IMX_PIN_REG(MX53_PAD_GPIO_8, 0x6C8, 0x338, 2, 0x000, 0), /* MX53_PAD_GPIO_8__EPIT2_EPITO */ - IMX_PIN_REG(MX53_PAD_GPIO_8, 0x6C8, 0x338, 3, 0x760, 3), /* MX53_PAD_GPIO_8__CAN1_RXCAN */ + IMX_PIN_REG(MX53_PAD_GPIO_8, 0x6C8, 0x338, 3, 0x760, 2), /* MX53_PAD_GPIO_8__CAN1_RXCAN */ IMX_PIN_REG(MX53_PAD_GPIO_8, 0x6C8, 0x338, 4, 0x880, 5), /* MX53_PAD_GPIO_8__UART2_RXD_MUX */ IMX_PIN_REG(MX53_PAD_GPIO_8, 0x6C8, 0x338, 5, 0x000, 0), /* MX53_PAD_GPIO_8__FIRI_TXD */ IMX_PIN_REG(MX53_PAD_GPIO_8, 0x6C8, 0x338, 6, 0x000, 0), /* MX53_PAD_GPIO_8__SPDIF_SRCLK */ -- cgit v1.2.3 From c62b2b3448330ce1056d7730a01db4e19c95cfca Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Wed, 12 Dec 2012 15:22:44 +0100 Subject: drivers/pinctrl/pinctrl-at91.c: convert kfree to devm_kfree The function at91_dt_node_to_map is ultimately called by the function pinctrl_get, which is an exported function. Since it is possible that this function is not called from within a probe function, for safety, the kfree is converted to a devm_kfree, to both free the data and remove it from the device in a failure situation. Acked-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Julia Lawall Signed-off-by: Linus Walleij --- drivers/pinctrl/pinctrl-at91.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/pinctrl') diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c index c5e757157183..bff54bfaff43 100644 --- a/drivers/pinctrl/pinctrl-at91.c +++ b/drivers/pinctrl/pinctrl-at91.c @@ -265,7 +265,7 @@ static int at91_dt_node_to_map(struct pinctrl_dev *pctldev, /* create mux map */ parent = of_get_parent(np); if (!parent) { - kfree(new_map); + devm_kfree(pctldev->dev, new_map); return -EINVAL; } new_map[0].type = PIN_MAP_TYPE_MUX_GROUP; -- cgit v1.2.3 From b0666ba4745e35adc4e4f25e46c883cc84075ced Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Tue, 11 Dec 2012 13:12:35 +0100 Subject: pinctrl: fix comment mistake This variable pertains to pinctrl handles not muxes specifically. Signed-off-by: Linus Walleij --- drivers/pinctrl/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/pinctrl') diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index 5cdee8669ea3..59f5a965bdc4 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c @@ -700,7 +700,7 @@ static struct pinctrl *create_pinctrl(struct device *dev) } } - /* Add the pinmux to the global list */ + /* Add the pinctrl handle to the global list */ list_add_tail(&p->node, &pinctrl_list); return p; -- cgit v1.2.3 From fc2b04e7fbd119f4bf41b6821d2f8ce4bf9ae417 Mon Sep 17 00:00:00 2001 From: Barry Song Date: Fri, 14 Dec 2012 17:15:59 +0800 Subject: pinctrl: sirf: enable GPIO pullup/down configuration from dts commit 7bec207427c2efb794 remove sirfsoc_gpio_set_pull function, this patches takes the feature back by adding sirf,pullups and sirf,pulldowns prop in dts, and the driver will set the GPIO pull according to the dts. Cc: Arnd Bergmann Signed-off-by: Barry Song Signed-off-by: Linus Walleij --- .../devicetree/bindings/pinctrl/pinctrl-sirf.txt | 3 ++ drivers/pinctrl/pinctrl-sirf.c | 48 ++++++++++++++++++++++ 2 files changed, 51 insertions(+) (limited to 'drivers/pinctrl') diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-sirf.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-sirf.txt index a2896df702ad..c596a6ad3285 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-sirf.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-sirf.txt @@ -6,6 +6,9 @@ Required properties: - interrupts : Interrupts used by every GPIO group - gpio-controller : Indicates this device is a GPIO controller - interrupt-controller : Marks the device node as an interrupt controller +Optional properties: +- sirf,pullups : if n-th bit of m-th bank is set, set a pullup on GPIO-n of bank m +- sirf,pulldowns : if n-th bit of m-th bank is set, set a pulldown on GPIO-n of bank m Please refer to pinctrl-bindings.txt in this directory for details of the common pinctrl bindings used by client devices. diff --git a/drivers/pinctrl/pinctrl-sirf.c b/drivers/pinctrl/pinctrl-sirf.c index a4f0c5e487d5..30e1a38293a0 100644 --- a/drivers/pinctrl/pinctrl-sirf.c +++ b/drivers/pinctrl/pinctrl-sirf.c @@ -1663,6 +1663,44 @@ const struct irq_domain_ops sirfsoc_gpio_irq_simple_ops = { .xlate = irq_domain_xlate_twocell, }; +static void sirfsoc_gpio_set_pullup(const u32 *pullups) +{ + int i, n; + const unsigned long *p = (const unsigned long *)pullups; + + for (i = 0; i < SIRFSOC_GPIO_NO_OF_BANKS; i++) { + n = find_first_bit(p + i, BITS_PER_LONG); + while (n < BITS_PER_LONG) { + u32 offset = SIRFSOC_GPIO_CTRL(i, n); + u32 val = readl(sgpio_bank[i].chip.regs + offset); + val |= SIRFSOC_GPIO_CTL_PULL_MASK; + val |= SIRFSOC_GPIO_CTL_PULL_HIGH; + writel(val, sgpio_bank[i].chip.regs + offset); + + n = find_next_bit(p + i, BITS_PER_LONG, n + 1); + } + } +} + +static void sirfsoc_gpio_set_pulldown(const u32 *pulldowns) +{ + int i, n; + const unsigned long *p = (const unsigned long *)pulldowns; + + for (i = 0; i < SIRFSOC_GPIO_NO_OF_BANKS; i++) { + n = find_first_bit(p + i, BITS_PER_LONG); + while (n < BITS_PER_LONG) { + u32 offset = SIRFSOC_GPIO_CTRL(i, n); + u32 val = readl(sgpio_bank[i].chip.regs + offset); + val |= SIRFSOC_GPIO_CTL_PULL_MASK; + val &= ~SIRFSOC_GPIO_CTL_PULL_HIGH; + writel(val, sgpio_bank[i].chip.regs + offset); + + n = find_next_bit(p + i, BITS_PER_LONG, n + 1); + } + } +} + static int __devinit sirfsoc_gpio_probe(struct device_node *np) { int i, err = 0; @@ -1671,6 +1709,8 @@ static int __devinit sirfsoc_gpio_probe(struct device_node *np) struct platform_device *pdev; bool is_marco = false; + u32 pullups[SIRFSOC_GPIO_NO_OF_BANKS], pulldowns[SIRFSOC_GPIO_NO_OF_BANKS]; + pdev = of_find_device_by_node(np); if (!pdev) return -ENODEV; @@ -1726,6 +1766,14 @@ static int __devinit sirfsoc_gpio_probe(struct device_node *np) irq_set_handler_data(bank->parent_irq, bank); } + if (!of_property_read_u32_array(np, "sirf,pullups", pullups, + SIRFSOC_GPIO_NO_OF_BANKS)) + sirfsoc_gpio_set_pullup(pullups); + + if (!of_property_read_u32_array(np, "sirf,pulldowns", pulldowns, + SIRFSOC_GPIO_NO_OF_BANKS)) + sirfsoc_gpio_set_pulldown(pulldowns); + return 0; out: -- cgit v1.2.3 From 4ca075decc2bffc36ecacc59f2d943a037b46543 Mon Sep 17 00:00:00 2001 From: Fabio Baltieri Date: Tue, 18 Dec 2012 10:12:11 +0100 Subject: pinctrl: nomadik: return if prcm_base is NULL This patch adds a check for npct->prcm_base to make sure that the address is not NULL before using it, as the driver was made capable of loading even without a proper memory resource in: f1671bf pinctrl/nomadik: make independent of prcmu driver Also, refuses to probe without prcm_base on anything else than nomadik. This solves the following crash, introduced during the merge window when booting on U8500 with device tree: pinctrl-nomadik pinctrl-db8500: No PRCM base, assume no ALT-Cx control is available Unable to handle kernel NULL pointer dereference at virtual address 00000138 pgd = c0004000 [00000138] *pgd=00000000 Internal error: Oops: 5 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 Not tainted (3.7.0-02892-g1ebaf4f #631) PC is at nmk_pmx_enable+0x1bc/0x4d0 LR is at clk_disable+0x40/0x44 [snip] [] (nmk_pmx_enable+0x1bc/0x4d0) from [] (pinmux_enable_setting+0x12c/0x1ec) [] (pinmux_enable_setting+0x12c/0x1ec) from [] (pinctrl_select_state_locked+0xfc/0x134) [] (pinctrl_select_state_locked+0xfc/0x134) from [] (pinctrl_register+0x26c/0x43c) [] (pinctrl_register+0x26c/0x43c) from [] (nmk_pinctrl_probe+0x114/0x238) [] (nmk_pinctrl_probe+0x114/0x238) from [] (platform_drv_probe+0x28/0x2c) [] (platform_drv_probe+0x28/0x2c) from [] (driver_probe_device+0x84/0x21c) [] (driver_probe_device+0x84/0x21c) from [] (__device_attach+0x50/0x54) [] (__device_attach+0x50/0x54) from [] (bus_for_each_drv+0x54/0x9c) [] (bus_for_each_drv+0x54/0x9c) from [] (device_attach+0x84/0x9c) [] (device_attach+0x84/0x9c) from [] (bus_probe_device+0x94/0xb8) [] (bus_probe_device+0x94/0xb8) from [] (device_add+0x4f0/0x5bc) [] (device_add+0x4f0/0x5bc) from [] (of_device_add+0x40/0x48) [] (of_device_add+0x40/0x48) from [] (of_platform_device_create_pdata+0x68/0x98) [] (of_platform_device_create_pdata+0x68/0x98) from [] (of_platform_bus_create+0xe4/0x260) [] (of_platform_bus_create+0xe4/0x260) from [] (of_platform_bus_create+0x130/0x260) [] (of_platform_bus_create+0x130/0x260) from [] (of_platform_populate+0x6c/0xac) [] (of_platform_populate+0x6c/0xac) from [] (u8500_init_machine+0x78/0x140) [] (u8500_init_machine+0x78/0x140) from [] (customize_machine+0x24/0x30) [] (customize_machine+0x24/0x30) from [] (do_one_initcall+0x130/0x1b0) [] (do_one_initcall+0x130/0x1b0) from [] (kernel_init+0x138/0x2e8) [] (kernel_init+0x138/0x2e8) from [] (ret_from_fork+0x14/0x20) Code: 0a00001b e19400b2 e59a200c e0822000 (e592c000) ---[ end trace 1b75b31a2719ed1c ]--- note: swapper/0[1] exited with preempt_count 1 Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b Signed-off-by: Fabio Baltieri Signed-off-by: Linus Walleij --- drivers/pinctrl/pinctrl-nomadik.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'drivers/pinctrl') diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c index ef66f98e9202..015b093287a4 100644 --- a/drivers/pinctrl/pinctrl-nomadik.c +++ b/drivers/pinctrl/pinctrl-nomadik.c @@ -259,6 +259,9 @@ static void nmk_prcm_altcx_set_mode(struct nmk_pinctrl *npct, const struct prcm_gpiocr_altcx_pin_desc *pin_desc; const u16 *gpiocr_regs; + if (!npct->prcm_base) + return; + if (alt_num > PRCM_IDX_GPIOCR_ALTC_MAX) { dev_err(npct->dev, "PRCM GPIOCR: alternate-C%i is invalid\n", alt_num); @@ -682,6 +685,9 @@ static int nmk_prcm_gpiocr_get_mode(struct pinctrl_dev *pctldev, int gpio) const struct prcm_gpiocr_altcx_pin_desc *pin_desc; const u16 *gpiocr_regs; + if (!npct->prcm_base) + return NMK_GPIO_ALT_C; + for (i = 0; i < npct->soc->npins_altcx; i++) { if (npct->soc->altcx_pins[i].pin == gpio) break; @@ -1887,9 +1893,12 @@ static int __devinit nmk_pinctrl_probe(struct platform_device *pdev) "failed to ioremap PRCM registers\n"); return -ENOMEM; } - } else { + } else if (version == PINCTRL_NMK_STN8815) { dev_info(&pdev->dev, "No PRCM base, assume no ALT-Cx control is available\n"); + } else { + dev_err(&pdev->dev, "missing PRCM base address\n"); + return -EINVAL; } /* -- cgit v1.2.3 From 150632b09aadf1996f5cb6c0c2620d63a01fe2de Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 21 Dec 2012 13:10:23 -0800 Subject: Drivers: pinctrl: remove __dev* attributes. CONFIG_HOTPLUG is going away as an option. As a result, the __dev* markings need to be removed. This change removes the use of __devinit, __devexit_p, __devinitdata, and __devexit from these drivers. Based on patches originally written by Bill Pemberton, but redone by me in order to handle some of the coding style issues better, by hand. Cc: Bill Pemberton Cc: Linus Walleij Cc: Jean-Christophe Plagniol-Villard Cc: Stephen Warren Cc: Srinidhi Kasagar Cc: Barry Song Cc: Viresh Kumar Cc: Thomas Petazzoni Cc: Jason Cooper Cc: Sebastian Hesselbarth Cc: Andrew Lunn Signed-off-by: Greg Kroah-Hartman --- drivers/pinctrl/mvebu/pinctrl-armada-370.c | 8 +++---- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 8 +++---- drivers/pinctrl/mvebu/pinctrl-dove.c | 8 +++---- drivers/pinctrl/mvebu/pinctrl-kirkwood.c | 8 +++---- drivers/pinctrl/mvebu/pinctrl-mvebu.c | 11 ++++----- drivers/pinctrl/pinctrl-at91.c | 37 +++++++++++++++--------------- drivers/pinctrl/pinctrl-bcm2835.c | 2 +- drivers/pinctrl/pinctrl-exynos5440.c | 2 +- drivers/pinctrl/pinctrl-imx.c | 19 +++++++-------- drivers/pinctrl/pinctrl-imx23.c | 2 +- drivers/pinctrl/pinctrl-imx28.c | 2 +- drivers/pinctrl/pinctrl-imx35.c | 2 +- drivers/pinctrl/pinctrl-imx51.c | 2 +- drivers/pinctrl/pinctrl-imx53.c | 2 +- drivers/pinctrl/pinctrl-imx6q.c | 2 +- drivers/pinctrl/pinctrl-mmp2.c | 2 +- drivers/pinctrl/pinctrl-mxs.c | 14 +++++------ drivers/pinctrl/pinctrl-nomadik-db8500.c | 3 +-- drivers/pinctrl/pinctrl-nomadik-db8540.c | 3 +-- drivers/pinctrl/pinctrl-nomadik-stn8815.c | 3 +-- drivers/pinctrl/pinctrl-nomadik.c | 4 ++-- drivers/pinctrl/pinctrl-pxa168.c | 2 +- drivers/pinctrl/pinctrl-pxa910.c | 2 +- drivers/pinctrl/pinctrl-samsung.c | 26 +++++++++++---------- drivers/pinctrl/pinctrl-single.c | 9 ++++---- drivers/pinctrl/pinctrl-sirf.c | 4 ++-- drivers/pinctrl/pinctrl-tegra.c | 2 +- drivers/pinctrl/pinctrl-tegra20.c | 2 +- drivers/pinctrl/pinctrl-tegra30.c | 2 +- drivers/pinctrl/pinctrl-u300.c | 2 +- drivers/pinctrl/pinctrl-xway.c | 2 +- drivers/pinctrl/spear/pinctrl-plgpio.c | 5 ++-- drivers/pinctrl/spear/pinctrl-spear.c | 11 ++++----- drivers/pinctrl/spear/pinctrl-spear.h | 11 ++++----- drivers/pinctrl/spear/pinctrl-spear1310.c | 2 +- drivers/pinctrl/spear/pinctrl-spear1340.c | 2 +- drivers/pinctrl/spear/pinctrl-spear300.c | 2 +- drivers/pinctrl/spear/pinctrl-spear310.c | 2 +- drivers/pinctrl/spear/pinctrl-spear320.c | 2 +- 39 files changed, 114 insertions(+), 120 deletions(-) (limited to 'drivers/pinctrl') diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-370.c b/drivers/pinctrl/mvebu/pinctrl-armada-370.c index c907647de6ad..48e21a229483 100644 --- a/drivers/pinctrl/mvebu/pinctrl-armada-370.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-370.c @@ -367,7 +367,7 @@ static struct mvebu_mpp_mode mv88f6710_mpp_modes[] = { static struct mvebu_pinctrl_soc_info armada_370_pinctrl_info; -static struct of_device_id armada_370_pinctrl_of_match[] __devinitdata = { +static struct of_device_id armada_370_pinctrl_of_match[] = { { .compatible = "marvell,mv88f6710-pinctrl" }, { }, }; @@ -382,7 +382,7 @@ static struct pinctrl_gpio_range mv88f6710_mpp_gpio_ranges[] = { MPP_GPIO_RANGE(2, 64, 64, 2), }; -static int __devinit armada_370_pinctrl_probe(struct platform_device *pdev) +static int armada_370_pinctrl_probe(struct platform_device *pdev) { struct mvebu_pinctrl_soc_info *soc = &armada_370_pinctrl_info; @@ -399,7 +399,7 @@ static int __devinit armada_370_pinctrl_probe(struct platform_device *pdev) return mvebu_pinctrl_probe(pdev); } -static int __devexit armada_370_pinctrl_remove(struct platform_device *pdev) +static int armada_370_pinctrl_remove(struct platform_device *pdev) { return mvebu_pinctrl_remove(pdev); } @@ -411,7 +411,7 @@ static struct platform_driver armada_370_pinctrl_driver = { .of_match_table = of_match_ptr(armada_370_pinctrl_of_match), }, .probe = armada_370_pinctrl_probe, - .remove = __devexit_p(armada_370_pinctrl_remove), + .remove = armada_370_pinctrl_remove, }; module_platform_driver(armada_370_pinctrl_driver); diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c index 40bd52a46b4e..ab5dc04b3e8a 100644 --- a/drivers/pinctrl/mvebu/pinctrl-armada-xp.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-xp.c @@ -349,7 +349,7 @@ static struct mvebu_mpp_mode armada_xp_mpp_modes[] = { static struct mvebu_pinctrl_soc_info armada_xp_pinctrl_info; -static struct of_device_id armada_xp_pinctrl_of_match[] __devinitdata = { +static struct of_device_id armada_xp_pinctrl_of_match[] = { { .compatible = "marvell,mv78230-pinctrl", .data = (void *) V_MV78230, @@ -394,7 +394,7 @@ static struct pinctrl_gpio_range mv78460_mpp_gpio_ranges[] = { MPP_GPIO_RANGE(2, 64, 64, 3), }; -static int __devinit armada_xp_pinctrl_probe(struct platform_device *pdev) +static int armada_xp_pinctrl_probe(struct platform_device *pdev) { struct mvebu_pinctrl_soc_info *soc = &armada_xp_pinctrl_info; const struct of_device_id *match = @@ -446,7 +446,7 @@ static int __devinit armada_xp_pinctrl_probe(struct platform_device *pdev) return mvebu_pinctrl_probe(pdev); } -static int __devexit armada_xp_pinctrl_remove(struct platform_device *pdev) +static int armada_xp_pinctrl_remove(struct platform_device *pdev) { return mvebu_pinctrl_remove(pdev); } @@ -458,7 +458,7 @@ static struct platform_driver armada_xp_pinctrl_driver = { .of_match_table = of_match_ptr(armada_xp_pinctrl_of_match), }, .probe = armada_xp_pinctrl_probe, - .remove = __devexit_p(armada_xp_pinctrl_remove), + .remove = armada_xp_pinctrl_remove, }; module_platform_driver(armada_xp_pinctrl_driver); diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c b/drivers/pinctrl/mvebu/pinctrl-dove.c index 40c9c3eecd94..750dea78f53a 100644 --- a/drivers/pinctrl/mvebu/pinctrl-dove.c +++ b/drivers/pinctrl/mvebu/pinctrl-dove.c @@ -579,12 +579,12 @@ static struct mvebu_pinctrl_soc_info dove_pinctrl_info = { static struct clk *clk; -static struct of_device_id dove_pinctrl_of_match[] __devinitdata = { +static struct of_device_id dove_pinctrl_of_match[] = { { .compatible = "marvell,dove-pinctrl", .data = &dove_pinctrl_info }, { } }; -static int __devinit dove_pinctrl_probe(struct platform_device *pdev) +static int dove_pinctrl_probe(struct platform_device *pdev) { const struct of_device_id *match = of_match_device(dove_pinctrl_of_match, &pdev->dev); @@ -601,7 +601,7 @@ static int __devinit dove_pinctrl_probe(struct platform_device *pdev) return mvebu_pinctrl_probe(pdev); } -static int __devexit dove_pinctrl_remove(struct platform_device *pdev) +static int dove_pinctrl_remove(struct platform_device *pdev) { int ret; @@ -618,7 +618,7 @@ static struct platform_driver dove_pinctrl_driver = { .of_match_table = of_match_ptr(dove_pinctrl_of_match), }, .probe = dove_pinctrl_probe, - .remove = __devexit_p(dove_pinctrl_remove), + .remove = dove_pinctrl_remove, }; module_platform_driver(dove_pinctrl_driver); diff --git a/drivers/pinctrl/mvebu/pinctrl-kirkwood.c b/drivers/pinctrl/mvebu/pinctrl-kirkwood.c index fa6ce31c94d9..f12084e18057 100644 --- a/drivers/pinctrl/mvebu/pinctrl-kirkwood.c +++ b/drivers/pinctrl/mvebu/pinctrl-kirkwood.c @@ -444,7 +444,7 @@ static struct mvebu_pinctrl_soc_info mv98dx4122_info = { .ngpioranges = ARRAY_SIZE(mv88f628x_gpio_ranges), }; -static struct of_device_id kirkwood_pinctrl_of_match[] __devinitdata = { +static struct of_device_id kirkwood_pinctrl_of_match[] = { { .compatible = "marvell,88f6180-pinctrl", .data = &mv88f6180_info }, { .compatible = "marvell,88f6190-pinctrl", .data = &mv88f6190_info }, { .compatible = "marvell,88f6192-pinctrl", .data = &mv88f6192_info }, @@ -454,7 +454,7 @@ static struct of_device_id kirkwood_pinctrl_of_match[] __devinitdata = { { } }; -static int __devinit kirkwood_pinctrl_probe(struct platform_device *pdev) +static int kirkwood_pinctrl_probe(struct platform_device *pdev) { const struct of_device_id *match = of_match_device(kirkwood_pinctrl_of_match, &pdev->dev); @@ -462,7 +462,7 @@ static int __devinit kirkwood_pinctrl_probe(struct platform_device *pdev) return mvebu_pinctrl_probe(pdev); } -static int __devexit kirkwood_pinctrl_remove(struct platform_device *pdev) +static int kirkwood_pinctrl_remove(struct platform_device *pdev) { return mvebu_pinctrl_remove(pdev); } @@ -474,7 +474,7 @@ static struct platform_driver kirkwood_pinctrl_driver = { .of_match_table = of_match_ptr(kirkwood_pinctrl_of_match), }, .probe = kirkwood_pinctrl_probe, - .remove = __devexit_p(kirkwood_pinctrl_remove), + .remove = kirkwood_pinctrl_remove, }; module_platform_driver(kirkwood_pinctrl_driver); diff --git a/drivers/pinctrl/mvebu/pinctrl-mvebu.c b/drivers/pinctrl/mvebu/pinctrl-mvebu.c index 6c44b7e8964c..c689c04a4f52 100644 --- a/drivers/pinctrl/mvebu/pinctrl-mvebu.c +++ b/drivers/pinctrl/mvebu/pinctrl-mvebu.c @@ -478,8 +478,7 @@ static struct pinctrl_ops mvebu_pinctrl_ops = { .dt_free_map = mvebu_pinctrl_dt_free_map, }; -static int __devinit _add_function(struct mvebu_pinctrl_function *funcs, - const char *name) +static int _add_function(struct mvebu_pinctrl_function *funcs, const char *name) { while (funcs->num_groups) { /* function already there */ @@ -494,8 +493,8 @@ static int __devinit _add_function(struct mvebu_pinctrl_function *funcs, return 0; } -static int __devinit mvebu_pinctrl_build_functions(struct platform_device *pdev, - struct mvebu_pinctrl *pctl) +static int mvebu_pinctrl_build_functions(struct platform_device *pdev, + struct mvebu_pinctrl *pctl) { struct mvebu_pinctrl_function *funcs; int num = 0; @@ -568,7 +567,7 @@ static int __devinit mvebu_pinctrl_build_functions(struct platform_device *pdev, return 0; } -int __devinit mvebu_pinctrl_probe(struct platform_device *pdev) +int mvebu_pinctrl_probe(struct platform_device *pdev) { struct mvebu_pinctrl_soc_info *soc = dev_get_platdata(&pdev->dev); struct device_node *np = pdev->dev.of_node; @@ -745,7 +744,7 @@ int __devinit mvebu_pinctrl_probe(struct platform_device *pdev) return 0; } -int __devexit mvebu_pinctrl_remove(struct platform_device *pdev) +int mvebu_pinctrl_remove(struct platform_device *pdev) { struct mvebu_pinctrl *pctl = platform_get_drvdata(pdev); pinctrl_unregister(pctl->pctldev); diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c index c5e757157183..5e224974125d 100644 --- a/drivers/pinctrl/pinctrl-at91.c +++ b/drivers/pinctrl/pinctrl-at91.c @@ -792,8 +792,8 @@ static struct pinctrl_desc at91_pinctrl_desc = { static const char *gpio_compat = "atmel,at91rm9200-gpio"; -static void __devinit at91_pinctrl_child_count(struct at91_pinctrl *info, - struct device_node *np) +static void at91_pinctrl_child_count(struct at91_pinctrl *info, + struct device_node *np) { struct device_node *child; @@ -807,8 +807,8 @@ static void __devinit at91_pinctrl_child_count(struct at91_pinctrl *info, } } -static int __devinit at91_pinctrl_mux_mask(struct at91_pinctrl *info, - struct device_node *np) +static int at91_pinctrl_mux_mask(struct at91_pinctrl *info, + struct device_node *np) { int ret = 0; int size; @@ -840,10 +840,9 @@ static int __devinit at91_pinctrl_mux_mask(struct at91_pinctrl *info, return ret; } -static int __devinit at91_pinctrl_parse_groups(struct device_node *np, - struct at91_pin_group *grp, - struct at91_pinctrl *info, - u32 index) +static int at91_pinctrl_parse_groups(struct device_node *np, + struct at91_pin_group *grp, + struct at91_pinctrl *info, u32 index) { struct at91_pmx_pin *pin; int size; @@ -889,8 +888,8 @@ static int __devinit at91_pinctrl_parse_groups(struct device_node *np, return 0; } -static int __devinit at91_pinctrl_parse_functions(struct device_node *np, - struct at91_pinctrl *info, u32 index) +static int at91_pinctrl_parse_functions(struct device_node *np, + struct at91_pinctrl *info, u32 index) { struct device_node *child; struct at91_pmx_func *func; @@ -926,14 +925,14 @@ static int __devinit at91_pinctrl_parse_functions(struct device_node *np, return 0; } -static struct of_device_id at91_pinctrl_of_match[] __devinitdata = { +static struct of_device_id at91_pinctrl_of_match[] = { { .compatible = "atmel,at91sam9x5-pinctrl", .data = &at91sam9x5_ops }, { .compatible = "atmel,at91rm9200-pinctrl", .data = &at91rm9200_ops }, { /* sentinel */ } }; -static int __devinit at91_pinctrl_probe_dt(struct platform_device *pdev, - struct at91_pinctrl *info) +static int at91_pinctrl_probe_dt(struct platform_device *pdev, + struct at91_pinctrl *info) { int ret = 0; int i, j; @@ -999,7 +998,7 @@ static int __devinit at91_pinctrl_probe_dt(struct platform_device *pdev, return 0; } -static int __devinit at91_pinctrl_probe(struct platform_device *pdev) +static int at91_pinctrl_probe(struct platform_device *pdev) { struct at91_pinctrl *info; struct pinctrl_pin_desc *pdesc; @@ -1063,7 +1062,7 @@ err: return ret; } -static int __devexit at91_pinctrl_remove(struct platform_device *pdev) +static int at91_pinctrl_remove(struct platform_device *pdev) { struct at91_pinctrl *info = platform_get_drvdata(pdev); @@ -1443,7 +1442,7 @@ static struct gpio_chip at91_gpio_template = { .ngpio = MAX_NB_GPIO_PER_BANK, }; -static void __devinit at91_gpio_probe_fixup(void) +static void at91_gpio_probe_fixup(void) { unsigned i; struct at91_gpio_chip *at91_gpio, *last = NULL; @@ -1461,13 +1460,13 @@ static void __devinit at91_gpio_probe_fixup(void) } } -static struct of_device_id at91_gpio_of_match[] __devinitdata = { +static struct of_device_id at91_gpio_of_match[] = { { .compatible = "atmel,at91sam9x5-gpio", .data = &at91sam9x5_ops, }, { .compatible = "atmel,at91rm9200-gpio", .data = &at91rm9200_ops }, { /* sentinel */ } }; -static int __devinit at91_gpio_probe(struct platform_device *pdev) +static int at91_gpio_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; struct resource *res; @@ -1609,7 +1608,7 @@ static struct platform_driver at91_pinctrl_driver = { .of_match_table = of_match_ptr(at91_pinctrl_of_match), }, .probe = at91_pinctrl_probe, - .remove = __devexit_p(at91_pinctrl_remove), + .remove = at91_pinctrl_remove, }; static int __init at91_pinctrl_init(void) diff --git a/drivers/pinctrl/pinctrl-bcm2835.c b/drivers/pinctrl/pinctrl-bcm2835.c index 0b0e9b49a1b5..d347b9f2eae3 100644 --- a/drivers/pinctrl/pinctrl-bcm2835.c +++ b/drivers/pinctrl/pinctrl-bcm2835.c @@ -936,7 +936,7 @@ static struct pinctrl_gpio_range bcm2835_pinctrl_gpio_range = { .npins = BCM2835_NUM_GPIOS, }; -static int __devinit bcm2835_pinctrl_probe(struct platform_device *pdev) +static int bcm2835_pinctrl_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; diff --git a/drivers/pinctrl/pinctrl-exynos5440.c b/drivers/pinctrl/pinctrl-exynos5440.c index 07db89528dc3..de05b64f0da6 100644 --- a/drivers/pinctrl/pinctrl-exynos5440.c +++ b/drivers/pinctrl/pinctrl-exynos5440.c @@ -842,7 +842,7 @@ static int __init exynos5440_gpiolib_unregister(struct platform_device *pdev, return 0; } -static int __devinit exynos5440_pinctrl_probe(struct platform_device *pdev) +static int exynos5440_pinctrl_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct exynos5440_pinctrl_priv_data *priv; diff --git a/drivers/pinctrl/pinctrl-imx.c b/drivers/pinctrl/pinctrl-imx.c index 131d86d7c2a5..43a6f1ffc786 100644 --- a/drivers/pinctrl/pinctrl-imx.c +++ b/drivers/pinctrl/pinctrl-imx.c @@ -425,10 +425,10 @@ static int imx_pinctrl_get_pin_id_and_mux(const struct imx_pinctrl_soc_info *inf return 0; } -static int __devinit imx_pinctrl_parse_groups(struct device_node *np, - struct imx_pin_group *grp, - struct imx_pinctrl_soc_info *info, - u32 index) +static int imx_pinctrl_parse_groups(struct device_node *np, + struct imx_pin_group *grp, + struct imx_pinctrl_soc_info *info, + u32 index) { unsigned int pin_func_id; int ret, size; @@ -482,8 +482,9 @@ static int __devinit imx_pinctrl_parse_groups(struct device_node *np, return 0; } -static int __devinit imx_pinctrl_parse_functions(struct device_node *np, - struct imx_pinctrl_soc_info *info, u32 index) +static int imx_pinctrl_parse_functions(struct device_node *np, + struct imx_pinctrl_soc_info *info, + u32 index) { struct device_node *child; struct imx_pmx_func *func; @@ -517,7 +518,7 @@ static int __devinit imx_pinctrl_parse_functions(struct device_node *np, return 0; } -static int __devinit imx_pinctrl_probe_dt(struct platform_device *pdev, +static int imx_pinctrl_probe_dt(struct platform_device *pdev, struct imx_pinctrl_soc_info *info) { struct device_node *np = pdev->dev.of_node; @@ -560,8 +561,8 @@ static int __devinit imx_pinctrl_probe_dt(struct platform_device *pdev, return 0; } -int __devinit imx_pinctrl_probe(struct platform_device *pdev, - struct imx_pinctrl_soc_info *info) +int imx_pinctrl_probe(struct platform_device *pdev, + struct imx_pinctrl_soc_info *info) { struct imx_pinctrl *ipctl; struct resource *res; diff --git a/drivers/pinctrl/pinctrl-imx23.c b/drivers/pinctrl/pinctrl-imx23.c index 04364f7822b7..e76d75c9d1ba 100644 --- a/drivers/pinctrl/pinctrl-imx23.c +++ b/drivers/pinctrl/pinctrl-imx23.c @@ -267,7 +267,7 @@ static struct mxs_pinctrl_soc_data imx23_pinctrl_data = { .npins = ARRAY_SIZE(imx23_pins), }; -static int __devinit imx23_pinctrl_probe(struct platform_device *pdev) +static int imx23_pinctrl_probe(struct platform_device *pdev) { return mxs_pinctrl_probe(pdev, &imx23_pinctrl_data); } diff --git a/drivers/pinctrl/pinctrl-imx28.c b/drivers/pinctrl/pinctrl-imx28.c index e1af2ba89004..79c9c8d296af 100644 --- a/drivers/pinctrl/pinctrl-imx28.c +++ b/drivers/pinctrl/pinctrl-imx28.c @@ -383,7 +383,7 @@ static struct mxs_pinctrl_soc_data imx28_pinctrl_data = { .npins = ARRAY_SIZE(imx28_pins), }; -static int __devinit imx28_pinctrl_probe(struct platform_device *pdev) +static int imx28_pinctrl_probe(struct platform_device *pdev) { return mxs_pinctrl_probe(pdev, &imx28_pinctrl_data); } diff --git a/drivers/pinctrl/pinctrl-imx35.c b/drivers/pinctrl/pinctrl-imx35.c index 1dbf5278acec..6e214110e3d5 100644 --- a/drivers/pinctrl/pinctrl-imx35.c +++ b/drivers/pinctrl/pinctrl-imx35.c @@ -1564,7 +1564,7 @@ static struct of_device_id imx35_pinctrl_of_match[] = { { /* sentinel */ } }; -static int __devinit imx35_pinctrl_probe(struct platform_device *pdev) +static int imx35_pinctrl_probe(struct platform_device *pdev) { return imx_pinctrl_probe(pdev, &imx35_pinctrl_info); } diff --git a/drivers/pinctrl/pinctrl-imx51.c b/drivers/pinctrl/pinctrl-imx51.c index 131216558a7b..9a92aaad150f 100644 --- a/drivers/pinctrl/pinctrl-imx51.c +++ b/drivers/pinctrl/pinctrl-imx51.c @@ -1291,7 +1291,7 @@ static struct of_device_id imx51_pinctrl_of_match[] = { { /* sentinel */ } }; -static int __devinit imx51_pinctrl_probe(struct platform_device *pdev) +static int imx51_pinctrl_probe(struct platform_device *pdev) { return imx_pinctrl_probe(pdev, &imx51_pinctrl_info); } diff --git a/drivers/pinctrl/pinctrl-imx53.c b/drivers/pinctrl/pinctrl-imx53.c index ec4048691775..bfe0ba8c3296 100644 --- a/drivers/pinctrl/pinctrl-imx53.c +++ b/drivers/pinctrl/pinctrl-imx53.c @@ -1618,7 +1618,7 @@ static struct of_device_id imx53_pinctrl_of_match[] = { { /* sentinel */ } }; -static int __devinit imx53_pinctrl_probe(struct platform_device *pdev) +static int imx53_pinctrl_probe(struct platform_device *pdev) { return imx_pinctrl_probe(pdev, &imx53_pinctrl_info); } diff --git a/drivers/pinctrl/pinctrl-imx6q.c b/drivers/pinctrl/pinctrl-imx6q.c index 844ab13c93a3..663346bb765e 100644 --- a/drivers/pinctrl/pinctrl-imx6q.c +++ b/drivers/pinctrl/pinctrl-imx6q.c @@ -2302,7 +2302,7 @@ static struct of_device_id imx6q_pinctrl_of_match[] = { { /* sentinel */ } }; -static int __devinit imx6q_pinctrl_probe(struct platform_device *pdev) +static int imx6q_pinctrl_probe(struct platform_device *pdev) { return imx_pinctrl_probe(pdev, &imx6q_pinctrl_info); } diff --git a/drivers/pinctrl/pinctrl-mmp2.c b/drivers/pinctrl/pinctrl-mmp2.c index 4fbb3db3f1c1..4afa56a3a51d 100644 --- a/drivers/pinctrl/pinctrl-mmp2.c +++ b/drivers/pinctrl/pinctrl-mmp2.c @@ -686,7 +686,7 @@ static struct pxa3xx_pinmux_info mmp2_info = { .ds_shift = MMP2_DS_SHIFT, }; -static int __devinit mmp2_pinmux_probe(struct platform_device *pdev) +static int mmp2_pinmux_probe(struct platform_device *pdev) { return pxa3xx_pinctrl_register(pdev, &mmp2_info); } diff --git a/drivers/pinctrl/pinctrl-mxs.c b/drivers/pinctrl/pinctrl-mxs.c index 180f16379ec1..dd227d21dcf2 100644 --- a/drivers/pinctrl/pinctrl-mxs.c +++ b/drivers/pinctrl/pinctrl-mxs.c @@ -335,9 +335,9 @@ static struct pinctrl_desc mxs_pinctrl_desc = { .owner = THIS_MODULE, }; -static int __devinit mxs_pinctrl_parse_group(struct platform_device *pdev, - struct device_node *np, int idx, - const char **out_name) +static int mxs_pinctrl_parse_group(struct platform_device *pdev, + struct device_node *np, int idx, + const char **out_name) { struct mxs_pinctrl_data *d = platform_get_drvdata(pdev); struct mxs_group *g = &d->soc->groups[idx]; @@ -384,8 +384,8 @@ static int __devinit mxs_pinctrl_parse_group(struct platform_device *pdev, return 0; } -static int __devinit mxs_pinctrl_probe_dt(struct platform_device *pdev, - struct mxs_pinctrl_data *d) +static int mxs_pinctrl_probe_dt(struct platform_device *pdev, + struct mxs_pinctrl_data *d) { struct mxs_pinctrl_soc_data *soc = d->soc; struct device_node *np = pdev->dev.of_node; @@ -476,8 +476,8 @@ static int __devinit mxs_pinctrl_probe_dt(struct platform_device *pdev, return 0; } -int __devinit mxs_pinctrl_probe(struct platform_device *pdev, - struct mxs_pinctrl_soc_data *soc) +int mxs_pinctrl_probe(struct platform_device *pdev, + struct mxs_pinctrl_soc_data *soc) { struct device_node *np = pdev->dev.of_node; struct mxs_pinctrl_data *d; diff --git a/drivers/pinctrl/pinctrl-nomadik-db8500.c b/drivers/pinctrl/pinctrl-nomadik-db8500.c index 7d88ae352119..30b4da91ef7e 100644 --- a/drivers/pinctrl/pinctrl-nomadik-db8500.c +++ b/drivers/pinctrl/pinctrl-nomadik-db8500.c @@ -1251,8 +1251,7 @@ static const struct nmk_pinctrl_soc_data nmk_db8500_soc = { .prcm_gpiocr_registers = db8500_prcm_gpiocr_regs, }; -void __devinit -nmk_pinctrl_db8500_init(const struct nmk_pinctrl_soc_data **soc) +void nmk_pinctrl_db8500_init(const struct nmk_pinctrl_soc_data **soc) { *soc = &nmk_db8500_soc; } diff --git a/drivers/pinctrl/pinctrl-nomadik-db8540.c b/drivers/pinctrl/pinctrl-nomadik-db8540.c index bb6a4016322a..d7ba5443bae0 100644 --- a/drivers/pinctrl/pinctrl-nomadik-db8540.c +++ b/drivers/pinctrl/pinctrl-nomadik-db8540.c @@ -1260,8 +1260,7 @@ static const struct nmk_pinctrl_soc_data nmk_db8540_soc = { .prcm_gpiocr_registers = db8540_prcm_gpiocr_regs, }; -void __devinit -nmk_pinctrl_db8540_init(const struct nmk_pinctrl_soc_data **soc) +void nmk_pinctrl_db8540_init(const struct nmk_pinctrl_soc_data **soc) { *soc = &nmk_db8540_soc; } diff --git a/drivers/pinctrl/pinctrl-nomadik-stn8815.c b/drivers/pinctrl/pinctrl-nomadik-stn8815.c index 7d432c3bc359..924a3393fa82 100644 --- a/drivers/pinctrl/pinctrl-nomadik-stn8815.c +++ b/drivers/pinctrl/pinctrl-nomadik-stn8815.c @@ -350,8 +350,7 @@ static const struct nmk_pinctrl_soc_data nmk_stn8815_soc = { .ngroups = ARRAY_SIZE(nmk_stn8815_groups), }; -void __devinit -nmk_pinctrl_stn8815_init(const struct nmk_pinctrl_soc_data **soc) +void nmk_pinctrl_stn8815_init(const struct nmk_pinctrl_soc_data **soc) { *soc = &nmk_stn8815_soc; } diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c index ef66f98e9202..c68ec404474c 100644 --- a/drivers/pinctrl/pinctrl-nomadik.c +++ b/drivers/pinctrl/pinctrl-nomadik.c @@ -1306,7 +1306,7 @@ const struct irq_domain_ops nmk_gpio_irq_simple_ops = { .xlate = irq_domain_xlate_twocell, }; -static int __devinit nmk_gpio_probe(struct platform_device *dev) +static int nmk_gpio_probe(struct platform_device *dev) { struct nmk_gpio_platform_data *pdata = dev->dev.platform_data; struct device_node *np = dev->dev.of_node; @@ -1846,7 +1846,7 @@ static const struct of_device_id nmk_pinctrl_match[] = { {}, }; -static int __devinit nmk_pinctrl_probe(struct platform_device *pdev) +static int nmk_pinctrl_probe(struct platform_device *pdev) { const struct platform_device_id *platid = platform_get_device_id(pdev); struct device_node *np = pdev->dev.of_node; diff --git a/drivers/pinctrl/pinctrl-pxa168.c b/drivers/pinctrl/pinctrl-pxa168.c index cb771e4a6355..d9cd2b457484 100644 --- a/drivers/pinctrl/pinctrl-pxa168.c +++ b/drivers/pinctrl/pinctrl-pxa168.c @@ -615,7 +615,7 @@ static struct pxa3xx_pinmux_info pxa168_info = { .ds_shift = PXA168_DS_SHIFT, }; -static int __devinit pxa168_pinmux_probe(struct platform_device *pdev) +static int pxa168_pinmux_probe(struct platform_device *pdev) { return pxa3xx_pinctrl_register(pdev, &pxa168_info); } diff --git a/drivers/pinctrl/pinctrl-pxa910.c b/drivers/pinctrl/pinctrl-pxa910.c index 5fecd221b830..a2f917b847fb 100644 --- a/drivers/pinctrl/pinctrl-pxa910.c +++ b/drivers/pinctrl/pinctrl-pxa910.c @@ -971,7 +971,7 @@ static struct pxa3xx_pinmux_info pxa910_info = { .ds_shift = PXA910_DS_SHIFT, }; -static int __devinit pxa910_pinmux_probe(struct platform_device *pdev) +static int pxa910_pinmux_probe(struct platform_device *pdev) { return pxa3xx_pinctrl_register(pdev, &pxa910_info); } diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c index 864fed822f9d..fd7b24cd8908 100644 --- a/drivers/pinctrl/pinctrl-samsung.c +++ b/drivers/pinctrl/pinctrl-samsung.c @@ -549,9 +549,11 @@ static int samsung_gpio_to_irq(struct gpio_chip *gc, unsigned offset) * Parse the pin names listed in the 'samsung,pins' property and convert it * into a list of gpio numbers are create a pin group from it. */ -static int __devinit samsung_pinctrl_parse_dt_pins(struct platform_device *pdev, - struct device_node *cfg_np, struct pinctrl_desc *pctl, - unsigned int **pin_list, unsigned int *npins) +static int samsung_pinctrl_parse_dt_pins(struct platform_device *pdev, + struct device_node *cfg_np, + struct pinctrl_desc *pctl, + unsigned int **pin_list, + unsigned int *npins) { struct device *dev = &pdev->dev; struct property *prop; @@ -596,8 +598,8 @@ static int __devinit samsung_pinctrl_parse_dt_pins(struct platform_device *pdev, * from device node of the pin-controller. A pin group is formed with all * the pins listed in the "samsung,pins" property. */ -static int __devinit samsung_pinctrl_parse_dt(struct platform_device *pdev, - struct samsung_pinctrl_drv_data *drvdata) +static int samsung_pinctrl_parse_dt(struct platform_device *pdev, + struct samsung_pinctrl_drv_data *drvdata) { struct device *dev = &pdev->dev; struct device_node *dev_np = dev->of_node; @@ -691,8 +693,8 @@ static int __devinit samsung_pinctrl_parse_dt(struct platform_device *pdev, } /* register the pinctrl interface with the pinctrl subsystem */ -static int __devinit samsung_pinctrl_register(struct platform_device *pdev, - struct samsung_pinctrl_drv_data *drvdata) +static int samsung_pinctrl_register(struct platform_device *pdev, + struct samsung_pinctrl_drv_data *drvdata) { struct pinctrl_desc *ctrldesc = &drvdata->pctl; struct pinctrl_pin_desc *pindesc, *pdesc; @@ -778,8 +780,8 @@ static const struct gpio_chip samsung_gpiolib_chip = { }; /* register the gpiolib interface with the gpiolib subsystem */ -static int __devinit samsung_gpiolib_register(struct platform_device *pdev, - struct samsung_pinctrl_drv_data *drvdata) +static int samsung_gpiolib_register(struct platform_device *pdev, + struct samsung_pinctrl_drv_data *drvdata) { struct samsung_pin_ctrl *ctrl = drvdata->ctrl; struct samsung_pin_bank *bank = ctrl->pin_banks; @@ -816,8 +818,8 @@ fail: } /* unregister the gpiolib interface with the gpiolib subsystem */ -static int __devinit samsung_gpiolib_unregister(struct platform_device *pdev, - struct samsung_pinctrl_drv_data *drvdata) +static int samsung_gpiolib_unregister(struct platform_device *pdev, + struct samsung_pinctrl_drv_data *drvdata) { struct samsung_pin_ctrl *ctrl = drvdata->ctrl; struct samsung_pin_bank *bank = ctrl->pin_banks; @@ -881,7 +883,7 @@ static struct samsung_pin_ctrl *samsung_pinctrl_get_soc_data( return ctrl; } -static int __devinit samsung_pinctrl_probe(struct platform_device *pdev) +static int samsung_pinctrl_probe(struct platform_device *pdev) { struct samsung_pinctrl_drv_data *drvdata; struct device *dev = &pdev->dev; diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c index 79642831bba2..f6a360b86eb6 100644 --- a/drivers/pinctrl/pinctrl-single.c +++ b/drivers/pinctrl/pinctrl-single.c @@ -493,7 +493,7 @@ static struct pinconf_ops pcs_pinconf_ops = { * @pcs: pcs driver instance * @offset: register offset from base */ -static int __devinit pcs_add_pin(struct pcs_device *pcs, unsigned offset) +static int pcs_add_pin(struct pcs_device *pcs, unsigned offset) { struct pinctrl_pin_desc *pin; struct pcs_name *pn; @@ -526,7 +526,7 @@ static int __devinit pcs_add_pin(struct pcs_device *pcs, unsigned offset) * If your hardware needs holes in the address space, then just set * up multiple driver instances. */ -static int __devinit pcs_allocate_pin_table(struct pcs_device *pcs) +static int pcs_allocate_pin_table(struct pcs_device *pcs) { int mux_bytes, nr_pins, i; @@ -907,8 +907,7 @@ static void pcs_free_resources(struct pcs_device *pcs) static struct of_device_id pcs_of_match[]; -static int __devinit pcs_add_gpio_range(struct device_node *node, - struct pcs_device *pcs) +static int pcs_add_gpio_range(struct device_node *node, struct pcs_device *pcs) { struct pcs_gpio_range *gpio; struct device_node *child; @@ -951,7 +950,7 @@ static int __devinit pcs_add_gpio_range(struct device_node *node, return 0; } -static int __devinit pcs_probe(struct platform_device *pdev) +static int pcs_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; const struct of_device_id *match; diff --git a/drivers/pinctrl/pinctrl-sirf.c b/drivers/pinctrl/pinctrl-sirf.c index a4f0c5e487d5..c776046f7cb8 100644 --- a/drivers/pinctrl/pinctrl-sirf.c +++ b/drivers/pinctrl/pinctrl-sirf.c @@ -1246,7 +1246,7 @@ static void __iomem *sirfsoc_rsc_of_iomap(void) return of_iomap(np, 0); } -static int __devinit sirfsoc_pinmux_probe(struct platform_device *pdev) +static int sirfsoc_pinmux_probe(struct platform_device *pdev) { int ret; struct sirfsoc_pmx *spmx; @@ -1663,7 +1663,7 @@ const struct irq_domain_ops sirfsoc_gpio_irq_simple_ops = { .xlate = irq_domain_xlate_twocell, }; -static int __devinit sirfsoc_gpio_probe(struct device_node *np) +static int sirfsoc_gpio_probe(struct device_node *np) { int i, err = 0; struct sirfsoc_gpio_bank *bank; diff --git a/drivers/pinctrl/pinctrl-tegra.c b/drivers/pinctrl/pinctrl-tegra.c index e356b0380fa7..ae1e4bb3259d 100644 --- a/drivers/pinctrl/pinctrl-tegra.c +++ b/drivers/pinctrl/pinctrl-tegra.c @@ -687,7 +687,7 @@ static struct pinctrl_desc tegra_pinctrl_desc = { .owner = THIS_MODULE, }; -int __devinit tegra_pinctrl_probe(struct platform_device *pdev, +int tegra_pinctrl_probe(struct platform_device *pdev, const struct tegra_pinctrl_soc_data *soc_data) { struct tegra_pmx *pmx; diff --git a/drivers/pinctrl/pinctrl-tegra20.c b/drivers/pinctrl/pinctrl-tegra20.c index 1524bfd66602..e848189038f0 100644 --- a/drivers/pinctrl/pinctrl-tegra20.c +++ b/drivers/pinctrl/pinctrl-tegra20.c @@ -2856,7 +2856,7 @@ static const struct tegra_pinctrl_soc_data tegra20_pinctrl = { .ngroups = ARRAY_SIZE(tegra20_groups), }; -static int __devinit tegra20_pinctrl_probe(struct platform_device *pdev) +static int tegra20_pinctrl_probe(struct platform_device *pdev) { return tegra_pinctrl_probe(pdev, &tegra20_pinctrl); } diff --git a/drivers/pinctrl/pinctrl-tegra30.c b/drivers/pinctrl/pinctrl-tegra30.c index cf579ebf346f..9ad87ea735d4 100644 --- a/drivers/pinctrl/pinctrl-tegra30.c +++ b/drivers/pinctrl/pinctrl-tegra30.c @@ -3722,7 +3722,7 @@ static const struct tegra_pinctrl_soc_data tegra30_pinctrl = { .ngroups = ARRAY_SIZE(tegra30_groups), }; -static int __devinit tegra30_pinctrl_probe(struct platform_device *pdev) +static int tegra30_pinctrl_probe(struct platform_device *pdev) { return tegra_pinctrl_probe(pdev, &tegra30_pinctrl); } diff --git a/drivers/pinctrl/pinctrl-u300.c b/drivers/pinctrl/pinctrl-u300.c index 8c039ad22baf..718ec5762683 100644 --- a/drivers/pinctrl/pinctrl-u300.c +++ b/drivers/pinctrl/pinctrl-u300.c @@ -1062,7 +1062,7 @@ static struct pinctrl_desc u300_pmx_desc = { .owner = THIS_MODULE, }; -static int __devinit u300_pmx_probe(struct platform_device *pdev) +static int u300_pmx_probe(struct platform_device *pdev) { struct u300_pmx *upmx; struct resource *res; diff --git a/drivers/pinctrl/pinctrl-xway.c b/drivers/pinctrl/pinctrl-xway.c index ad90984ec500..5f0eb04c2336 100644 --- a/drivers/pinctrl/pinctrl-xway.c +++ b/drivers/pinctrl/pinctrl-xway.c @@ -674,7 +674,7 @@ static const struct of_device_id xway_match[] = { }; MODULE_DEVICE_TABLE(of, xway_match); -static int __devinit pinmux_xway_probe(struct platform_device *pdev) +static int pinmux_xway_probe(struct platform_device *pdev) { const struct of_device_id *match; const struct pinctrl_xway_soc *xway_soc; diff --git a/drivers/pinctrl/spear/pinctrl-plgpio.c b/drivers/pinctrl/spear/pinctrl-plgpio.c index 4c045053bbdd..3cf4ecd9302c 100644 --- a/drivers/pinctrl/spear/pinctrl-plgpio.c +++ b/drivers/pinctrl/spear/pinctrl-plgpio.c @@ -451,8 +451,7 @@ int spear310_o2p(int offset) return offset + 2; } -static int __devinit plgpio_probe_dt(struct platform_device *pdev, - struct plgpio *plgpio) +static int plgpio_probe_dt(struct platform_device *pdev, struct plgpio *plgpio) { struct device_node *np = pdev->dev.of_node; int ret = -EINVAL; @@ -522,7 +521,7 @@ static int __devinit plgpio_probe_dt(struct platform_device *pdev, end: return ret; } -static int __devinit plgpio_probe(struct platform_device *pdev) +static int plgpio_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; struct plgpio *plgpio; diff --git a/drivers/pinctrl/spear/pinctrl-spear.c b/drivers/pinctrl/spear/pinctrl-spear.c index 922c057521a1..6a7dae70db08 100644 --- a/drivers/pinctrl/spear/pinctrl-spear.c +++ b/drivers/pinctrl/spear/pinctrl-spear.c @@ -82,9 +82,8 @@ static int set_mode(struct spear_pmx *pmx, int mode) return 0; } -void __devinit -pmx_init_gpio_pingroup_addr(struct spear_gpio_pingroup *gpio_pingroup, - unsigned count, u16 reg) +void pmx_init_gpio_pingroup_addr(struct spear_gpio_pingroup *gpio_pingroup, + unsigned count, u16 reg) { int i, j; @@ -93,7 +92,7 @@ pmx_init_gpio_pingroup_addr(struct spear_gpio_pingroup *gpio_pingroup, gpio_pingroup[i].muxregs[j].reg = reg; } -void __devinit pmx_init_addr(struct spear_pinctrl_machdata *machdata, u16 reg) +void pmx_init_addr(struct spear_pinctrl_machdata *machdata, u16 reg) { struct spear_pingroup *pgroup; struct spear_modemux *modemux; @@ -358,8 +357,8 @@ static struct pinctrl_desc spear_pinctrl_desc = { .owner = THIS_MODULE, }; -int __devinit spear_pinctrl_probe(struct platform_device *pdev, - struct spear_pinctrl_machdata *machdata) +int spear_pinctrl_probe(struct platform_device *pdev, + struct spear_pinctrl_machdata *machdata) { struct device_node *np = pdev->dev.of_node; struct resource *res; diff --git a/drivers/pinctrl/spear/pinctrl-spear.h b/drivers/pinctrl/spear/pinctrl-spear.h index 1be46ecc6d91..dc8bf85ecb2a 100644 --- a/drivers/pinctrl/spear/pinctrl-spear.h +++ b/drivers/pinctrl/spear/pinctrl-spear.h @@ -192,12 +192,11 @@ static inline void pmx_writel(struct spear_pmx *pmx, u32 val, u32 reg) writel_relaxed(val, pmx->vbase + reg); } -void __devinit pmx_init_addr(struct spear_pinctrl_machdata *machdata, u16 reg); -void __devinit -pmx_init_gpio_pingroup_addr(struct spear_gpio_pingroup *gpio_pingroup, - unsigned count, u16 reg); -int __devinit spear_pinctrl_probe(struct platform_device *pdev, - struct spear_pinctrl_machdata *machdata); +void pmx_init_addr(struct spear_pinctrl_machdata *machdata, u16 reg); +void pmx_init_gpio_pingroup_addr(struct spear_gpio_pingroup *gpio_pingroup, + unsigned count, u16 reg); +int spear_pinctrl_probe(struct platform_device *pdev, + struct spear_pinctrl_machdata *machdata); int spear_pinctrl_remove(struct platform_device *pdev); #define SPEAR_PIN_0_TO_101 \ diff --git a/drivers/pinctrl/spear/pinctrl-spear1310.c b/drivers/pinctrl/spear/pinctrl-spear1310.c index e40d785a3fc2..1a8bbfec60ca 100644 --- a/drivers/pinctrl/spear/pinctrl-spear1310.c +++ b/drivers/pinctrl/spear/pinctrl-spear1310.c @@ -2699,7 +2699,7 @@ static struct of_device_id spear1310_pinctrl_of_match[] = { {}, }; -static int __devinit spear1310_pinctrl_probe(struct platform_device *pdev) +static int spear1310_pinctrl_probe(struct platform_device *pdev) { return spear_pinctrl_probe(pdev, &spear1310_machdata); } diff --git a/drivers/pinctrl/spear/pinctrl-spear1340.c b/drivers/pinctrl/spear/pinctrl-spear1340.c index 8deaaff3156c..873966e2b99f 100644 --- a/drivers/pinctrl/spear/pinctrl-spear1340.c +++ b/drivers/pinctrl/spear/pinctrl-spear1340.c @@ -2015,7 +2015,7 @@ static struct of_device_id spear1340_pinctrl_of_match[] = { {}, }; -static int __devinit spear1340_pinctrl_probe(struct platform_device *pdev) +static int spear1340_pinctrl_probe(struct platform_device *pdev) { return spear_pinctrl_probe(pdev, &spear1340_machdata); } diff --git a/drivers/pinctrl/spear/pinctrl-spear300.c b/drivers/pinctrl/spear/pinctrl-spear300.c index f48e466e605a..4777c0d0e730 100644 --- a/drivers/pinctrl/spear/pinctrl-spear300.c +++ b/drivers/pinctrl/spear/pinctrl-spear300.c @@ -653,7 +653,7 @@ static struct of_device_id spear300_pinctrl_of_match[] = { {}, }; -static int __devinit spear300_pinctrl_probe(struct platform_device *pdev) +static int spear300_pinctrl_probe(struct platform_device *pdev) { int ret; diff --git a/drivers/pinctrl/spear/pinctrl-spear310.c b/drivers/pinctrl/spear/pinctrl-spear310.c index 5b954c19a6d2..06c7e6f1c7f2 100644 --- a/drivers/pinctrl/spear/pinctrl-spear310.c +++ b/drivers/pinctrl/spear/pinctrl-spear310.c @@ -378,7 +378,7 @@ static struct of_device_id spear310_pinctrl_of_match[] = { {}, }; -static int __devinit spear310_pinctrl_probe(struct platform_device *pdev) +static int spear310_pinctrl_probe(struct platform_device *pdev) { int ret; diff --git a/drivers/pinctrl/spear/pinctrl-spear320.c b/drivers/pinctrl/spear/pinctrl-spear320.c index e9a5e6d39242..b8e290a8c8c9 100644 --- a/drivers/pinctrl/spear/pinctrl-spear320.c +++ b/drivers/pinctrl/spear/pinctrl-spear320.c @@ -3417,7 +3417,7 @@ static struct of_device_id spear320_pinctrl_of_match[] = { {}, }; -static int __devinit spear320_pinctrl_probe(struct platform_device *pdev) +static int spear320_pinctrl_probe(struct platform_device *pdev) { int ret; -- cgit v1.2.3 From ba607b6238a1f418c45b9d7f73212bcc6922da53 Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth Date: Mon, 26 Nov 2012 20:16:39 +0100 Subject: pinctrl: mvebu: make pdma clock on dove mandatory With the ability to pass clocks through DT, now make the pdma clock of dove pinctrl mandatory. Otherwise, pinctrl will hang the system when accessing some registers. Signed-off-by: Sebastian Hesselbarth Signed-off-by: Jason Cooper --- drivers/pinctrl/mvebu/pinctrl-dove.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'drivers/pinctrl') diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c b/drivers/pinctrl/mvebu/pinctrl-dove.c index 40c9c3eecd94..9cc219f61000 100644 --- a/drivers/pinctrl/mvebu/pinctrl-dove.c +++ b/drivers/pinctrl/mvebu/pinctrl-dove.c @@ -595,8 +595,11 @@ static int __devinit dove_pinctrl_probe(struct platform_device *pdev) * grab clk to make sure it is ticking. */ clk = devm_clk_get(&pdev->dev, NULL); - if (!IS_ERR(clk)) - clk_prepare_enable(clk); + if (IS_ERR(clk)) { + dev_err(&pdev->dev, "Unable to get pdma clock"); + return PTR_RET(clk); + } + clk_prepare_enable(clk); return mvebu_pinctrl_probe(pdev); } -- cgit v1.2.3