^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) An i2c gate is useful to e.g. reduce the digital noise for RF tuners connected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) to the i2c bus. Gates are similar to arbitrators in that you need to perform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) some kind of operation to access the i2c bus past the arbitrator/gate, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) there are no competing masters to consider for gates and therefore there is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) no arbitration happening for gates.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Common i2c gate properties.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) - i2c-gate child node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) Required properties for the i2c-gate child node:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) - #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) Optional properties for i2c-gate child node:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) - Child nodes conforming to i2c bus binding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) Example :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) An Invensense mpu9150 at address 0x68 featuring an on-chip Asahi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) Kasei ak8975 compass behind a gate.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) mpu9150@68 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) compatible = "invensense,mpu9150";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) reg = <0x68>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) interrupt-parent = <&gpio1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) interrupts = <18 1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) i2c-gate {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) ax8975@c {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) compatible = "ak,ak8975";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) reg = <0x0c>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) };