[PATCH 2/7] dt-bindings: i2c: add support for 'i2c-arb' subnode

Peter Rosin
2016-07-27T08:44:08Z

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-mux {
#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>;
};
};
};

Signed-off-by: Peter Rosin <peda@axentia.se>
---
.../bindings/i2c/i2c-arb-gpio-challenge.txt | 8 ++---
Documentation/devicetree/bindings/i2c/i2c-arb.txt | 35 ++++++++++++++++++++++
MAINTAINERS | 1 +
3 files changed, 38 insertions(+), 6 deletions(-)
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-arb.txt

diff --git a/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt b/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt
index 71191ff0e781..248a155414c2 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt
@@ -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
index 000000000000..59abf9277bdc
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/i2c-arb.txt
@@ -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;
+ };
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 8c20323d1277..543052305a09 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5524,6 +5524,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
--
2.1.4