]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
pinctrl: sunxi: Move Allwinner A20 pinctrl driver to a driver of its own
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Fri, 18 Apr 2014 18:12:50 +0000 (20:12 +0200)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Sun, 4 May 2014 07:04:49 +0000 (00:04 -0700)
Move the pin description to a driver specific to be.

This is the final step toward retiring pinctrl-sunxi-pins.h that used to define
all the pins for all the Allwinner SoCs in a single header, that would have in
turn result in having these structures in the final binary as many times as the
header was included.

We can finally remove that header, and remove all the driver part of the
pinctrl-sunxi core.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
drivers/pinctrl/sunxi/Makefile
drivers/pinctrl/sunxi/pinctrl-sun7i-a20.c [moved from drivers/pinctrl/sunxi/pinctrl-sunxi-pins.h with 97% similarity]
drivers/pinctrl/sunxi/pinctrl-sunxi.c

index df22956ea6808e7c6ca9bcd86b2b4f94e1eebe16..19dc3dab37c0aa546d502d336eca180d4c7d212a 100644 (file)
@@ -7,3 +7,4 @@ obj-$(CONFIG_PINCTRL_SUNXI)     += pinctrl-sun5i-a10s.o
 obj-$(CONFIG_PINCTRL_SUNXI)    += pinctrl-sun5i-a13.o
 obj-$(CONFIG_PINCTRL_SUNXI)    += pinctrl-sun6i-a31.o
 obj-$(CONFIG_PINCTRL_SUNXI)    += pinctrl-sun6i-a31-r.o
+obj-$(CONFIG_PINCTRL_SUNXI)    += pinctrl-sun7i-a20.o
similarity index 97%
rename from drivers/pinctrl/sunxi/pinctrl-sunxi-pins.h
rename to drivers/pinctrl/sunxi/pinctrl-sun7i-a20.c
index 13ec0172145b1f98f5feedf2946253fe148d32f8..d8577ce5f1a405dc49c61e0ddee01b7079bf5563 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Allwinner A1X SoCs pinctrl driver.
+ * Allwinner A20 SoCs pinctrl driver.
  *
- * Copyright (C) 2012 Maxime Ripard
+ * Copyright (C) 2014 Maxime Ripard
  *
  * Maxime Ripard <maxime.ripard@free-electrons.com>
  *
  * warranty of any kind, whether express or implied.
  */
 
-#ifndef __PINCTRL_SUNXI_PINS_H
-#define __PINCTRL_SUNXI_PINS_H
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/pinctrl/pinctrl.h>
 
 #include "pinctrl-sunxi.h"
 
@@ -1035,4 +1038,28 @@ static const struct sunxi_pinctrl_desc sun7i_a20_pinctrl_data = {
        .npins = ARRAY_SIZE(sun7i_a20_pins),
 };
 
-#endif /* __PINCTRL_SUNXI_PINS_H */
+static int sun7i_a20_pinctrl_probe(struct platform_device *pdev)
+{
+       return sunxi_pinctrl_init(pdev,
+                                 &sun7i_a20_pinctrl_data);
+}
+
+static struct of_device_id sun7i_a20_pinctrl_match[] = {
+       { .compatible = "allwinner,sun7i-a20-pinctrl", },
+       {}
+};
+MODULE_DEVICE_TABLE(of, sun7i_a20_pinctrl_match);
+
+static struct platform_driver sun7i_a20_pinctrl_driver = {
+       .probe  = sun7i_a20_pinctrl_probe,
+       .driver = {
+               .name           = "sun7i-a20-pinctrl",
+               .owner          = THIS_MODULE,
+               .of_match_table = sun7i_a20_pinctrl_match,
+       },
+};
+module_platform_driver(sun7i_a20_pinctrl_driver);
+
+MODULE_AUTHOR("Maxime Ripard <maxime.ripard@free-electrons.com");
+MODULE_DESCRIPTION("Allwinner A20 pinctrl driver");
+MODULE_LICENSE("GPL");
index bf56cd3feec2c0282797c9a76e8a9eadd8ffb472..2c3fb92b8972f10b7569de18268d290482d1181f 100644 (file)
@@ -31,7 +31,6 @@
 
 #include "../core.h"
 #include "pinctrl-sunxi.h"
-#include "pinctrl-sunxi-pins.h"
 
 static struct sunxi_pinctrl_group *
 sunxi_pinctrl_find_group_by_name(struct sunxi_pinctrl *pctl, const char *group)
@@ -673,12 +672,6 @@ static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc)
        }
 }
 
-static struct of_device_id sunxi_pinctrl_match[] = {
-       { .compatible = "allwinner,sun7i-a20-pinctrl", .data = (void *)&sun7i_a20_pinctrl_data },
-       {}
-};
-MODULE_DEVICE_TABLE(of, sunxi_pinctrl_match);
-
 static int sunxi_pinctrl_add_function(struct sunxi_pinctrl *pctl,
                                        const char *name)
 {
@@ -930,28 +923,3 @@ pinctrl_error:
        pinctrl_unregister(pctl->pctl_dev);
        return ret;
 }
-
-static int sunxi_pinctrl_probe(struct platform_device *pdev)
-{
-       const struct of_device_id *device;
-
-       device = of_match_device(sunxi_pinctrl_match, &pdev->dev);
-       if (!device)
-               return -ENODEV;
-
-       return sunxi_pinctrl_init(pdev, device->data);
-}
-
-static struct platform_driver sunxi_pinctrl_driver = {
-       .probe = sunxi_pinctrl_probe,
-       .driver = {
-               .name = "sunxi-pinctrl",
-               .owner = THIS_MODULE,
-               .of_match_table = sunxi_pinctrl_match,
-       },
-};
-module_platform_driver(sunxi_pinctrl_driver);
-
-MODULE_AUTHOR("Maxime Ripard <maxime.ripard@free-electrons.com>");
-MODULE_DESCRIPTION("Allwinner A1X pinctrl driver");
-MODULE_LICENSE("GPL");