Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d54f144 authored by Wolfram Sang's avatar Wolfram Sang
Browse files

Merge branch 'i2c-mux-dt-3' of https://github.com/peda-r/i2c-mux into i2c/for-4.9



Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parents 0317e6c0 8a191a7a
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -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>;

+35 −0
Original line number Diff line number Diff line
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;
			};
		};
	};
+41 −0
Original line number Diff line number Diff line
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>;
			};
		};
	};
+18 −5
Original line number Diff line number Diff line
@@ -2,19 +2,32 @@ Common i2c bus multiplexer/switch properties.

An i2c bus multiplexer/switch will have several child busses that are
numbered uniquely in a device dependent manner.  The nodes for an i2c bus
multiplexer/switch will have one child node for each child
bus.
multiplexer/switch will have one child node for each child bus.

Required properties:
Optional properties:
- #address-cells = <1>;
   This property is required is the i2c-mux child node does not exist.

- #size-cells = <0>;
   This property is required is the i2c-mux child node does not exist.

- i2c-mux
   For i2c multiplexers/switches that have child nodes that are a mixture
   of both i2c child busses and other child nodes, the 'i2c-mux' subnode
   can be used for populating the i2c child busses.  If an 'i2c-mux'
   subnode is present, only subnodes of this will be considered as i2c
   child busses.

Required properties for the i2c-mux child node:
- #address-cells = <1>;
- #size-cells = <0>;

Required properties for child nodes:
Required properties for i2c child bus nodes:
- #address-cells = <1>;
- #size-cells = <0>;
- reg : The sub-bus number.

Optional properties for child nodes:
Optional properties for i2c child bus nodes:
- Other properties specific to the multiplexer/switch hardware.
- Child nodes conforming to i2c bus binding

+29 −0
Original line number Diff line number Diff line
* NXP PCA9541 I2C bus master selector

Required Properties:

  - compatible: Must be "nxp,pca9541"

  - reg: The I2C address of the device.

  The following required properties are defined externally:

  - I2C arbitration bus node. See i2c-arb.txt in this directory.


Example:

	i2c-arbitrator@74 {
		compatible = "nxp,pca9541";
		reg = <0x74>;

		i2c-arb {
			#address-cells = <1>;
			#size-cells = <0>;

			eeprom@54 {
				compatible = "at,24c08";
				reg = <0x54>;
			};
		};
	};
Loading