Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1427390 > unrolled thread

[PATCH 0/3] iio: adc: max1363: Fix missing parts and add device tree

Started byFlorian Vaussard <florian.vaussard@gmail.com>
First post2016-06-21 09:30 +0200
Last post2016-06-21 11:50 +0200
Articles 6 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/3] iio: adc: max1363: Fix missing parts and add device tree Florian Vaussard <florian.vaussard@gmail.com> - 2016-06-21 09:30 +0200
    [PATCH 2/3] iio: adc: max1363: Add device tree binding documentation Florian Vaussard <florian.vaussard@gmail.com> - 2016-06-21 09:30 +0200
      Re: [PATCH 2/3] iio: adc: max1363: Add device tree binding  documentation Rob Herring <robh@kernel.org> - 2016-06-22 00:10 +0200
        Re: [PATCH 2/3] iio: adc: max1363: Add device tree binding  documentation Florian Vaussard <florian.vaussard@heig-vd.ch> - 2016-06-22 08:20 +0200
    [PATCH 3/3] iio: adc: max1363: Add device tree binding Florian Vaussard <florian.vaussard@gmail.com> - 2016-06-21 09:30 +0200
    [PATCH 1/3] iio: adc: max1363: Fix missing i2c_device_id for MAX1164x parts Florian Vaussard <florian.vaussard@gmail.com> - 2016-06-21 11:50 +0200

#1427390 — [PATCH 0/3] iio: adc: max1363: Fix missing parts and add device tree

FromFlorian Vaussard <florian.vaussard@gmail.com>
Date2016-06-21 09:30 +0200
Subject[PATCH 0/3] iio: adc: max1363: Fix missing parts and add device tree
Message-ID<rMoie-2I5-31@gated-at.bofh.it>
Hello,

This series first fix missing i2c_device_id for several MAX1164x parts.
It then introduces the necessary device tree binding to perform DT boot.

Tested with MAX11644 (DT boot).

Best regards,
Florian

Florian Vaussard (3):
  iio: adc: max1363: Fix missing i2c_device_id for MAX1164x parts
  iio: adc: max1363: Add device tree binding documentation
  iio: adc: max1363: Add device tree binding

 .../devicetree/bindings/iio/adc/max1363.txt        | 63 ++++++++++++++++++++++
 drivers/iio/adc/max1363.c                          | 62 ++++++++++++++++++++-
 2 files changed, 124 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/max1363.txt

-- 
2.5.0

[toc] | [next] | [standalone]


#1427392 — [PATCH 2/3] iio: adc: max1363: Add device tree binding documentation

FromFlorian Vaussard <florian.vaussard@gmail.com>
Date2016-06-21 09:30 +0200
Subject[PATCH 2/3] iio: adc: max1363: Add device tree binding documentation
Message-ID<rMoie-2I5-39@gated-at.bofh.it>
In reply to#1427390
Add the device tree documentation for all the supported parts. Mandatory
binding is the compatible string and the slave I2C address.

Optional properties can be used to specify the Vcc / Vref regulators, as
well as the IRQ line if available.

Signed-off-by: Florian Vaussard <florian.vaussard@heig-vd.ch>
---
 .../devicetree/bindings/iio/adc/max1363.txt        | 63 ++++++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/max1363.txt

diff --git a/Documentation/devicetree/bindings/iio/adc/max1363.txt b/Documentation/devicetree/bindings/iio/adc/max1363.txt
new file mode 100644
index 0000000..94a9011
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/max1363.txt
@@ -0,0 +1,63 @@
+* Maxim 1x3x/136x/116xx Analog to Digital Converter (ADC)
+
+The node for this driver must be a child node of a I2C controller, hence
+all mandatory properties for your controller must be specified. See directory:
+
+        Documentation/devicetree/bindings/i2c
+
+for more details.
+
+Required properties:
+  - compatible: Should be one of
+		"maxim,max1361"
+		"maxim,max1362"
+		"maxim,max1363"
+		"maxim,max1364"
+		"maxim,max1036"
+		"maxim,max1037"
+		"maxim,max1038"
+		"maxim,max1039"
+		"maxim,max1136"
+		"maxim,max1137"
+		"maxim,max1138"
+		"maxim,max1139"
+		"maxim,max1236"
+		"maxim,max1237"
+		"maxim,max1238"
+		"maxim,max1239"
+		"maxim,max11600"
+		"maxim,max11601"
+		"maxim,max11602"
+		"maxim,max11603"
+		"maxim,max11604"
+		"maxim,max11605"
+		"maxim,max11606"
+		"maxim,max11607"
+		"maxim,max11608"
+		"maxim,max11609"
+		"maxim,max11610"
+		"maxim,max11611"
+		"maxim,max11612"
+		"maxim,max11613"
+		"maxim,max11614"
+		"maxim,max11615"
+		"maxim,max11616"
+		"maxim,max11617"
+		"maxim,max11644"
+		"maxim,max11645"
+		"maxim,max11646"
+		"maxim,max11647"
+  - reg: Should contain the ADC I2C address
+
+Optional properties:
+  - vcc-supply: phandle to the regulator that provides power to the ADC.
+  - vref-supply: phandle to the regulator for ADC reference voltage.
+  - interrupts: IRQ line for the ADC. If not used the driver will use
+    polling.
+
+Example:
+adc: max11644@36 {
+	compatible = "maxim,max11644";
+	reg = <0x36>;
+	vref-supply = <&adc_vref>;
+};
-- 
2.5.0

