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