Lines Matching +full:i2c +full:- +full:bus +full:- +full:name
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/i2c/i2c-demux-pinctrl.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Pinctrl-based I2C Bus Demultiplexer
10 - Wolfram Sang <wsa+renesas@sang-engineering.com>
13 This binding describes an I2C bus demultiplexer that uses pin multiplexing to
14 route the I2C signals, and represents the pin multiplexing configuration
15 using the pinctrl device tree bindings. This may be used to select one I2C
17 another I2C IP core on the SoC. The most simple example is to fall back to
21 +-------------------------------+
23 | | +-----+ +-----+
24 | +------------+ | | dev | | dev |
25 | |I2C IP Core1|--\ | +-----+ +-----+
26 | +------------+ \-------+ | | |
27 | |Pinctrl|--|------+--------+
28 | +------------+ +-------+ |
29 | |I2C IP Core2|--/ |
30 | +------------+ |
32 +-------------------------------+
35 - $ref: i2c-mux.yaml
36 - $ref: /schemas/i2c/i2c-controller.yaml#
40 const: i2c-demux-pinctrl
42 i2c-parent:
43 $ref: /schemas/types.yaml#/definitions/phandle-array
45 List of phandles of I2C masters available for selection. The first one
48 i2c-bus-name:
51 The name of this bus. Also needed as pinctrl-name for the I2C parents.
54 - compatible
55 - i2c-parent
56 - i2c-bus-name
61 - |
62 #include <dt-bindings/gpio/gpio.h>
63 #include <dt-bindings/interrupt-controller/irq.h>
65 gpioi2c2: i2c-9 {
66 #address-cells = <1>;
67 #size-cells = <0>;
68 compatible = "i2c-gpio";
69 scl-gpios = <&gpio5 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
70 sda-gpios = <&gpio5 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
71 i2c-gpio,delay-us = <5>;
73 // The I2C controller must have its status "disabled". The I2C bus
78 iic2: i2c@e6520000 {
80 pinctrl-0 = <&iic2_pins>;
81 // The pinctrl property for the parent I2C controller needs a pinctrl
82 // state with the same name as i2c-bus-name in the I2C bus demultiplexer
84 pinctrl-names = "i2c-hdmi";
86 clock-frequency = <100000>;
88 // The I2C controller must have its status "disabled". The I2C bus
93 i2c2: i2c@e6530000 {
95 pinctrl-0 = <&i2c2_pins>;
96 // The pinctrl property for the parent I2C controller needs a pinctrl
97 // state with the same name as i2c-bus-name in the I2C bus demultiplexer
99 pinctrl-names = "i2c-hdmi";
101 clock-frequency = <100000>;
103 // The I2C controller must have its status "disabled". The I2C bus
108 // Example for a bus to be demuxed. It contains various I2C clients for
109 // HDMI, so the bus is named "i2c-hdmi":
110 i2chdmi: i2c-mux3 {
111 compatible = "i2c-demux-pinctrl";
112 i2c-parent = <&iic2>, <&i2c2>, <&gpioi2c2>;
113 i2c-bus-name = "i2c-hdmi";
114 #address-cells = <1>;
115 #size-cells = <0>;
118 compatible = "asahi-kasei,ak4643";
119 #sound-dai-cells = <0>;
123 composite-in@20 {
129 bus-width = <8>;
130 remote-endpoint = <&vin1ep0>;
138 interrupt-parent = <&gpio1>;
141 clock-names = "cec";
143 avdd-supply = <&fixedregulator1v8>;
144 dvdd-supply = <&fixedregulator1v8>;
145 pvdd-supply = <&fixedregulator1v8>;
146 dvdd-3v-supply = <&fixedregulator3v3>;
147 bgvdd-supply = <&fixedregulator1v8>;
149 adi,input-depth = <8>;
150 adi,input-colorspace = "rgb";
151 adi,input-clock = "1x";
154 #address-cells = <1>;
155 #size-cells = <0>;
160 remote-endpoint = <&lvds0_out>;
167 remote-endpoint = <&hdmi_con_out>;