Lines Matching +full:i2c +full:- +full:hdmi
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: /schemas/i2c/i2c-controller.yaml#
39 const: i2c-demux-pinctrl
41 i2c-parent:
42 $ref: /schemas/types.yaml#/definitions/phandle-array
46 List of phandles of I2C masters available for selection. The first one
49 i2c-bus-name:
52 The name of this bus. Also needed as pinctrl-name for the I2C parents.
55 - compatible
56 - i2c-parent
57 - i2c-bus-name
62 - |
63 #include <dt-bindings/gpio/gpio.h>
64 #include <dt-bindings/interrupt-controller/irq.h>
66 gpioi2c2: i2c-9 {
67 #address-cells = <1>;
68 #size-cells = <0>;
69 compatible = "i2c-gpio";
70 scl-gpios = <&gpio5 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
71 sda-gpios = <&gpio5 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
72 i2c-gpio,delay-us = <5>;
74 // The I2C controller must have its status "disabled". The I2C bus
79 iic2: i2c@e6520000 {
81 pinctrl-0 = <&iic2_pins>;
82 // The pinctrl property for the parent I2C controller needs a pinctrl
83 // state with the same name as i2c-bus-name in the I2C bus demultiplexer
85 pinctrl-names = "i2c-hdmi";
87 clock-frequency = <100000>;
89 // The I2C controller must have its status "disabled". The I2C bus
94 i2c2: i2c@e6530000 {
96 pinctrl-0 = <&i2c2_pins>;
97 // The pinctrl property for the parent I2C controller needs a pinctrl
98 // state with the same name as i2c-bus-name in the I2C bus demultiplexer
100 pinctrl-names = "i2c-hdmi";
102 clock-frequency = <100000>;
104 // The I2C controller must have its status "disabled". The I2C bus
109 // Example for a bus to be demuxed. It contains various I2C clients for
110 // HDMI, so the bus is named "i2c-hdmi":
111 i2chdmi: i2c-mux3 {
112 compatible = "i2c-demux-pinctrl";
113 i2c-parent = <&iic2>, <&i2c2>, <&gpioi2c2>;
114 i2c-bus-name = "i2c-hdmi";
115 #address-cells = <1>;
116 #size-cells = <0>;
119 compatible = "asahi-kasei,ak4643";
120 #sound-dai-cells = <0>;
124 composite-in@20 {
130 bus-width = <8>;
131 remote-endpoint = <&vin1ep0>;
136 hdmi@39 {
139 interrupt-parent = <&gpio1>;
142 clock-names = "cec";
144 avdd-supply = <&fixedregulator1v8>;
145 dvdd-supply = <&fixedregulator1v8>;
146 pvdd-supply = <&fixedregulator1v8>;
147 dvdd-3v-supply = <&fixedregulator3v3>;
148 bgvdd-supply = <&fixedregulator1v8>;
150 adi,input-depth = <8>;
151 adi,input-colorspace = "rgb";
152 adi,input-clock = "1x";
155 #address-cells = <1>;
156 #size-cells = <0>;
161 remote-endpoint = <&lvds0_out>;
168 remote-endpoint = <&hdmi_con_out>;