Thread (1 message) 1 message, 1 author, 2013-08-04

Re: [PATCH v2] iio: lps331ap: Add support for DT

From: Jonathan Cameron <hidden>
Date: 2013-08-04 11:55:03
Also in: linux-iio

On 07/19/13 14:36, Jacek Anaszewski wrote:
This patch adds DT support for the lps331ap barometer
sensor.

Signed-off-by: Jacek Anaszewski <redacted>
Signed-off-by: Kyungmin Park <redacted>
This makes sense to me and looks similar to that in existing bindings
hence,

Applied to the togreg branch of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git

Note I am one of those maintainers who has very limited knowledge of device
tree so am basing this decision on the 'it looks like existing mappings' rather
than any deep understanding.

Jonathan
quoted hunk
---
 .../devicetree/bindings/iio/pressure/lps331ap.txt  |   41 ++++++++++++++++++++
 drivers/iio/pressure/st_pressure_i2c.c             |   11 +++++-
 drivers/iio/pressure/st_pressure_spi.c             |   11 +++++-
 3 files changed, 61 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/iio/pressure/lps331ap.txt
diff --git a/Documentation/devicetree/bindings/iio/pressure/lps331ap.txt b/Documentation/devicetree/bindings/iio/pressure/lps331ap.txt
new file mode 100644
index 0000000..e05b45e
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/pressure/lps331ap.txt
@@ -0,0 +1,41 @@
+* STMicroelectronics LPS331AP barometer sensor
+
+Required properties:
+
+  - compatible : should be "st,lps331ap"
+  - reg : the I2C address of the barometer
+
+Optional properties:
+
+  - drdy-int-pin : redirect DRDY on pin INT1 (1) or pin INT2 (2) (u8)
+  - interrupt-parent : phandle to the interrupt map subnode
+  - interrupts : interrupt mapping for LPS331AP interrupt sources:
+		 2 sources: 0 - data ready, 1 - threshold event
+  - irq-map : irq sub-node defining interrupt map
+	      (all properties listed below are required):
+      - #interrupt-cells : should be 1
+      - #address-cells : should be 0
+      - #size-cells : should be 0
+      - interrupt-map : table of entries consisting of three child elements:
+	  - unit_interrupt_specifier - 0 : data ready, 1 : threshold event
+	  - interrupt parent phandle
+	  - parent unit interrupt specifier consisiting of two elements:
+	      - index of the interrupt within the controller
+	      - flags : should be 0
+
+Example:
+
+lps331ap@5d {
+	compatible = "st,lps331ap";
+	reg = <0x5d>;
+	drdy-int-pin = /bits/ 8 <2>;
+	interrupt-parent = <&irq_map>;
+	interrupts = <0>, <1>;
+
+	irq_map: irq-map {
+		#interrupt-cells = <1>;
+		#address-cells = <0>;
+		#size-cells = <0>;
+		interrupt-map = <0 &gpf0 5 0>;
+	};
+};
diff --git a/drivers/iio/pressure/st_pressure_i2c.c b/drivers/iio/pressure/st_pressure_i2c.c
index 7cebcc7..1683ebe 100644
--- a/drivers/iio/pressure/st_pressure_i2c.c
+++ b/drivers/iio/pressure/st_pressure_i2c.c
@@ -56,15 +56,24 @@ static int st_press_i2c_remove(struct i2c_client *client)
 }
 
 static const struct i2c_device_id st_press_id_table[] = {
-	{ LPS331AP_PRESS_DEV_NAME },
+	{ "st,lps331ap" },
 	{},
 };
 MODULE_DEVICE_TABLE(i2c, st_press_id_table);
 
+#ifdef CONFIG_OF
+static const struct of_device_id lps331ap_of_match[] = {
+	{ .compatible = "st,lps331ap", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, lps331ap_of_match);
+#endif
+
 static struct i2c_driver st_press_driver = {
 	.driver = {
 		.owner = THIS_MODULE,
 		.name = "st-press-i2c",
+		.of_match_table = of_match_ptr(lps331ap_of_match),
 	},
 	.probe = st_press_i2c_probe,
 	.remove = st_press_i2c_remove,
diff --git a/drivers/iio/pressure/st_pressure_spi.c b/drivers/iio/pressure/st_pressure_spi.c
index 17a1490..05c30d6 100644
--- a/drivers/iio/pressure/st_pressure_spi.c
+++ b/drivers/iio/pressure/st_pressure_spi.c
@@ -55,15 +55,24 @@ static int st_press_spi_remove(struct spi_device *spi)
 }
 
 static const struct spi_device_id st_press_id_table[] = {
-	{ LPS331AP_PRESS_DEV_NAME },
+	{ "st,lps331ap" },
 	{},
 };
 MODULE_DEVICE_TABLE(spi, st_press_id_table);
 
+#ifdef CONFIG_OF
+static const struct of_device_id lps331ap_of_match[] = {
+	{ .compatible = "st,lps331ap", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, lps331ap_of_match);
+#endif
+
 static struct spi_driver st_press_driver = {
 	.driver = {
 		.owner = THIS_MODULE,
 		.name = "st-press-spi",
+		.of_match_table = of_match_ptr(lps331ap_of_match),
 	},
 	.probe = st_press_spi_probe,
 	.remove = st_press_spi_remove,
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help