OSDN Git Service

iio:pressure:ms5611: complete DT support
authorGrégor Boirie <gregor.boirie@parrot.com>
Tue, 1 Mar 2016 10:31:37 +0000 (11:31 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sat, 5 Mar 2016 14:41:00 +0000 (14:41 +0000)
Add device-tree ID tables and document bindings.

Signed-off-by: Gregor Boirie <gregor.boirie@parrot.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Documentation/devicetree/bindings/iio/pressure/ms5611.txt [new file with mode: 0644]
Documentation/devicetree/bindings/vendor-prefixes.txt
drivers/iio/pressure/ms5611_i2c.c
drivers/iio/pressure/ms5611_spi.c

diff --git a/Documentation/devicetree/bindings/iio/pressure/ms5611.txt b/Documentation/devicetree/bindings/iio/pressure/ms5611.txt
new file mode 100644 (file)
index 0000000..17bca86
--- /dev/null
@@ -0,0 +1,19 @@
+MEAS ms5611 family pressure sensors
+
+Pressure sensors from MEAS Switzerland with SPI and I2C bus interfaces.
+
+Required properties:
+- compatible: "meas,ms5611" or "meas,ms5607"
+- reg: the I2C address or SPI chip select the device will respond to
+
+Optional properties:
+- vdd-supply: an optional regulator that needs to be on to provide VDD
+  power to the sensor.
+
+Example:
+
+ms5607@77 {
+       compatible = "meas,ms5607";
+       reg = <0x77>;
+       vdd-supply = <&ldo_3v3_gnss>;
+};
index 44ddc98..7733f8c 100644 (file)
@@ -136,6 +136,7 @@ lsi LSI Corp. (LSI Logic)
 lltc   Linear Technology Corporation
 marvell        Marvell Technology Group Ltd.
 maxim  Maxim Integrated Products
+meas   Measurement Specialties
 mediatek       MediaTek Inc.
 melexis        Melexis N.V.
 merrii Merrii Technology Co., Ltd.
index 7f6fc8e..57a8f2c 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/delay.h>
 #include <linux/i2c.h>
 #include <linux/module.h>
+#include <linux/of_device.h>
 
 #include "ms5611.h"
 
@@ -113,6 +114,17 @@ static int ms5611_i2c_remove(struct i2c_client *client)
        return ms5611_remove(i2c_get_clientdata(client));
 }
 
+#if defined(CONFIG_OF)
+static const struct of_device_id ms5611_i2c_matches[] = {
+       { .compatible = "meas,ms5611" },
+       { .compatible = "ms5611" },
+       { .compatible = "meas,ms5607" },
+       { .compatible = "ms5607" },
+       { }
+};
+MODULE_DEVICE_TABLE(of, ms5611_i2c_matches);
+#endif
+
 static const struct i2c_device_id ms5611_id[] = {
        { "ms5611", MS5611 },
        { "ms5607", MS5607 },
@@ -123,6 +135,7 @@ MODULE_DEVICE_TABLE(i2c, ms5611_id);
 static struct i2c_driver ms5611_driver = {
        .driver = {
                .name = "ms5611",
+               .of_match_table = of_match_ptr(ms5611_i2c_matches)
        },
        .id_table = ms5611_id,
        .probe = ms5611_i2c_probe,
index 5cc009e..7ec0c64 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/spi/spi.h>
+#include <linux/of_device.h>
 
 #include "ms5611.h"
 
@@ -114,6 +115,17 @@ static int ms5611_spi_remove(struct spi_device *spi)
        return ms5611_remove(spi_get_drvdata(spi));
 }
 
+#if defined(CONFIG_OF)
+static const struct of_device_id ms5611_spi_matches[] = {
+       { .compatible = "meas,ms5611" },
+       { .compatible = "ms5611" },
+       { .compatible = "meas,ms5607" },
+       { .compatible = "ms5607" },
+       { }
+};
+MODULE_DEVICE_TABLE(of, ms5611_spi_matches);
+#endif
+
 static const struct spi_device_id ms5611_id[] = {
        { "ms5611", MS5611 },
        { "ms5607", MS5607 },
@@ -124,6 +136,7 @@ MODULE_DEVICE_TABLE(spi, ms5611_id);
 static struct spi_driver ms5611_driver = {
        .driver = {
                .name = "ms5611",
+               .of_match_table = of_match_ptr(ms5611_spi_matches)
        },
        .id_table = ms5611_id,
        .probe = ms5611_spi_probe,