mirror of
https://github.com/fail0verflow/switch-linux.git
synced 2025-11-05 02:27:36 -05:00
dt-bindings: i2c: add support for 'i2c-arb' subnode
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>
This commit is contained in:
parent
374f8436ff
commit
e8813c15be
3 changed files with 38 additions and 6 deletions
|
|
@ -44,8 +44,7 @@ Required properties:
|
||||||
- our-claim-gpio: The GPIO that we use to claim the bus.
|
- 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.
|
- 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.
|
Note that some implementations may only support a single other master.
|
||||||
- Standard I2C mux properties. See i2c-mux.txt in this directory.
|
- I2C arbitration bus node. See i2c-arb.txt in this directory.
|
||||||
- Single I2C child bus node at reg 0. See i2c-mux.txt in this directory.
|
|
||||||
|
|
||||||
Optional properties:
|
Optional properties:
|
||||||
- slew-delay-us: microseconds to wait for a GPIO to go high. Default is 10 us.
|
- slew-delay-us: microseconds to wait for a GPIO to go high. Default is 10 us.
|
||||||
|
|
@ -63,8 +62,6 @@ Example:
|
||||||
|
|
||||||
i2c-arbitrator {
|
i2c-arbitrator {
|
||||||
compatible = "i2c-arb-gpio-challenge";
|
compatible = "i2c-arb-gpio-challenge";
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
i2c-parent = <&{/i2c@12CA0000}>;
|
i2c-parent = <&{/i2c@12CA0000}>;
|
||||||
|
|
||||||
|
|
@ -74,8 +71,7 @@ Example:
|
||||||
wait-retry-us = <3000>;
|
wait-retry-us = <3000>;
|
||||||
wait-free-us = <50000>;
|
wait-free-us = <50000>;
|
||||||
|
|
||||||
i2c@0 {
|
i2c-arb {
|
||||||
reg = <0>;
|
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
|
|
||||||
35
Documentation/devicetree/bindings/i2c/i2c-arb.txt
Normal file
35
Documentation/devicetree/bindings/i2c/i2c-arb.txt
Normal file
|
|
@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
@ -5667,6 +5667,7 @@ S: Maintained
|
||||||
F: Documentation/i2c/i2c-topology
|
F: Documentation/i2c/i2c-topology
|
||||||
F: Documentation/i2c/muxes/
|
F: Documentation/i2c/muxes/
|
||||||
F: Documentation/devicetree/bindings/i2c/i2c-mux*
|
F: Documentation/devicetree/bindings/i2c/i2c-mux*
|
||||||
|
F: Documentation/devicetree/bindings/i2c/i2c-arb*
|
||||||
F: drivers/i2c/i2c-mux.c
|
F: drivers/i2c/i2c-mux.c
|
||||||
F: drivers/i2c/muxes/
|
F: drivers/i2c/muxes/
|
||||||
F: include/linux/i2c-mux.h
|
F: include/linux/i2c-mux.h
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue