diff options
author | Wolfram Sang <wsa+renesas@sang-engineering.com> | 2018-02-06 17:29:56 -0500 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2018-02-12 07:50:59 -0500 |
commit | d4c1ce2813942407cead7adb86d1dd9dfc46f74c (patch) | |
tree | b38a4e03938455d720ea2a5f6f175b1d782b5915 | |
parent | 61866d7fdc7007acfca2107f7d9fcb05ed0c6203 (diff) |
ARM: dts: silk: use demuxer for I2C1
Create a separate bus for HDMI related I2C1 and provide fallback to GPIO.
Based on work for the r8a7790/lager by Wolfram Sang.
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
[wsa: rebased, fixed aliases, switched to named GPIOs]
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
-rw-r--r-- | arch/arm/boot/dts/r8a7794-silk.dts | 128 |
1 files changed, 75 insertions, 53 deletions
diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts index edfad0e5ac53..f1afe2dda13a 100644 --- a/arch/arm/boot/dts/r8a7794-silk.dts +++ b/arch/arm/boot/dts/r8a7794-silk.dts | |||
@@ -31,6 +31,8 @@ | |||
31 | 31 | ||
32 | aliases { | 32 | aliases { |
33 | serial0 = &scif2; | 33 | serial0 = &scif2; |
34 | i2c9 = &gpioi2c1; | ||
35 | i2c10 = &i2chdmi; | ||
34 | }; | 36 | }; |
35 | 37 | ||
36 | chosen { | 38 | chosen { |
@@ -153,6 +155,78 @@ | |||
153 | clocks = <&x9_clk>; | 155 | clocks = <&x9_clk>; |
154 | }; | 156 | }; |
155 | }; | 157 | }; |
158 | |||
159 | gpioi2c1: i2c-9 { | ||
160 | #address-cells = <1>; | ||
161 | #size-cells = <0>; | ||
162 | compatible = "i2c-gpio"; | ||
163 | status = "disabled"; | ||
164 | scl-gpios = <&gpio4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | ||
165 | sda-gpios = <&gpio4 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | ||
166 | i2c-gpio,delay-us = <5>; | ||
167 | }; | ||
168 | |||
169 | /* | ||
170 | * A fallback to GPIO is provided for I2C1. | ||
171 | */ | ||
172 | i2chdmi: i2c-10 { | ||
173 | compatible = "i2c-demux-pinctrl"; | ||
174 | i2c-parent = <&i2c1>, <&gpioi2c1>; | ||
175 | i2c-bus-name = "i2c-hdmi"; | ||
176 | #address-cells = <1>; | ||
177 | #size-cells = <0>; | ||
178 | |||
179 | ak4643: codec@12 { | ||
180 | compatible = "asahi-kasei,ak4643"; | ||
181 | #sound-dai-cells = <0>; | ||
182 | reg = <0x12>; | ||
183 | }; | ||
184 | |||
185 | composite-in@20 { | ||
186 | compatible = "adi,adv7180"; | ||
187 | reg = <0x20>; | ||
188 | remote = <&vin0>; | ||
189 | |||
190 | port { | ||
191 | adv7180: endpoint { | ||
192 | bus-width = <8>; | ||
193 | remote-endpoint = <&vin0ep>; | ||
194 | }; | ||
195 | }; | ||
196 | }; | ||
197 | |||
198 | hdmi@39 { | ||
199 | compatible = "adi,adv7511w"; | ||
200 | reg = <0x39>; | ||
201 | interrupt-parent = <&gpio5>; | ||
202 | interrupts = <23 IRQ_TYPE_LEVEL_LOW>; | ||
203 | |||
204 | adi,input-depth = <8>; | ||
205 | adi,input-colorspace = "rgb"; | ||
206 | adi,input-clock = "1x"; | ||
207 | adi,input-style = <1>; | ||
208 | adi,input-justification = "evenly"; | ||
209 | |||
210 | ports { | ||
211 | #address-cells = <1>; | ||
212 | #size-cells = <0>; | ||
213 | |||
214 | port@0 { | ||
215 | reg = <0>; | ||
216 | adv7511_in: endpoint { | ||
217 | remote-endpoint = <&du_out_rgb0>; | ||
218 | }; | ||
219 | }; | ||
220 | |||
221 | port@1 { | ||
222 | reg = <1>; | ||
223 | adv7511_out: endpoint { | ||
224 | remote-endpoint = <&hdmi_con>; | ||
225 | }; | ||
226 | }; | ||
227 | }; | ||
228 | }; | ||
229 | }; | ||
156 | }; | 230 | }; |
157 | 231 | ||
158 | &extal_clk { | 232 | &extal_clk { |
@@ -268,61 +342,9 @@ | |||
268 | 342 | ||
269 | &i2c1 { | 343 | &i2c1 { |
270 | pinctrl-0 = <&i2c1_pins>; | 344 | pinctrl-0 = <&i2c1_pins>; |
271 | pinctrl-names = "default"; | 345 | pinctrl-names = "i2c-hdmi"; |
272 | 346 | ||
273 | status = "okay"; | ||
274 | clock-frequency = <400000>; | 347 | clock-frequency = <400000>; |
275 | |||
276 | ak4643: codec@12 { | ||
277 | compatible = "asahi-kasei,ak4643"; | ||
278 | #sound-dai-cells = <0>; | ||
279 | reg = <0x12>; | ||
280 | }; | ||
281 | |||
282 | composite-in@20 { | ||
283 | compatible = "adi,adv7180"; | ||
284 | reg = <0x20>; | ||
285 | remote = <&vin0>; | ||
286 | |||
287 | port { | ||
288 | adv7180: endpoint { | ||
289 | bus-width = <8>; | ||
290 | remote-endpoint = <&vin0ep>; | ||
291 | }; | ||
292 | }; | ||
293 | }; | ||
294 | |||
295 | hdmi@39 { | ||
296 | compatible = "adi,adv7511w"; | ||
297 | reg = <0x39>; | ||
298 | interrupt-parent = <&gpio5>; | ||
299 | interrupts = <23 IRQ_TYPE_LEVEL_LOW>; | ||
300 | |||
301 | adi,input-depth = <8>; | ||
302 | adi,input-colorspace = "rgb"; | ||
303 | adi,input-clock = "1x"; | ||
304 | adi,input-style = <1>; | ||
305 | adi,input-justification = "evenly"; | ||
306 | |||
307 | ports { | ||
308 | #address-cells = <1>; | ||
309 | #size-cells = <0>; | ||
310 | |||
311 | port@0 { | ||
312 | reg = <0>; | ||
313 | adv7511_in: endpoint { | ||
314 | remote-endpoint = <&du_out_rgb0>; | ||
315 | }; | ||
316 | }; | ||
317 | |||
318 | port@1 { | ||
319 | reg = <1>; | ||
320 | adv7511_out: endpoint { | ||
321 | remote-endpoint = <&hdmi_con>; | ||
322 | }; | ||
323 | }; | ||
324 | }; | ||
325 | }; | ||
326 | }; | 348 | }; |
327 | 349 | ||
328 | &mmcif0 { | 350 | &mmcif0 { |