i2c-mux.txt 1.77 KB
Newer Older
1 2 3 4
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
5
multiplexer/switch will have one child node for each child bus.
6

7 8
Optional properties:
- #address-cells = <1>;
9
   This property is required if the i2c-mux child node does not exist.
10 11

- #size-cells = <0>;
12
   This property is required if the i2c-mux child node does not exist.
13 14 15 16 17 18 19 20 21

- 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:
22 23 24
- #address-cells = <1>;
- #size-cells = <0>;

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

30
Optional properties for i2c child bus nodes:
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
- Other properties specific to the multiplexer/switch hardware.
- Child nodes conforming to i2c bus binding


Example :

	/*
	   An NXP pca9548 8 channel I2C multiplexer at address 0x70
	   with two NXP pca8574 GPIO expanders attached, one each to
	   ports 3 and 4.
	 */

	mux@70 {
		compatible = "nxp,pca9548";
		reg = <0x70>;
		#address-cells = <1>;
		#size-cells = <0>;

		i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;

			gpio1: gpio@38 {
				compatible = "nxp,pca8574";
				reg = <0x38>;
				#gpio-cells = <2>;
				gpio-controller;
			};
		};
		i2c@4 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <4>;

			gpio2: gpio@38 {
				compatible = "nxp,pca8574";
				reg = <0x38>;
				#gpio-cells = <2>;
				gpio-controller;
			};
		};
	};