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>tirimbino
parent
e8813c15be
commit
0ac8eb6452
@ -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>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
Loading…
Reference in new issue