1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 2 %YAML 1.2 3 --- 4 $id: http://devicetree.org/schemas/i2c/i2c-dem 5 $schema: http://devicetree.org/meta-schemas/co 6 7 title: Pinctrl-based I2C Bus Demultiplexer 8 9 maintainers: 10 - Wolfram Sang <wsa+renesas@sang-engineering. 11 12 description: | 13 This binding describes an I2C bus demultiple 14 route the I2C signals, and represents the pi 15 using the pinctrl device tree bindings. Thi 16 IP core at runtime which may have a better f 17 another I2C IP core on the SoC. The most si 18 GPIO bitbanging if your current runtime conf 19 internal IP core. 20 21 +-------------------------------+ 22 | SoC | 23 | | +--- 24 | +------------+ | | de 25 | |I2C IP Core1|--\ | +--- 26 | +------------+ \-------+ | | 27 | |Pinctrl|--|------+ 28 | +------------+ +-------+ | 29 | |I2C IP Core2|--/ | 30 | +------------+ | 31 | | 32 +-------------------------------+ 33 34 allOf: 35 - $ref: /schemas/i2c/i2c-controller.yaml# 36 37 properties: 38 compatible: 39 const: i2c-demux-pinctrl 40 41 i2c-parent: 42 $ref: /schemas/types.yaml#/definitions/pha 43 items: 44 maxItems: 1 45 description: 46 List of phandles of I2C masters availabl 47 will be used as default. 48 49 i2c-bus-name: 50 $ref: /schemas/types.yaml#/definitions/str 51 description: 52 The name of this bus. Also needed as pi 53 54 required: 55 - compatible 56 - i2c-parent 57 - i2c-bus-name 58 59 unevaluatedProperties: false 60 61 examples: 62 - | 63 #include <dt-bindings/gpio/gpio.h> 64 #include <dt-bindings/interrupt-controller 65 66 gpioi2c2: i2c-9 { 67 #address-cells = <1>; 68 #size-cells = <0>; 69 compatible = "i2c-gpio"; 70 scl-gpios = <&gpio5 5 (GPIO_ACTIVE_HIG 71 sda-gpios = <&gpio5 6 (GPIO_ACTIVE_HIG 72 i2c-gpio,delay-us = <5>; 73 74 // The I2C controller must have its st 75 // demultiplexer will enable it at run 76 status = "disabled"; 77 }; 78 79 iic2: i2c@e6520000 { 80 reg = <0xe6520000 0x425>; 81 pinctrl-0 = <&iic2_pins>; 82 // The pinctrl property for the parent 83 // state with the same name as i2c-bus 84 // node, not "default"! 85 pinctrl-names = "i2c-hdmi"; 86 87 clock-frequency = <100000>; 88 89 // The I2C controller must have its st 90 // demultiplexer will enable it at run 91 status = "disabled"; 92 }; 93 94 i2c2: i2c@e6530000 { 95 reg = <0 0xe6530000 0 0x40>; 96 pinctrl-0 = <&i2c2_pins>; 97 // The pinctrl property for the parent 98 // state with the same name as i2c-bus 99 // node, not "default"! 100 pinctrl-names = "i2c-hdmi"; 101 102 clock-frequency = <100000>; 103 104 // The I2C controller must have its st 105 // demultiplexer will enable it at run 106 status = "disabled"; 107 }; 108 109 // Example for a bus to be demuxed. It co 110 // HDMI, so the bus is named "i2c-hdmi": 111 i2chdmi: i2c-mux3 { 112 compatible = "i2c-demux-pinctrl"; 113 i2c-parent = <&iic2>, <&i2c2>, <&gpioi 114 i2c-bus-name = "i2c-hdmi"; 115 #address-cells = <1>; 116 #size-cells = <0>; 117 118 ak4643: codec@12 { 119 compatible = "asahi-kasei,ak4643"; 120 #sound-dai-cells = <0>; 121 reg = <0x12>; 122 }; 123 124 composite-in@20 { 125 compatible = "adi,adv7180"; 126 reg = <0x20>; 127 128 port { 129 adv7180: endpoint { 130 bus-width = <8>; 131 remote-endpoint = <&vin1ep 132 }; 133 }; 134 }; 135 136 hdmi@39 { 137 compatible = "adi,adv7511w"; 138 reg = <0x39>; 139 interrupt-parent = <&gpio1>; 140 interrupts = <15 IRQ_TYPE_LEVEL_LO 141 clocks = <&cec_clock>; 142 clock-names = "cec"; 143 144 avdd-supply = <&fixedregulator1v8> 145 dvdd-supply = <&fixedregulator1v8> 146 pvdd-supply = <&fixedregulator1v8> 147 dvdd-3v-supply = <&fixedregulator3 148 bgvdd-supply = <&fixedregulator1v8 149 150 adi,input-depth = <8>; 151 adi,input-colorspace = "rgb"; 152 adi,input-clock = "1x"; 153 154 ports { 155 #address-cells = <1>; 156 #size-cells = <0>; 157 158 port@0 { 159 reg = <0>; 160 adv7511_in: endpoint { 161 remote-endpoint = <&lv 162 }; 163 }; 164 165 port@1 { 166 reg = <1>; 167 adv7511_out: endpoint { 168 remote-endpoint = <&hd 169 }; 170 }; 171 }; 172 }; 173 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.