Thread (10 messages) 10 messages, 4 authors, 2016-07-03

Re: [PATCH v2 3/4] iio: potentiometer: mcp4531: Add device tree binding

From: Florian Vaussard <hidden>
Date: 2016-06-27 05:52:37
Also in: linux-iio, lkml

Hi Peter,

Le 27. 06. 16 à 00:12, Peter Rosin a écrit :
Hi Florian,

On 2016-06-26 22:22, Florian Vaussard wrote:
quoted
This patch adds the necessary device tree binding to allow DT probing of
currently supported parts.

Signed-off-by: Florian Vaussard <florian.vaussard-EWQkb/GNqlFyDzI6CaY1VQ@public.gmane.org>
---
 drivers/iio/potentiometer/mcp4531.c | 273 +++++++++++++++++++++++++++++++++++-
 1 file changed, 272 insertions(+), 1 deletion(-)
diff --git a/drivers/iio/potentiometer/mcp4531.c b/drivers/iio/potentiometer/mcp4531.c
index 2251173..bf7b853 100644
--- a/drivers/iio/potentiometer/mcp4531.c
+++ b/drivers/iio/potentiometer/mcp4531.c
@@ -31,6 +31,8 @@
 #include <linux/module.h>
 #include <linux/i2c.h>
 #include <linux/err.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
 
 #include <linux/iio/iio.h>
 
@@ -188,12 +190,275 @@ static const struct iio_info mcp4531_info = {
 	.driver_module = THIS_MODULE,
 };
 
+#ifdef CONFIG_OF
+static const struct of_device_id mcp4531_of_match[] = {
+	{
+		.compatible = "microchip,mcp4531-502",
+		.data = &mcp4531_cfg[MCP453x_502]
+	},
All this vertical whitespace makes this unreadable. I'd be
happier with either ignoring the 80 char rule, or skipping
the leading tab. I.e.

	{ .compatible = "microchip,mcp4531-502", .data = &mcp4531_cfg[MCP453x_502] },
	{ .compatible = "microchip,mcp4531-103", .data = &mcp4531_cfg[MCP453x_103] },
	{ .compatible = "microchip,mcp4531-503", .data = &mcp4531_cfg[MCP453x_503] },
	...

or

{ .compatible = "microchip,mcp4531-502", .data = &mcp4531_cfg[MCP453x_502] },
{ .compatible = "microchip,mcp4531-103", .data = &mcp4531_cfg[MCP453x_103] },
{ .compatible = "microchip,mcp4531-503", .data = &mcp4531_cfg[MCP453x_503] },
...

Or perhaps using a macro?

#define MCP4531_COMPATIBLE(of_compatible, cfg) {	\
		.compatible = of_compatible,		\
		.data = &mcp4531_cfg[cfg],		\
}

and then

	MCP4531_COMPATIBLE("microchip,mcp4531-502", MCP453x_502),
	MCP4531_COMPATIBLE("microchip,mcp4531-103", MCP453x_103),
	MCP4531_COMPATIBLE("microchip,mcp4531-503", MCP453x_503),
	...

Pick any of those, and you have my ack. Maybe Jonathan has an opinion
on which is best?
The macro is my preferred one, as it makes things easier to read. Jonathan?

Thanks for the suggestion!

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