[toc] | [prev] | [next] | [standalone]


#1428227 — Re: [PATCH 2/3] iio: adc: max1363: Add device tree binding documentation

FromRob Herring <robh@kernel.org>
Date2016-06-22 00:10 +0200
SubjectRe: [PATCH 2/3] iio: adc: max1363: Add device tree binding documentation
Message-ID<rMC1Q-3dH-17@gated-at.bofh.it>
In reply to#1427392
On Tue, Jun 21, 2016 at 09:09:28AM +0200, Florian Vaussard wrote:
> Add the device tree documentation for all the supported parts. Mandatory
> binding is the compatible string and the slave I2C address.
> 
> Optional properties can be used to specify the Vcc / Vref regulators, as
> well as the IRQ line if available.
> 
> Signed-off-by: Florian Vaussard <florian.vaussard@heig-vd.ch>
> ---
>  .../devicetree/bindings/iio/adc/max1363.txt        | 63 ++++++++++++++++++++++
>  1 file changed, 63 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/adc/max1363.txt

Acked-by: Rob Herring <robh@kernel.org>

[toc] | [prev] | [next] | [standalone]


#1428449 — Re: [PATCH 2/3] iio: adc: max1363: Add device tree binding documentation

FromFlorian Vaussard <florian.vaussard@heig-vd.ch>
Date2016-06-22 08:20 +0200
SubjectRe: [PATCH 2/3] iio: adc: max1363: Add device tree binding documentation
Message-ID<rMJG1-8cc-11@gated-at.bofh.it>
In reply to#1428227
Hi Rob,

Le 21. 06. 16 à 23:49, Rob Herring a écrit :
> On Tue, Jun 21, 2016 at 09:09:28AM +0200, Florian Vaussard wrote:
>> Add the device tree documentation for all the supported parts. Mandatory
>> binding is the compatible string and the slave I2C address.
>>
>> Optional properties can be used to specify the Vcc / Vref regulators, as
>> well as the IRQ line if available.
>>
>> Signed-off-by: Florian Vaussard <florian.vaussard@heig-vd.ch>
>> ---
>>  .../devicetree/bindings/iio/adc/max1363.txt        | 63 ++++++++++++++++++++++
>>  1 file changed, 63 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/iio/adc/max1363.txt
> 
> Acked-by: Rob Herring <robh@kernel.org>
> 

Thanks for the review.

Florian

[toc] | [prev] | [next] | [standalone]


#1427393 — [PATCH 3/3] iio: adc: max1363: Add device tree binding

FromFlorian Vaussard <florian.vaussard@gmail.com>
Date2016-06-21 09:30 +0200
Subject[PATCH 3/3] iio: adc: max1363: Add device tree binding
Message-ID<rMoie-2I5-41@gated-at.bofh.it>
In reply to#1427390
This patch adds the necessary device tree binding to allow DT probing of
currently supported parts.

Signed-off-by: Florian Vaussard <florian.vaussard@heig-vd.ch>
---
 drivers/iio/adc/max1363.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c
index b5d28c0..5403ec2 100644
--- a/drivers/iio/adc/max1363.c
+++ b/drivers/iio/adc/max1363.c
@@ -25,6 +25,8 @@
 #include <linux/slab.h>
 #include <linux/err.h>
 #include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
 
 #include <linux/iio/iio.h>
 #include <linux/iio/sysfs.h>
