dt-bindings: i2c: add support for 'i2c-arb' subnode
authorPeter Rosin <peda@axentia.se>
Fri, 8 Jul 2016 10:12:17 +0000 (12:12 +0200)
committerPeter Rosin <peda@axentia.se>
Thu, 25 Aug 2016 20:11:00 +0000 (22:11 +0200)
This gets rid of the need for a pointless 'reg' property for i2c
arbitrators.

I.e. this new and more compact style

some-arbitrator {
i2c-arb {
#address-cells = <1>;
#size-cells = <0>;

some-i2c-device@50 {
reg = <0x50>;
};
};
};

instead of the old

some-arbitrator {
#address-cells = <1>;
#size-cells = <0>;

i2c@0 {
reg = <0>;

#address-cells = <1>;
#size-cells = <0>;

some-i2c-device@50 {
reg = <0x50>;
};
};
};

Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Peter Rosin <peda@axentia.se>
Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt
Documentation/devicetree/bindings/i2c/i2c-arb.txt [new file with mode: 0644]
MAINTAINERS

index 71191ff..248a155 100644 (file)
@@ -44,8 +44,7 @@ Required properties:
 - our-claim-gpio: The GPIO that we use to claim the bus.
 - their-claim-gpios: The GPIOs that the other sides use to claim the bus.
   Note that some implementations may only support a single other master.
-- Standard I2C mux properties. See i2c-mux.txt in this directory.
-- Single I2C child bus node at reg 0. See i2c-mux.txt in this directory.
+- I2C arbitration bus node. See i2c-arb.txt in this directory.
 
 Optional properties:
 - slew-delay-us: microseconds to wait for a GPIO to go high. Default is 10 us.
@@ -63,8 +62,6 @@ Example:
 
        i2c-arbitrator {
                compatible = "i2c-arb-gpio-challenge";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                i2c-parent = <&{/i2c@12CA0000}>;
 
@@ -74,8 +71,7 @@ Example:
                wait-retry-us = <3000>;
                wait-free-us = <50000>;
 
-               i2c@0 {
-                       reg = <0>;
+               i2c-arb {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
diff --git a/Documentation/devicetree/bindings/i2c/i2c-arb.txt b/Documentation/devicetree/bindings/i2c/i2c-arb.txt
new file mode 100644 (file)
index 0000000..59abf92
--- /dev/null
@@ -0,0 +1,35 @@
+Common i2c arbitration bus properties.
+
+- i2c-arb child node
+
+Required properties for the i2c-arb child node:
+- #address-cells = <1>;
+- #size-cells = <0>;
+
+Optional properties for i2c-arb child node:
+- Child nodes conforming to i2c bus binding
+
+
+Example :
+
+       /*
+          An NXP pca9541 I2C bus master selector at address 0x74
+          with a NXP pca8574 GPIO expander attached.
+        */
+
+       arb@74 {
+               compatible = "nxp,pca9541";
+               reg = <0x74>;
+
+               i2c-arb {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       gpio@38 {
+                               compatible = "nxp,pca8574";
+                               reg = <0x38>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                       };
+               };
+       };
index 0bbe4b1..cde3e72 100644 (file)
@@ -5667,6 +5667,7 @@ S:        Maintained
 F:     Documentation/i2c/i2c-topology
 F:     Documentation/i2c/muxes/
 F:     Documentation/devicetree/bindings/i2c/i2c-mux*
+F:     Documentation/devicetree/bindings/i2c/i2c-arb*
 F:     drivers/i2c/i2c-mux.c
 F:     drivers/i2c/muxes/
 F:     include/linux/i2c-mux.h