[PATCH v2 2/4] iio: gyro: add device tree support for fxas21002c

From: Afonso Bordado
Date: Thu Aug 30 2018 - 17:19:14 EST


This patch adds device tree support for the fxas21002c driver, including
bindings.

Signed-off-by: Afonso Bordado <afonsobordado@xxxxxx>
---
.../bindings/iio/gyroscope/fsl,fxas21002c.txt | 35 +++++++++++++++++++
drivers/iio/gyro/fxas21002c.c | 13 ++++++-
2 files changed, 47 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/iio/gyroscope/fsl,fxas21002c.txt

diff --git a/Documentation/devicetree/bindings/iio/gyroscope/fsl,fxas21002c.txt b/Documentation/devicetree/bindings/iio/gyroscope/fsl,fxas21002c.txt
new file mode 100644
index 000000000000..2feda6da5566
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/gyroscope/fsl,fxas21002c.txt
@@ -0,0 +1,35 @@
+* Freescale FXAS21002C Digital Angular Rate Gyroscope
+
+Required properties:
+
+ - compatible: must be "fsl,fxas21002c"
+ - reg : the I2C address of the sensor
+
+Optional properties:
+
+ - interrupt-parent : phandle to the parent interrupt controller.
+ see interrupt-controller/interrupts.txt
+ - interrupts : The first interrupt listed must be the one
+ connected to the INT1 pin, the second interrupt
+ listed must be the one connected to the INT2 pin.
+ The interrupts can be triggered on rising or falling
+ edges alike.
+ see interrupt-controller/interrupts.txt
+ - vdd-supply : The main voltage regulator
+ - iovdd-supply : The IO voltage regulator
+ see regulator/regulator.txt
+ - reset-gpios : GPIO used to reset the device.
+ see gpio/gpio.txt.
+ - mount-matrix : see iio/mount-matrix.txt
+
+Example:
+gyroscope@0 {
+ compatible = "fsl,fxas21002c";
+ reg = <0x20>;
+ reset-gpios = <&gpio0 2 0>;
+ vdd-supply = <&vref>;
+ iovdd-supply = <&vref2>;
+ interrupt-parent = <&foo>;
+ interrupts = <0 IRQ_TYPE_EDGE_RISING>,
+ <1 (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)>;
+};
diff --git a/drivers/iio/gyro/fxas21002c.c b/drivers/iio/gyro/fxas21002c.c
index 261b73629544..7471e9b80010 100644
--- a/drivers/iio/gyro/fxas21002c.c
+++ b/drivers/iio/gyro/fxas21002c.c
@@ -8,8 +8,10 @@
* Datasheet: https://www.nxp.com/docs/en/data-sheet/FXAS21002.pdf
* TODO:
* ODR / Scale Support
- * Devicetree
* Power management
+ * GPIO Reset
+ * Power supplies
+ * Mount Matrix
* LowPass/HighPass Filters
* Buffers
* Interrupts
@@ -345,6 +347,14 @@ static int fxas21002c_probe(struct i2c_client *client,
return ret;
}

+#ifdef CONFIG_OF
+static const struct of_device_id fxas21002c_of_ids[] = {
+ {.compatible = "fsl,fxas21002c"},
+ {}
+};
+MODULE_DEVICE_TABLE(of, fxas21002c_of_ids);
+#endif
+
static const struct i2c_device_id fxas21002c_id[] = {
{"fxas21002c", ID_FXAS21002C},
{}
@@ -355,6 +365,7 @@ MODULE_DEVICE_TABLE(i2c, fxas21002c_id);
static struct i2c_driver fxas21002c_driver = {
.driver = {
.name = FXAS21002C_DRV_NAME,
+ .of_match_table = of_match_ptr(fxas21002c_of_ids),
},
.probe = fxas21002c_probe,
.id_table = fxas21002c_id,
--
2.18.0