mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 02:34:01 +08:00
dt-bindings: i2c: add support for 'i2c-gate' subnode
Handle i2c gates similarly to how i2c arbitrators are handled. This gets rid of a pointless 'reg' property for i2c gates. I.e. this new and more compact style some-gate { i2c-gate { #address-cells = <1>; #size-cells = <0>; some-i2c-device@50 { reg = <0x50>; }; }; }; instead of the old some-gate { #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
e8813c15be
commit
0ac8eb6452
41
Documentation/devicetree/bindings/i2c/i2c-gate.txt
Normal file
41
Documentation/devicetree/bindings/i2c/i2c-gate.txt
Normal file
@ -0,0 +1,41 @@
|
||||
An i2c gate is useful to e.g. reduce the digital noise for RF tuners connected
|
||||
to the i2c bus. Gates are similar to arbitrators in that you need to perform
|
||||
some kind of operation to access the i2c bus past the arbitrator/gate, but
|
||||
there are no competing masters to consider for gates and therefore there is
|
||||
no arbitration happening for gates.
|
||||
|
||||
Common i2c gate properties.
|
||||
|
||||
- i2c-gate child node
|
||||
|
||||
Required properties for the i2c-gate child node:
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <0>;
|
||||
|
||||
Optional properties for i2c-gate child node:
|
||||
- Child nodes conforming to i2c bus binding
|
||||
|
||||
|
||||
Example :
|
||||
|
||||
/*
|
||||
An Invensense mpu9150 at address 0x68 featuring an on-chip Asahi
|
||||
Kasei ak8975 compass behind a gate.
|
||||
*/
|
||||
|
||||
mpu9150@68 {
|
||||
compatible = "invensense,mpu9150";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <18 1>;
|
||||
|
||||
i2c-gate {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ax8975@c {
|
||||
compatible = "ak,ak8975";
|
||||
reg = <0x0c>;
|
||||
};
|
||||
};
|
||||
};
|
@ -5668,6 +5668,7 @@ F: Documentation/i2c/i2c-topology
|
||||
F: Documentation/i2c/muxes/
|
||||
F: Documentation/devicetree/bindings/i2c/i2c-mux*
|
||||
F: Documentation/devicetree/bindings/i2c/i2c-arb*
|
||||
F: Documentation/devicetree/bindings/i2c/i2c-gate*
|
||||
F: drivers/i2c/i2c-mux.c
|
||||
F: drivers/i2c/muxes/
|
||||
F: include/linux/i2c-mux.h
|
||||
|
Loading…
Reference in New Issue
Block a user