Thread (26 messages) 26 messages, 3 authors, 2015-09-25

Re: [PATCH v2 1/2] pinctrl: Add driver for Alphascale asm9260 pinctrl

From: Paul Bolle <hidden>
Date: 2015-03-27 17:10:49
Also in: linux-gpio, lkml

This patch adds a mismatch between the Kconfig symbol (bool) and the
code (which assumes a modular built too).

On Fri, 2015-03-27 at 10:36 +0100, Oleksij Rempel wrote:
quoted hunk ↗ jump to hunk
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -47,6 +47,14 @@ config PINCTRL_AS3722
 	  open drain configuration for the GPIO pins of AS3722 devices. It also
 	  supports the GPIO functionality through gpiolib.
 
+config PINCTRL_ASM9260
+	bool "Pinctrl driver for Alphascale asm9260"
This adds a bool symbol.
+	depends on MACH_ASM9260
+	select PINMUX
+	select GENERIC_PINCONF
+	help
+	  Say Y here to enable the Alphascale asm9260 pinctrl driver
+
quoted hunk ↗ jump to hunk
-- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
+obj-$(CONFIG_PINCTRL_ASM9260)	+= pinctrl-asm9260.o
So this object can now only be built-in.
quoted hunk ↗ jump to hunk
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-asm9260.c
@@ -0,0 +1,733 @@
+/*
+ * Pinctrl driver for the Alphascale ASM9260 SoC
+ *
+ * Copyright (c) 2014, Oleksij Rempel <linux@rempel-privat.de>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ */
+
+#include <linux/clk.h>
+#include <linux/io.h>
+#include <linux/module.h>
This include is probably not needed.
+#include <linux/pinctrl/pinconf-generic.h>
+#include <linux/pinctrl/pinmux.h>
+#include <linux/platform_device.h>
+
+#include "core.h"
+#include "pinctrl-utils.h"
+/*
+ * Pin control driver setup
+ */
+static struct pinctrl_desc asm9260_pinctrl_desc = {
+	.pctlops	= &asm9260_pinctrl_ops,
+	.pmxops		= &asm9260_pinmux_ops,
+	.confops	= &asm9260_pinconf_ops,
+	.owner		= THIS_MODULE,
THIS_MODULE is, basically, equivalent to NULL for built-in code.
+};
+
+MODULE_DEVICE_TABLE(of, asm9260_pinctrl_of_match);
This will be preprocessed away for built-in code.
+module_platform_driver(asm9260_pinctrl_driver);
The built-in equivalent of this seems to be a wrapper that
only does
    platform_driver_register(&asm9260_pinctrl_driver);

and mark that wrapper as a device_initcall(). There appears to be no
macro that does all that in one line.
+MODULE_AUTHOR("Oleksij Rempel [off-list ref]");
+MODULE_DESCRIPTION("Alphascale ASM9260 pinctrl driver");
+MODULE_LICENSE("GPL");
These three macros will be, effectively, preprocessed away for built-in
code. (By the way, you probably want to use "GPL v2" as the license
ident if it would be possible to build this code modular.)


Paul Bolle
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help