aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/freescale
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-07-28 20:06:51 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-07-28 20:06:51 -0400
commitd94ba9e7d8d5c821d0442f13b30b0140c1109c38 (patch)
treedb82a38b7341fc035228d6cd1270cf4468c229c3 /drivers/pinctrl/freescale
parent1c88e19b0f6a8471ee50d5062721ba30b8fd4ba9 (diff)
parent9573e7923007961799beff38bc5c5a7635634eef (diff)
Merge tag 'pinctrl-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij: "This is the bulk of pin control changes for the v4.8 kernel cycle. Nothing stands out as especially exiting: new drivers, new subdrivers, lots of cleanups and incremental features. Business as usual. New drivers: - New driver for Oxnas pin control and GPIO. This ARM-based chipset is used in a few storage (NAS) type devices. - New driver for the MAX77620/MAX20024 pin controller portions. - New driver for the Intel Merrifield pin controller. New subdrivers: - New subdriver for the Qualcomm MDM9615 - New subdriver for the STM32F746 MCU - New subdriver for the Broadcom NSP SoC. Cleanups: - Demodularization of bool compiled-in drivers. Apart from this there is just regular incremental improvements to a lot of drivers, especially Uniphier and PFC" * tag 'pinctrl-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (131 commits) pinctrl: fix pincontrol definition for marvell pinctrl: xway: fix typo Revert "pinctrl: amd: make it explicitly non-modular" pinctrl: iproc: Add NSP and Stingray GPIO support pinctrl: Update iProc GPIO DT bindings pinctrl: bcm: add OF dependencies pinctrl: ns2: remove redundant dev_err call in ns2_pinmux_probe() pinctrl: Add STM32F746 MCU support pinctrl: intel: Protect set wake flow by spin lock pinctrl: nsp: remove redundant dev_err call in nsp_pinmux_probe() pinctrl: uniphier: add Ethernet pin-mux settings sh-pfc: Use PTR_ERR_OR_ZERO() to simplify the code pinctrl: ns2: fix return value check in ns2_pinmux_probe() pinctrl: qcom: update DT bindings with ebi2 groups pinctrl: qcom: establish proper EBI2 pin groups pinctrl: imx21: Remove the MODULE_DEVICE_TABLE() macro Documentation: dt: Add new compatible to STM32 pinctrl driver bindings includes: dt-bindings: Add STM32F746 pinctrl DT bindings pinctrl: sunxi: fix nand0 function name for sun8i pinctrl: uniphier: remove pointless pin-mux settings for PH1-LD11 ...
Diffstat (limited to 'drivers/pinctrl/freescale')
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx.c29
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx1-core.c3
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx1.c9
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx21.c9
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx23.c17
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx25.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx27.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx28.c17
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx35.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx50.c9
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx51.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx53.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6dl.c14
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6q.c10
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6sl.c15
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6sx.c14
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx6ul.c14
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx7d.c14
-rw-r--r--drivers/pinctrl/freescale/pinctrl-mxs.c12
-rw-r--r--drivers/pinctrl/freescale/pinctrl-mxs.h1
-rw-r--r--drivers/pinctrl/freescale/pinctrl-vf610.c10
21 files changed, 44 insertions, 203 deletions
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
index eccb47480e1d..71391757938b 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx.c
@@ -16,7 +16,6 @@
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/mfd/syscon.h> 18#include <linux/mfd/syscon.h>
19#include <linux/module.h>
20#include <linux/of.h> 19#include <linux/of.h>
21#include <linux/of_device.h> 20#include <linux/of_device.h>
22#include <linux/of_address.h> 21#include <linux/of_address.h>
@@ -46,7 +45,7 @@ struct imx_pinctrl {
46 const struct imx_pinctrl_soc_info *info; 45 const struct imx_pinctrl_soc_info *info;
47}; 46};
48 47
49static const inline struct imx_pin_group *imx_pinctrl_find_group_by_name( 48static inline const struct imx_pin_group *imx_pinctrl_find_group_by_name(
50 const struct imx_pinctrl_soc_info *info, 49 const struct imx_pinctrl_soc_info *info,
51 const char *name) 50 const char *name)
52{ 51{
@@ -513,13 +512,6 @@ static const struct pinconf_ops imx_pinconf_ops = {
513 .pin_config_group_dbg_show = imx_pinconf_group_dbg_show, 512 .pin_config_group_dbg_show = imx_pinconf_group_dbg_show,
514}; 513};
515 514
516static struct pinctrl_desc imx_pinctrl_desc = {
517 .pctlops = &imx_pctrl_ops,
518 .pmxops = &imx_pmx_ops,
519 .confops = &imx_pinconf_ops,
520 .owner = THIS_MODULE,
521};
522
523/* 515/*
524 * Each pin represented in fsl,pins consists of 5 u32 PIN_FUNC_ID and 516 * Each pin represented in fsl,pins consists of 5 u32 PIN_FUNC_ID and
525 * 1 u32 CONFIG, so 24 types in total for each pin. 517 * 1 u32 CONFIG, so 24 types in total for each pin.
@@ -722,6 +714,7 @@ int imx_pinctrl_probe(struct platform_device *pdev,
722{ 714{
723 struct regmap_config config = { .name = "gpr" }; 715 struct regmap_config config = { .name = "gpr" };
724 struct device_node *dev_np = pdev->dev.of_node; 716 struct device_node *dev_np = pdev->dev.of_node;
717 struct pinctrl_desc *imx_pinctrl_desc;
725 struct device_node *np; 718 struct device_node *np;
726 struct imx_pinctrl *ipctl; 719 struct imx_pinctrl *ipctl;
727 struct resource *res; 720 struct resource *res;
@@ -776,9 +769,18 @@ int imx_pinctrl_probe(struct platform_device *pdev,
776 } 769 }
777 } 770 }
778 771
779 imx_pinctrl_desc.name = dev_name(&pdev->dev); 772 imx_pinctrl_desc = devm_kzalloc(&pdev->dev, sizeof(*imx_pinctrl_desc),
780 imx_pinctrl_desc.pins = info->pins; 773 GFP_KERNEL);
781 imx_pinctrl_desc.npins = info->npins; 774 if (!imx_pinctrl_desc)
775 return -ENOMEM;
776
777 imx_pinctrl_desc->name = dev_name(&pdev->dev);
778 imx_pinctrl_desc->pins = info->pins;
779 imx_pinctrl_desc->npins = info->npins;
780 imx_pinctrl_desc->pctlops = &imx_pctrl_ops,
781 imx_pinctrl_desc->pmxops = &imx_pmx_ops,
782 imx_pinctrl_desc->confops = &imx_pinconf_ops,
783 imx_pinctrl_desc->owner = THIS_MODULE,
782 784
783 ret = imx_pinctrl_probe_dt(pdev, info); 785 ret = imx_pinctrl_probe_dt(pdev, info);
784 if (ret) { 786 if (ret) {
@@ -789,7 +791,8 @@ int imx_pinctrl_probe(struct platform_device *pdev,
789 ipctl->info = info; 791 ipctl->info = info;
790 ipctl->dev = info->dev; 792 ipctl->dev = info->dev;
791 platform_set_drvdata(pdev, ipctl); 793 platform_set_drvdata(pdev, ipctl);
792 ipctl->pctl = devm_pinctrl_register(&pdev->dev, &imx_pinctrl_desc, ipctl); 794 ipctl->pctl = devm_pinctrl_register(&pdev->dev,
795 imx_pinctrl_desc, ipctl);
793 if (IS_ERR(ipctl->pctl)) { 796 if (IS_ERR(ipctl->pctl)) {
794 dev_err(&pdev->dev, "could not register IMX pinctrl driver\n"); 797 dev_err(&pdev->dev, "could not register IMX pinctrl driver\n");
795 return PTR_ERR(ipctl->pctl); 798 return PTR_ERR(ipctl->pctl);
diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
index b4400cb19b61..a4e9f430d452 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
@@ -19,7 +19,6 @@
19#include <linux/err.h> 19#include <linux/err.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/io.h> 21#include <linux/io.h>
22#include <linux/module.h>
23#include <linux/of.h> 22#include <linux/of.h>
24#include <linux/of_device.h> 23#include <linux/of_device.h>
25#include <linux/pinctrl/machine.h> 24#include <linux/pinctrl/machine.h>
@@ -157,7 +156,7 @@ static int imx1_read_bit(struct imx1_pinctrl *ipctl, unsigned int pin_id,
157 return !!(readl(reg) & BIT(offset)); 156 return !!(readl(reg) & BIT(offset));
158} 157}
159 158
160static const inline struct imx1_pin_group *imx1_pinctrl_find_group_by_name( 159static inline const struct imx1_pin_group *imx1_pinctrl_find_group_by_name(
161 const struct imx1_pinctrl_soc_info *info, 160 const struct imx1_pinctrl_soc_info *info,
162 const char *name) 161 const char *name)
163{ 162{
diff --git a/drivers/pinctrl/freescale/pinctrl-imx1.c b/drivers/pinctrl/freescale/pinctrl-imx1.c
index 04723455db58..fc8efc748734 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx1.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx1.c
@@ -9,7 +9,7 @@
9 * (at your option) any later version. 9 * (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/module.h> 12#include <linux/init.h>
13#include <linux/of.h> 13#include <linux/of.h>
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/pinctrl/pinctrl.h> 15#include <linux/pinctrl/pinctrl.h>
@@ -262,7 +262,6 @@ static const struct of_device_id imx1_pinctrl_of_match[] = {
262 { .compatible = "fsl,imx1-iomuxc", }, 262 { .compatible = "fsl,imx1-iomuxc", },
263 { } 263 { }
264}; 264};
265MODULE_DEVICE_TABLE(of, imx1_pinctrl_of_match);
266 265
267static struct platform_driver imx1_pinctrl_driver = { 266static struct platform_driver imx1_pinctrl_driver = {
268 .driver = { 267 .driver = {
@@ -270,8 +269,4 @@ static struct platform_driver imx1_pinctrl_driver = {
270 .of_match_table = imx1_pinctrl_of_match, 269 .of_match_table = imx1_pinctrl_of_match,
271 }, 270 },
272}; 271};
273module_platform_driver_probe(imx1_pinctrl_driver, imx1_pinctrl_probe); 272builtin_platform_driver_probe(imx1_pinctrl_driver, imx1_pinctrl_probe);
274
275MODULE_AUTHOR("Alexander Shiyan <shc_work@mail.ru>");
276MODULE_DESCRIPTION("Freescale i.MX1 pinctrl driver");
277MODULE_LICENSE("GPL");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx21.c b/drivers/pinctrl/freescale/pinctrl-imx21.c
index aa1221f4dbb7..73e26bc12f09 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx21.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx21.c
@@ -9,7 +9,7 @@
9 * (at your option) any later version. 9 * (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/module.h> 12#include <linux/init.h>
13#include <linux/of.h> 13#include <linux/of.h>
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/pinctrl/pinctrl.h> 15#include <linux/pinctrl/pinctrl.h>
@@ -325,7 +325,6 @@ static const struct of_device_id imx21_pinctrl_of_match[] = {
325 { .compatible = "fsl,imx21-iomuxc", }, 325 { .compatible = "fsl,imx21-iomuxc", },
326 { } 326 { }
327}; 327};
328MODULE_DEVICE_TABLE(of, imx21_pinctrl_of_match);
329 328
330static struct platform_driver imx21_pinctrl_driver = { 329static struct platform_driver imx21_pinctrl_driver = {
331 .driver = { 330 .driver = {
@@ -333,8 +332,4 @@ static struct platform_driver imx21_pinctrl_driver = {
333 .of_match_table = imx21_pinctrl_of_match, 332 .of_match_table = imx21_pinctrl_of_match,
334 }, 333 },
335}; 334};
336module_platform_driver_probe(imx21_pinctrl_driver, imx21_pinctrl_probe); 335builtin_platform_driver_probe(imx21_pinctrl_driver, imx21_pinctrl_probe);
337
338MODULE_AUTHOR("Alexander Shiyan <shc_work@mail.ru>");
339MODULE_DESCRIPTION("Freescale i.MX21 pinctrl driver");
340MODULE_LICENSE("GPL");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx23.c b/drivers/pinctrl/freescale/pinctrl-imx23.c
index 955cbf4f094f..89b4f160138f 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx23.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx23.c
@@ -1,4 +1,7 @@
1/* 1/*
2 * Freescale i.MX23 pinctrl driver
3 *
4 * Author: Shawn Guo <shawn.guo@linaro.org>
2 * Copyright 2012 Freescale Semiconductor, Inc. 5 * Copyright 2012 Freescale Semiconductor, Inc.
3 * 6 *
4 * The code contained herein is licensed under the GNU General Public 7 * The code contained herein is licensed under the GNU General Public
@@ -10,7 +13,6 @@
10 */ 13 */
11 14
12#include <linux/init.h> 15#include <linux/init.h>
13#include <linux/module.h>
14#include <linux/of_device.h> 16#include <linux/of_device.h>
15#include <linux/pinctrl/pinctrl.h> 17#include <linux/pinctrl/pinctrl.h>
16#include "pinctrl-mxs.h" 18#include "pinctrl-mxs.h"
@@ -276,15 +278,14 @@ static const struct of_device_id imx23_pinctrl_of_match[] = {
276 { .compatible = "fsl,imx23-pinctrl", }, 278 { .compatible = "fsl,imx23-pinctrl", },
277 { /* sentinel */ } 279 { /* sentinel */ }
278}; 280};
279MODULE_DEVICE_TABLE(of, imx23_pinctrl_of_match);
280 281
281static struct platform_driver imx23_pinctrl_driver = { 282static struct platform_driver imx23_pinctrl_driver = {
282 .driver = { 283 .driver = {
283 .name = "imx23-pinctrl", 284 .name = "imx23-pinctrl",
285 .suppress_bind_attrs = true,
284 .of_match_table = imx23_pinctrl_of_match, 286 .of_match_table = imx23_pinctrl_of_match,
285 }, 287 },
286 .probe = imx23_pinctrl_probe, 288 .probe = imx23_pinctrl_probe,
287 .remove = mxs_pinctrl_remove,
288}; 289};
289 290
290static int __init imx23_pinctrl_init(void) 291static int __init imx23_pinctrl_init(void)
@@ -292,13 +293,3 @@ static int __init imx23_pinctrl_init(void)
292 return platform_driver_register(&imx23_pinctrl_driver); 293 return platform_driver_register(&imx23_pinctrl_driver);
293} 294}
294postcore_initcall(imx23_pinctrl_init); 295postcore_initcall(imx23_pinctrl_init);
295
296static void __exit imx23_pinctrl_exit(void)
297{
298 platform_driver_unregister(&imx23_pinctrl_driver);
299}
300module_exit(imx23_pinctrl_exit);
301
302MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>");
303MODULE_DESCRIPTION("Freescale i.MX23 pinctrl driver");
304MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx25.c b/drivers/pinctrl/freescale/pinctrl-imx25.c
index 81ad546d74bb..d7367fabe712 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx25.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx25.c
@@ -18,7 +18,6 @@
18#include <linux/err.h> 18#include <linux/err.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/io.h> 20#include <linux/io.h>
21#include <linux/module.h>
22#include <linux/of.h> 21#include <linux/of.h>
23#include <linux/of_device.h> 22#include <linux/of_device.h>
24#include <linux/pinctrl/pinctrl.h> 23#include <linux/pinctrl/pinctrl.h>
@@ -338,12 +337,3 @@ static int __init imx25_pinctrl_init(void)
338 return platform_driver_register(&imx25_pinctrl_driver); 337 return platform_driver_register(&imx25_pinctrl_driver);
339} 338}
340arch_initcall(imx25_pinctrl_init); 339arch_initcall(imx25_pinctrl_init);
341
342static void __exit imx25_pinctrl_exit(void)
343{
344 platform_driver_unregister(&imx25_pinctrl_driver);
345}
346module_exit(imx25_pinctrl_exit);
347MODULE_AUTHOR("Denis Carikli <denis@eukrea.com>");
348MODULE_DESCRIPTION("Freescale IMX25 pinctrl driver");
349MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx27.c b/drivers/pinctrl/freescale/pinctrl-imx27.c
index f828fbbba4b9..e5992036fc6c 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx27.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx27.c
@@ -14,7 +14,6 @@
14#include <linux/err.h> 14#include <linux/err.h>
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/io.h> 16#include <linux/io.h>
17#include <linux/module.h>
18#include <linux/of.h> 17#include <linux/of.h>
19#include <linux/of_device.h> 18#include <linux/of_device.h>
20#include <linux/pinctrl/pinctrl.h> 19#include <linux/pinctrl/pinctrl.h>
@@ -412,12 +411,3 @@ static int __init imx27_pinctrl_init(void)
412 return platform_driver_register(&imx27_pinctrl_driver); 411 return platform_driver_register(&imx27_pinctrl_driver);
413} 412}
414arch_initcall(imx27_pinctrl_init); 413arch_initcall(imx27_pinctrl_init);
415
416static void __exit imx27_pinctrl_exit(void)
417{
418 platform_driver_unregister(&imx27_pinctrl_driver);
419}
420module_exit(imx27_pinctrl_exit);
421MODULE_AUTHOR("Markus Pargmann <mpa@pengutronix.de>");
422MODULE_DESCRIPTION("Freescale IMX27 pinctrl driver");
423MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx28.c b/drivers/pinctrl/freescale/pinctrl-imx28.c
index 5082efec4f72..295236dfb0bc 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx28.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx28.c
@@ -1,4 +1,7 @@
1/* 1/*
2 * Freescale i.MX28 pinctrl driver
3 *
4 * Author: Shawn Guo <shawn.guo@linaro.org>
2 * Copyright 2012 Freescale Semiconductor, Inc. 5 * Copyright 2012 Freescale Semiconductor, Inc.
3 * 6 *
4 * The code contained herein is licensed under the GNU General Public 7 * The code contained herein is licensed under the GNU General Public
@@ -10,7 +13,6 @@
10 */ 13 */
11 14
12#include <linux/init.h> 15#include <linux/init.h>
13#include <linux/module.h>
14#include <linux/of_device.h> 16#include <linux/of_device.h>
15#include <linux/pinctrl/pinctrl.h> 17#include <linux/pinctrl/pinctrl.h>
16#include "pinctrl-mxs.h" 18#include "pinctrl-mxs.h"
@@ -392,15 +394,14 @@ static const struct of_device_id imx28_pinctrl_of_match[] = {
392 { .compatible = "fsl,imx28-pinctrl", }, 394 { .compatible = "fsl,imx28-pinctrl", },
393 { /* sentinel */ } 395 { /* sentinel */ }
394}; 396};
395MODULE_DEVICE_TABLE(of, imx28_pinctrl_of_match);
396 397
397static struct platform_driver imx28_pinctrl_driver = { 398static struct platform_driver imx28_pinctrl_driver = {
398 .driver = { 399 .driver = {
399 .name = "imx28-pinctrl", 400 .name = "imx28-pinctrl",
401 .suppress_bind_attrs = true,
400 .of_match_table = imx28_pinctrl_of_match, 402 .of_match_table = imx28_pinctrl_of_match,
401 }, 403 },
402 .probe = imx28_pinctrl_probe, 404 .probe = imx28_pinctrl_probe,
403 .remove = mxs_pinctrl_remove,
404}; 405};
405 406
406static int __init imx28_pinctrl_init(void) 407static int __init imx28_pinctrl_init(void)
@@ -408,13 +409,3 @@ static int __init imx28_pinctrl_init(void)
408 return platform_driver_register(&imx28_pinctrl_driver); 409 return platform_driver_register(&imx28_pinctrl_driver);
409} 410}
410postcore_initcall(imx28_pinctrl_init); 411postcore_initcall(imx28_pinctrl_init);
411
412static void __exit imx28_pinctrl_exit(void)
413{
414 platform_driver_unregister(&imx28_pinctrl_driver);
415}
416module_exit(imx28_pinctrl_exit);
417
418MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>");
419MODULE_DESCRIPTION("Freescale i.MX28 pinctrl driver");
420MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx35.c b/drivers/pinctrl/freescale/pinctrl-imx35.c
index 13eb224a29a9..6315ba6af431 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx35.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx35.c
@@ -16,7 +16,6 @@
16#include <linux/err.h> 16#include <linux/err.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/module.h>
20#include <linux/of.h> 19#include <linux/of.h>
21#include <linux/of_device.h> 20#include <linux/of_device.h>
22#include <linux/pinctrl/pinctrl.h> 21#include <linux/pinctrl/pinctrl.h>
@@ -1028,12 +1027,3 @@ static int __init imx35_pinctrl_init(void)
1028 return platform_driver_register(&imx35_pinctrl_driver); 1027 return platform_driver_register(&imx35_pinctrl_driver);
1029} 1028}
1030arch_initcall(imx35_pinctrl_init); 1029arch_initcall(imx35_pinctrl_init);
1031
1032static void __exit imx35_pinctrl_exit(void)
1033{
1034 platform_driver_unregister(&imx35_pinctrl_driver);
1035}
1036module_exit(imx35_pinctrl_exit);
1037MODULE_AUTHOR("Dong Aisheng <dong.aisheng@linaro.org>");
1038MODULE_DESCRIPTION("Freescale IMX35 pinctrl driver");
1039MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx50.c b/drivers/pinctrl/freescale/pinctrl-imx50.c
index 95a36c88b66a..8e3a17df5c5d 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx50.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx50.c
@@ -14,7 +14,6 @@
14#include <linux/err.h> 14#include <linux/err.h>
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/io.h> 16#include <linux/io.h>
17#include <linux/module.h>
18#include <linux/of.h> 17#include <linux/of.h>
19#include <linux/of_device.h> 18#include <linux/of_device.h>
20#include <linux/pinctrl/pinctrl.h> 19#include <linux/pinctrl/pinctrl.h>
@@ -415,11 +414,3 @@ static int __init imx50_pinctrl_init(void)
415 return platform_driver_register(&imx50_pinctrl_driver); 414 return platform_driver_register(&imx50_pinctrl_driver);
416} 415}
417arch_initcall(imx50_pinctrl_init); 416arch_initcall(imx50_pinctrl_init);
418
419static void __exit imx50_pinctrl_exit(void)
420{
421 platform_driver_unregister(&imx50_pinctrl_driver);
422}
423module_exit(imx50_pinctrl_exit);
424MODULE_DESCRIPTION("Freescale IMX50 pinctrl driver");
425MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx51.c b/drivers/pinctrl/freescale/pinctrl-imx51.c
index 0863e5279896..eeac64ba2709 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx51.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx51.c
@@ -15,7 +15,6 @@
15#include <linux/err.h> 15#include <linux/err.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/module.h>
19#include <linux/of.h> 18#include <linux/of.h>
20#include <linux/of_device.h> 19#include <linux/of_device.h>
21#include <linux/pinctrl/pinctrl.h> 20#include <linux/pinctrl/pinctrl.h>
@@ -791,12 +790,3 @@ static int __init imx51_pinctrl_init(void)
791 return platform_driver_register(&imx51_pinctrl_driver); 790 return platform_driver_register(&imx51_pinctrl_driver);
792} 791}
793arch_initcall(imx51_pinctrl_init); 792arch_initcall(imx51_pinctrl_init);
794
795static void __exit imx51_pinctrl_exit(void)
796{
797 platform_driver_unregister(&imx51_pinctrl_driver);
798}
799module_exit(imx51_pinctrl_exit);
800MODULE_AUTHOR("Dong Aisheng <dong.aisheng@linaro.org>");
801MODULE_DESCRIPTION("Freescale IMX51 pinctrl driver");
802MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx53.c b/drivers/pinctrl/freescale/pinctrl-imx53.c
index 64c9cbe2a5df..46a9572f3473 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx53.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx53.c
@@ -15,7 +15,6 @@
15#include <linux/err.h> 15#include <linux/err.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/module.h>
19#include <linux/of.h> 18#include <linux/of.h>
20#include <linux/of_device.h> 19#include <linux/of_device.h>
21#include <linux/pinctrl/pinctrl.h> 20#include <linux/pinctrl/pinctrl.h>
@@ -478,12 +477,3 @@ static int __init imx53_pinctrl_init(void)
478 return platform_driver_register(&imx53_pinctrl_driver); 477 return platform_driver_register(&imx53_pinctrl_driver);
479} 478}
480arch_initcall(imx53_pinctrl_init); 479arch_initcall(imx53_pinctrl_init);
481
482static void __exit imx53_pinctrl_exit(void)
483{
484 platform_driver_unregister(&imx53_pinctrl_driver);
485}
486module_exit(imx53_pinctrl_exit);
487MODULE_AUTHOR("Dong Aisheng <dong.aisheng@linaro.org>");
488MODULE_DESCRIPTION("Freescale IMX53 pinctrl driver");
489MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6dl.c b/drivers/pinctrl/freescale/pinctrl-imx6dl.c
index de17bac8ad89..3f25ca5867cc 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx6dl.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx6dl.c
@@ -1,4 +1,7 @@
1/* 1/*
2 * Freescale imx6dl pinctrl driver
3 *
4 * Author: Shawn Guo <shawn.guo@linaro.org>
2 * Copyright (C) 2013 Freescale Semiconductor, Inc. 5 * Copyright (C) 2013 Freescale Semiconductor, Inc.
3 * 6 *
4 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -9,7 +12,6 @@
9#include <linux/err.h> 12#include <linux/err.h>
10#include <linux/init.h> 13#include <linux/init.h>
11#include <linux/io.h> 14#include <linux/io.h>
12#include <linux/module.h>
13#include <linux/of.h> 15#include <linux/of.h>
14#include <linux/of_device.h> 16#include <linux/of_device.h>
15#include <linux/pinctrl/pinctrl.h> 17#include <linux/pinctrl/pinctrl.h>
@@ -484,13 +486,3 @@ static int __init imx6dl_pinctrl_init(void)
484 return platform_driver_register(&imx6dl_pinctrl_driver); 486 return platform_driver_register(&imx6dl_pinctrl_driver);
485} 487}
486arch_initcall(imx6dl_pinctrl_init); 488arch_initcall(imx6dl_pinctrl_init);
487
488static void __exit imx6dl_pinctrl_exit(void)
489{
490 platform_driver_unregister(&imx6dl_pinctrl_driver);
491}
492module_exit(imx6dl_pinctrl_exit);
493
494MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>");
495MODULE_DESCRIPTION("Freescale imx6dl pinctrl driver");
496MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6q.c b/drivers/pinctrl/freescale/pinctrl-imx6q.c
index 55cd8a0e367d..d61651c40458 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx6q.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx6q.c
@@ -15,7 +15,6 @@
15#include <linux/err.h> 15#include <linux/err.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/module.h>
19#include <linux/of.h> 18#include <linux/of.h>
20#include <linux/of_device.h> 19#include <linux/of_device.h>
21#include <linux/pinctrl/pinctrl.h> 20#include <linux/pinctrl/pinctrl.h>
@@ -490,12 +489,3 @@ static int __init imx6q_pinctrl_init(void)
490 return platform_driver_register(&imx6q_pinctrl_driver); 489 return platform_driver_register(&imx6q_pinctrl_driver);
491} 490}
492arch_initcall(imx6q_pinctrl_init); 491arch_initcall(imx6q_pinctrl_init);
493
494static void __exit imx6q_pinctrl_exit(void)
495{
496 platform_driver_unregister(&imx6q_pinctrl_driver);
497}
498module_exit(imx6q_pinctrl_exit);
499MODULE_AUTHOR("Dong Aisheng <dong.aisheng@linaro.org>");
500MODULE_DESCRIPTION("Freescale IMX6Q pinctrl driver");
501MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6sl.c b/drivers/pinctrl/freescale/pinctrl-imx6sl.c
index bf455b8e73fc..d023f6b00623 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx6sl.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx6sl.c
@@ -1,4 +1,7 @@
1/* 1/*
2 * Freescale imx6sl pinctrl driver
3 *
4 * Author: Shawn Guo <shawn.guo@linaro.org>
2 * Copyright (C) 2013 Freescale Semiconductor, Inc. 5 * Copyright (C) 2013 Freescale Semiconductor, Inc.
3 * 6 *
4 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -9,7 +12,6 @@
9#include <linux/err.h> 12#include <linux/err.h>
10#include <linux/init.h> 13#include <linux/init.h>
11#include <linux/io.h> 14#include <linux/io.h>
12#include <linux/module.h>
13#include <linux/of.h> 15#include <linux/of.h>
14#include <linux/of_device.h> 16#include <linux/of_device.h>
15#include <linux/pinctrl/pinctrl.h> 17#include <linux/pinctrl/pinctrl.h>
@@ -371,7 +373,6 @@ static const struct of_device_id imx6sl_pinctrl_of_match[] = {
371 { .compatible = "fsl,imx6sl-iomuxc", }, 373 { .compatible = "fsl,imx6sl-iomuxc", },
372 { /* sentinel */ } 374 { /* sentinel */ }
373}; 375};
374MODULE_DEVICE_TABLE(of, imx6sl_pinctrl_of_match);
375 376
376static int imx6sl_pinctrl_probe(struct platform_device *pdev) 377static int imx6sl_pinctrl_probe(struct platform_device *pdev)
377{ 378{
@@ -391,13 +392,3 @@ static int __init imx6sl_pinctrl_init(void)
391 return platform_driver_register(&imx6sl_pinctrl_driver); 392 return platform_driver_register(&imx6sl_pinctrl_driver);
392} 393}
393arch_initcall(imx6sl_pinctrl_init); 394arch_initcall(imx6sl_pinctrl_init);
394
395static void __exit imx6sl_pinctrl_exit(void)
396{
397 platform_driver_unregister(&imx6sl_pinctrl_driver);
398}
399module_exit(imx6sl_pinctrl_exit);
400
401MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>");
402MODULE_DESCRIPTION("Freescale imx6sl pinctrl driver");
403MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6sx.c b/drivers/pinctrl/freescale/pinctrl-imx6sx.c
index 84118c388cc5..898b781701e6 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx6sx.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx6sx.c
@@ -1,4 +1,7 @@
1/* 1/*
2 * Freescale imx6sx pinctrl driver
3 *
4 * Author: Anson Huang <Anson.Huang@freescale.com>
2 * Copyright (C) 2014 Freescale Semiconductor, Inc. 5 * Copyright (C) 2014 Freescale Semiconductor, Inc.
3 * 6 *
4 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -9,7 +12,6 @@
9#include <linux/err.h> 12#include <linux/err.h>
10#include <linux/init.h> 13#include <linux/init.h>
11#include <linux/io.h> 14#include <linux/io.h>
12#include <linux/module.h>
13#include <linux/of.h> 15#include <linux/of.h>
14#include <linux/of_device.h> 16#include <linux/of_device.h>
15#include <linux/pinctrl/pinctrl.h> 17#include <linux/pinctrl/pinctrl.h>
@@ -394,13 +396,3 @@ static int __init imx6sx_pinctrl_init(void)
394 return platform_driver_register(&imx6sx_pinctrl_driver); 396 return platform_driver_register(&imx6sx_pinctrl_driver);
395} 397}
396arch_initcall(imx6sx_pinctrl_init); 398arch_initcall(imx6sx_pinctrl_init);
397
398static void __exit imx6sx_pinctrl_exit(void)
399{
400 platform_driver_unregister(&imx6sx_pinctrl_driver);
401}
402module_exit(imx6sx_pinctrl_exit);
403
404MODULE_AUTHOR("Anson Huang <Anson.Huang@freescale.com>");
405MODULE_DESCRIPTION("Freescale imx6sx pinctrl driver");
406MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6ul.c b/drivers/pinctrl/freescale/pinctrl-imx6ul.c
index c707fdd933ec..1aeb840aae1d 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx6ul.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx6ul.c
@@ -1,4 +1,7 @@
1/* 1/*
2 * Freescale imx6ul pinctrl driver
3 *
4 * Author: Anson Huang <Anson.Huang@freescale.com>
2 * Copyright (C) 2015 Freescale Semiconductor, Inc. 5 * Copyright (C) 2015 Freescale Semiconductor, Inc.
3 * 6 *
4 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -9,7 +12,6 @@
9#include <linux/err.h> 12#include <linux/err.h>
10#include <linux/init.h> 13#include <linux/init.h>
11#include <linux/io.h> 14#include <linux/io.h>
12#include <linux/module.h>
13#include <linux/of.h> 15#include <linux/of.h>
14#include <linux/of_device.h> 16#include <linux/of_device.h>
15#include <linux/pinctrl/pinctrl.h> 17#include <linux/pinctrl/pinctrl.h>
@@ -310,13 +312,3 @@ static int __init imx6ul_pinctrl_init(void)
310 return platform_driver_register(&imx6ul_pinctrl_driver); 312 return platform_driver_register(&imx6ul_pinctrl_driver);
311} 313}
312arch_initcall(imx6ul_pinctrl_init); 314arch_initcall(imx6ul_pinctrl_init);
313
314static void __exit imx6ul_pinctrl_exit(void)
315{
316 platform_driver_unregister(&imx6ul_pinctrl_driver);
317}
318module_exit(imx6ul_pinctrl_exit);
319
320MODULE_AUTHOR("Anson Huang <Anson.Huang@freescale.com>");
321MODULE_DESCRIPTION("Freescale imx6ul pinctrl driver");
322MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-imx7d.c b/drivers/pinctrl/freescale/pinctrl-imx7d.c
index d30d91f80dfd..a465a66c3ef4 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx7d.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx7d.c
@@ -1,4 +1,7 @@
1/* 1/*
2 * Freescale imx7d pinctrl driver
3 *
4 * Author: Anson Huang <Anson.Huang@freescale.com>
2 * Copyright (C) 2014-2015 Freescale Semiconductor, Inc. 5 * Copyright (C) 2014-2015 Freescale Semiconductor, Inc.
3 * 6 *
4 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -9,7 +12,6 @@
9#include <linux/err.h> 12#include <linux/err.h>
10#include <linux/init.h> 13#include <linux/init.h>
11#include <linux/io.h> 14#include <linux/io.h>
12#include <linux/module.h>
13#include <linux/of.h> 15#include <linux/of.h>
14#include <linux/of_device.h> 16#include <linux/of_device.h>
15#include <linux/pinctrl/pinctrl.h> 17#include <linux/pinctrl/pinctrl.h>
@@ -402,13 +404,3 @@ static int __init imx7d_pinctrl_init(void)
402 return platform_driver_register(&imx7d_pinctrl_driver); 404 return platform_driver_register(&imx7d_pinctrl_driver);
403} 405}
404arch_initcall(imx7d_pinctrl_init); 406arch_initcall(imx7d_pinctrl_init);
405
406static void __exit imx7d_pinctrl_exit(void)
407{
408 platform_driver_unregister(&imx7d_pinctrl_driver);
409}
410module_exit(imx7d_pinctrl_exit);
411
412MODULE_AUTHOR("Anson Huang <Anson.Huang@freescale.com>");
413MODULE_DESCRIPTION("Freescale imx7d pinctrl driver");
414MODULE_LICENSE("GPL v2");
diff --git a/drivers/pinctrl/freescale/pinctrl-mxs.c b/drivers/pinctrl/freescale/pinctrl-mxs.c
index 6bbda6b4ab50..41b5b07d5a2b 100644
--- a/drivers/pinctrl/freescale/pinctrl-mxs.c
+++ b/drivers/pinctrl/freescale/pinctrl-mxs.c
@@ -12,7 +12,6 @@
12#include <linux/err.h> 12#include <linux/err.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/io.h> 14#include <linux/io.h>
15#include <linux/module.h>
16#include <linux/of.h> 15#include <linux/of.h>
17#include <linux/of_address.h> 16#include <linux/of_address.h>
18#include <linux/pinctrl/machine.h> 17#include <linux/pinctrl/machine.h>
@@ -553,14 +552,3 @@ err:
553 return ret; 552 return ret;
554} 553}
555EXPORT_SYMBOL_GPL(mxs_pinctrl_probe); 554EXPORT_SYMBOL_GPL(mxs_pinctrl_probe);
556
557int mxs_pinctrl_remove(struct platform_device *pdev)
558{
559 struct mxs_pinctrl_data *d = platform_get_drvdata(pdev);
560
561 pinctrl_unregister(d->pctl);
562 iounmap(d->base);
563
564 return 0;
565}
566EXPORT_SYMBOL_GPL(mxs_pinctrl_remove);
diff --git a/drivers/pinctrl/freescale/pinctrl-mxs.h b/drivers/pinctrl/freescale/pinctrl-mxs.h
index fdd88d0bae22..34dbf75208dc 100644
--- a/drivers/pinctrl/freescale/pinctrl-mxs.h
+++ b/drivers/pinctrl/freescale/pinctrl-mxs.h
@@ -86,6 +86,5 @@ struct mxs_pinctrl_soc_data {
86 86
87int mxs_pinctrl_probe(struct platform_device *pdev, 87int mxs_pinctrl_probe(struct platform_device *pdev,
88 struct mxs_pinctrl_soc_data *soc); 88 struct mxs_pinctrl_soc_data *soc);
89int mxs_pinctrl_remove(struct platform_device *pdev);
90 89
91#endif /* __PINCTRL_MXS_H */ 90#endif /* __PINCTRL_MXS_H */
diff --git a/drivers/pinctrl/freescale/pinctrl-vf610.c b/drivers/pinctrl/freescale/pinctrl-vf610.c
index 6d81be096bc0..2b1e198e3092 100644
--- a/drivers/pinctrl/freescale/pinctrl-vf610.c
+++ b/drivers/pinctrl/freescale/pinctrl-vf610.c
@@ -12,7 +12,6 @@
12#include <linux/err.h> 12#include <linux/err.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/io.h> 14#include <linux/io.h>
15#include <linux/module.h>
16#include <linux/of.h> 15#include <linux/of.h>
17#include <linux/of_device.h> 16#include <linux/of_device.h>
18#include <linux/pinctrl/pinctrl.h> 17#include <linux/pinctrl/pinctrl.h>
@@ -325,12 +324,3 @@ static int __init vf610_pinctrl_init(void)
325 return platform_driver_register(&vf610_pinctrl_driver); 324 return platform_driver_register(&vf610_pinctrl_driver);
326} 325}
327arch_initcall(vf610_pinctrl_init); 326arch_initcall(vf610_pinctrl_init);
328
329static void __exit vf610_pinctrl_exit(void)
330{
331 platform_driver_unregister(&vf610_pinctrl_driver);
332}
333module_exit(vf610_pinctrl_exit);
334
335MODULE_DESCRIPTION("Freescale VF610 pinctrl driver");
336MODULE_LICENSE("GPL v2");