Эх сурвалжийг харах

iio:pressure:ms5611: complete DT support

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>
Grégor Boirie 9 жил өмнө
parent
commit
7a948c5e05

+ 19 - 0
Documentation/devicetree/bindings/iio/pressure/ms5611.txt

@@ -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>;
+};

+ 1 - 0
Documentation/devicetree/bindings/vendor-prefixes.txt

@@ -136,6 +136,7 @@ lsi	LSI Corp. (LSI Logic)
 lltc	Linear Technology Corporation
 lltc	Linear Technology Corporation
 marvell	Marvell Technology Group Ltd.
 marvell	Marvell Technology Group Ltd.
 maxim	Maxim Integrated Products
 maxim	Maxim Integrated Products
+meas	Measurement Specialties
 mediatek	MediaTek Inc.
 mediatek	MediaTek Inc.
 melexis	Melexis N.V.
 melexis	Melexis N.V.
 merrii	Merrii Technology Co., Ltd.
 merrii	Merrii Technology Co., Ltd.

+ 13 - 0
drivers/iio/pressure/ms5611_i2c.c

@@ -17,6 +17,7 @@
 #include <linux/delay.h>
 #include <linux/delay.h>
 #include <linux/i2c.h>
 #include <linux/i2c.h>
 #include <linux/module.h>
 #include <linux/module.h>
+#include <linux/of_device.h>
 
 
 #include "ms5611.h"
 #include "ms5611.h"
 
 
@@ -113,6 +114,17 @@ static int ms5611_i2c_remove(struct i2c_client *client)
 	return ms5611_remove(i2c_get_clientdata(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[] = {
 static const struct i2c_device_id ms5611_id[] = {
 	{ "ms5611", MS5611 },
 	{ "ms5611", MS5611 },
 	{ "ms5607", MS5607 },
 	{ "ms5607", MS5607 },
@@ -123,6 +135,7 @@ MODULE_DEVICE_TABLE(i2c, ms5611_id);
 static struct i2c_driver ms5611_driver = {
 static struct i2c_driver ms5611_driver = {
 	.driver = {
 	.driver = {
 		.name = "ms5611",
 		.name = "ms5611",
+		.of_match_table = of_match_ptr(ms5611_i2c_matches)
 	},
 	},
 	.id_table = ms5611_id,
 	.id_table = ms5611_id,
 	.probe = ms5611_i2c_probe,
 	.probe = ms5611_i2c_probe,

+ 13 - 0
drivers/iio/pressure/ms5611_spi.c

@@ -12,6 +12,7 @@
 #include <linux/delay.h>
 #include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/module.h>
 #include <linux/spi/spi.h>
 #include <linux/spi/spi.h>
+#include <linux/of_device.h>
 
 
 #include "ms5611.h"
 #include "ms5611.h"
 
 
@@ -114,6 +115,17 @@ static int ms5611_spi_remove(struct spi_device *spi)
 	return ms5611_remove(spi_get_drvdata(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[] = {
 static const struct spi_device_id ms5611_id[] = {
 	{ "ms5611", MS5611 },
 	{ "ms5611", MS5611 },
 	{ "ms5607", MS5607 },
 	{ "ms5607", MS5607 },
@@ -124,6 +136,7 @@ MODULE_DEVICE_TABLE(spi, ms5611_id);
 static struct spi_driver ms5611_driver = {
 static struct spi_driver ms5611_driver = {
 	.driver = {
 	.driver = {
 		.name = "ms5611",
 		.name = "ms5611",
+		.of_match_table = of_match_ptr(ms5611_spi_matches)
 	},
 	},
 	.id_table = ms5611_id,
 	.id_table = ms5611_id,
 	.probe = ms5611_spi_probe,
 	.probe = ms5611_spi_probe,