diff mbox

[1/2] iio: gyro: Add MPU-3050 device tree bindings

Message ID 1471286275-25024-1-git-send-email-linus.walleij@linaro.org
State Superseded
Headers show

Commit Message

Linus Walleij Aug. 15, 2016, 6:37 p.m. UTC
This adds device tree bindings for the MPU-3050 gyroscope. Since it
is the first set of bindings for a gyroscope, the folder for it
is also created.

Cc: devicetree@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

---
 .../bindings/iio/gyroscope/invensense,mpu3050.txt  | 54 ++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt

-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Rob Herring (Arm) Aug. 16, 2016, 2:28 p.m. UTC | #1
On Mon, Aug 15, 2016 at 08:37:55PM +0200, Linus Walleij wrote:
> This adds device tree bindings for the MPU-3050 gyroscope. Since it

> is the first set of bindings for a gyroscope, the folder for it

> is also created.


Is this not similar to mpu-6050 and other Invsense devices:

Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij Aug. 16, 2016, 7:33 p.m. UTC | #2
On Tue, Aug 16, 2016 at 4:28 PM, Rob Herring <robh@kernel.org> wrote:
> On Mon, Aug 15, 2016 at 08:37:55PM +0200, Linus Walleij wrote:

>> This adds device tree bindings for the MPU-3050 gyroscope. Since it

>> is the first set of bindings for a gyroscope, the folder for it

>> is also created.

>

> Is this not similar to mpu-6050 and other Invsense devices:

>

> Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt


I guess it was a precursor.

The MPU-3050 is a pure gyroscope, the MPU-6050 combines
the gyro with an accelerometer. That is why it is classified as
an IMU rather than a gyro.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt b/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt
new file mode 100644
index 000000000000..e17231a5f4b5
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/gyroscope/invensense,mpu3050.txt
@@ -0,0 +1,54 @@ 
+Invensense MPU-3050 Gyroscope device tree bindings
+
+Required properties:
+  - compatible : should be "invensense,mpu3050"
+  - reg : the I2C address of the sensor
+  - #address-cells : should be <1>, used to indicate the optional
+    I2C mux node
+  - #size-cells : should be <0>
+
+Optional properties:
+  - interrupt-parent : should be the phandle for the interrupt controller
+  - interrupts : interrupt mapping for the trigger interrupt from the
+    internal oscillator. The following IRQ modes are supported:
+    IRQ_TYPE_EDGE_RISING, IRQ_TYPE_EDGE_FALLING, IRQ_TYPE_LEVEL_HIGH and
+    IRQ_TYPE_LEVEL_LOW. The driver should detect and configure the hardware
+    for the desired interrupt type.
+  - vdd-supply : supply regulator for the main power voltage.
+  - vlogic-supply : supply regulator for the signal voltage.
+  - mount-matrix : see iio/mount-matrix.txt
+
+Optional subnodes:
+  - The MPU-3050 will pass through and forward the I2C signals from the
+    incoming I2C bus, alternatively drive traffic to a slave device (usually
+    an accelerometer) on its own initiative. Therefore is supports a subnode
+    i2c master node. This node is like any I2C master and should contain:
+    #address-cells = <1>;
+    #size-cells = <0>;
+    reg = <0>;
+
+Example:
+
+mpu3050@68 {
+	compatible = "invensense,mpu3050";
+	reg = <0x68>;
+	#address-cells = <1>;
+	#size-cells = <0>;
+	interrupt-parent = <&foo>;
+	interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
+	vdd-supply = <&bar>;
+	vlogic-supply = <&baz>;
+
+	/* External I2C interface */
+	i2c@0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0>;
+		fnord@18 {
+			compatible = "fnord";
+			reg = <0x18>;
+			interrupt-parent = <&foo>;
+			interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+		};
+	};
+};