@@ -1516,6 +1518,50 @@ done:
 	return IRQ_HANDLED;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id max1363_of_match[] = {
+	{ .compatible = "maxim,max1361", .data = (void *)max1361 },
+	{ .compatible = "maxim,max1362", .data = (void *)max1362 },
+	{ .compatible = "maxim,max1363", .data = (void *)max1363 },
+	{ .compatible = "maxim,max1364", .data = (void *)max1364 },
+	{ .compatible = "maxim,max1036", .data = (void *)max1036 },
+	{ .compatible = "maxim,max1037", .data = (void *)max1037 },
+	{ .compatible = "maxim,max1038", .data = (void *)max1038 },
+	{ .compatible = "maxim,max1039", .data = (void *)max1039 },
+	{ .compatible = "maxim,max1136", .data = (void *)max1136 },
+	{ .compatible = "maxim,max1137", .data = (void *)max1137 },
+	{ .compatible = "maxim,max1138", .data = (void *)max1138 },
+	{ .compatible = "maxim,max1139", .data = (void *)max1139 },
+	{ .compatible = "maxim,max1236", .data = (void *)max1236 },
+	{ .compatible = "maxim,max1237", .data = (void *)max1237 },
+	{ .compatible = "maxim,max1238", .data = (void *)max1238 },
+	{ .compatible = "maxim,max1239", .data = (void *)max1239 },
+	{ .compatible = "maxim,max11600", .data = (void *)max11600 },
+	{ .compatible = "maxim,max11601", .data = (void *)max11601 },
+	{ .compatible = "maxim,max11602", .data = (void *)max11602 },
+	{ .compatible = "maxim,max11603", .data = (void *)max11603 },
+	{ .compatible = "maxim,max11604", .data = (void *)max11604 },
+	{ .compatible = "maxim,max11605", .data = (void *)max11605 },
+	{ .compatible = "maxim,max11606", .data = (void *)max11606 },
+	{ .compatible = "maxim,max11607", .data = (void *)max11607 },
+	{ .compatible = "maxim,max11608", .data = (void *)max11608 },
+	{ .compatible = "maxim,max11609", .data = (void *)max11609 },
+	{ .compatible = "maxim,max11610", .data = (void *)max11610 },
+	{ .compatible = "maxim,max11611", .data = (void *)max11611 },
+	{ .compatible = "maxim,max11612", .data = (void *)max11612 },
+	{ .compatible = "maxim,max11613", .data = (void *)max11613 },
+	{ .compatible = "maxim,max11614", .data = (void *)max11614 },
+	{ .compatible = "maxim,max11615", .data = (void *)max11615 },
+	{ .compatible = "maxim,max11616", .data = (void *)max11616 },
+	{ .compatible = "maxim,max11617", .data = (void *)max11617 },
+	{ .compatible = "maxim,max11644", .data = (void *)max11644 },
+	{ .compatible = "maxim,max11645", .data = (void *)max11645 },
+	{ .compatible = "maxim,max11646", .data = (void *)max11646 },
+	{ .compatible = "maxim,max11647", .data = (void *)max11647 },
+	{ /* sentinel */ }
+};
+#endif
+
 static int max1363_probe(struct i2c_client *client,
 			 const struct i2c_device_id *id)
 {
@@ -1523,6 +1569,15 @@ static int max1363_probe(struct i2c_client *client,
 	struct max1363_state *st;
 	struct iio_dev *indio_dev;
 	struct regulator *vref;
+	unsigned long devid;
+	const struct of_device_id *match;
+
+	match = of_match_device(of_match_ptr(max1363_of_match),
+				&client->dev);
+	if (match)
+		devid = (int)of_device_get_match_data(&client->dev);
+	else
+		devid = id->driver_data;
 
 	indio_dev = devm_iio_device_alloc(&client->dev,
 					  sizeof(struct max1363_state));
@@ -1549,7 +1604,7 @@ static int max1363_probe(struct i2c_client *client,
 	/* this is only used for device removal purposes */
 	i2c_set_clientdata(client, indio_dev);
 
-	st->chip_info = &max1363_chip_info_tbl[id->driver_data];
+	st->chip_info = &max1363_chip_info_tbl[devid];
 	st->client = client;
 
 	st->vref_uv = st->chip_info->int_vref_mv * 1000;
@@ -1692,6 +1747,7 @@ MODULE_DEVICE_TABLE(i2c, max1363_id);
 static struct i2c_driver max1363_driver = {
 	.driver = {
 		.name = "max1363",
+		.of_match_table = of_match_ptr(max1363_of_match),
 	},
 	.probe = max1363_probe,
 	.remove = max1363_remove,
-- 
2.5.0

[toc] | [prev] | [next] | [standalone]


#1427525 — [PATCH 1/3] iio: adc: max1363: Fix missing i2c_device_id for MAX1164x parts

FromFlorian Vaussard <florian.vaussard@gmail.com>
Date2016-06-21 11:50 +0200
Subject[PATCH 1/3] iio: adc: max1363: Fix missing i2c_device_id for MAX1164x parts
Message-ID<rMqtI-3ZE-15@gated-at.bofh.it>
In reply to#1427390
The driver supports MAX11644, MAX11645, MAX11646 and MAX11647 parts. But
the corresponding i2c_device_id are missing. Add them!

Signed-off-by: Florian Vaussard <florian.vaussard@heig-vd.ch>
---
 drivers/iio/adc/max1363.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c
index 929508e..b5d28c0 100644
--- a/drivers/iio/adc/max1363.c
+++ b/drivers/iio/adc/max1363.c
@@ -1680,6 +1680,10 @@ static const struct i2c_device_id max1363_id[] = {
 	{ "max11615", max11615 },
 	{ "max11616", max11616 },
 	{ "max11617", max11617 },
+	{ "max11644", max11644 },
+	{ "max11645", max11645 },
+	{ "max11646", max11646 },
+	{ "max11647", max11647 },
 	{}
 };
 
-- 
2.5.0

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web