summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/i2c/i2c-mux.txt
blob: af84cce5cd7bcd73c8b062e0e26b9d9494339864 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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
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.

Required properties:
- #address-cells = <1>;
- #size-cells = <0>;

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

Optional properties for child nodes:
- 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;
			};
		};
	};