Lines Matching +full:ddc +full:- +full:i2c +full:- +full:bus
1 # SPDX-License-Identifier: GPL-2.0-only
3 ---
4 $id: http://devicetree.org/schemas/i2c/i2c-mux-pinctrl.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Pinctrl-based I2C Bus Mux
10 - Wolfram Sang <wsa@kernel.org>
13 This binding describes an I2C bus multiplexer that uses pin multiplexing to route the I2C
17 +-----+ +-----+
19 +------------------------+ +-----+ +-----+
21 | /----|------+--------+
22 | +---+ +------+ | child bus A, on first set of pins
23 | |I2C|---|Pinmux| |
24 | +---+ +------+ | child bus B, on second set of pins
25 | \----|------+--------+--------+
27 +------------------------+ +-----+ +-----+ +-----+
29 +-----+ +-----+ +-----+
31 For each named state defined in the pinctrl-names property, an I2C child bus will be created.
32 I2C child bus numbers are assigned based on the index into the pinctrl-names property.
34 The only exception is that no bus will be created for a state named "idle". If such a state is
35 defined, it must be the last entry in pinctrl-names. For example:
37 pinctrl-names = "ddc", "pta", "idle" -> ddc = bus 0, pta = bus 1
38 pinctrl-names = "ddc", "idle", "pta" -> Invalid ("idle" not last)
39 pinctrl-names = "idle", "ddc", "pta" -> Invalid ("idle" not last)
41 Whenever an access is made to a device on a child bus, the relevant pinctrl state will be
44 If an idle state is defined, whenever an access is not being made to a device on a child bus,
48 into hardware whenever no access is being made of a device on a child bus.
52 const: i2c-mux-pinctrl
54 i2c-parent:
56 description: The phandle of the I2C bus that this multiplexer's master-side port is connected
60 - $ref: i2c-mux.yaml
65 - compatible
66 - i2c-parent
69 - |
71 compatible = "i2c-mux-pinctrl";
72 #address-cells = <1>;
73 #size-cells = <0>;
75 i2c-parent = <&i2c1>;
77 pinctrl-names = "ddc", "pta", "idle";
78 pinctrl-0 = <&state_i2cmux_ddc>;
79 pinctrl-1 = <&state_i2cmux_pta>;
80 pinctrl-2 = <&state_i2cmux_idle>;
82 i2c@0 {
84 #address-cells = <1>;
85 #size-cells = <0>;
93 i2c@1 {
95 #address-cells = <1>;
96 #size-cells = <0>;