diff options
author | Wolfram Sang <wsa+renesas@sang-engineering.com> | 2018-02-06 17:29:57 -0500 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2018-02-12 07:50:59 -0500 |
commit | 786ef2eeb04cca41d6382556f1409f37f64c4a0c (patch) | |
tree | ae3aa56c6d47bc1cb2e7d8305f272b955dc957d7 | |
parent | d4c1ce2813942407cead7adb86d1dd9dfc46f74c (diff) |
ARM: dts: gose: use demuxer for I2C2
Create a separate bus for HDMI related I2C2 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, corrected board name in subject, fixed aliases, switched
to named GPIOs]
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
-rw-r--r-- | arch/arm/boot/dts/r8a7793-gose.dts | 218 |
1 files changed, 121 insertions, 97 deletions
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts index 51b3ffac8efa..2b330ef71f4c 100644 --- a/arch/arm/boot/dts/r8a7793-gose.dts +++ b/arch/arm/boot/dts/r8a7793-gose.dts | |||
@@ -48,6 +48,8 @@ | |||
48 | aliases { | 48 | aliases { |
49 | serial0 = &scif0; | 49 | serial0 = &scif0; |
50 | serial1 = &scif1; | 50 | serial1 = &scif1; |
51 | i2c9 = &gpioi2c2; | ||
52 | i2c11 = &i2chdmi; | ||
51 | }; | 53 | }; |
52 | 54 | ||
53 | chosen { | 55 | chosen { |
@@ -296,6 +298,124 @@ | |||
296 | #clock-cells = <0>; | 298 | #clock-cells = <0>; |
297 | clock-frequency = <148500000>; | 299 | clock-frequency = <148500000>; |
298 | }; | 300 | }; |
301 | |||
302 | gpioi2c2: i2c-9 { | ||
303 | #address-cells = <1>; | ||
304 | #size-cells = <0>; | ||
305 | compatible = "i2c-gpio"; | ||
306 | status = "disabled"; | ||
307 | scl-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | ||
308 | sda-gpios = <&gpio2 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | ||
309 | i2c-gpio,delay-us = <5>; | ||
310 | }; | ||
311 | |||
312 | /* | ||
313 | * A fallback to GPIO is provided for I2C2. | ||
314 | */ | ||
315 | i2chdmi: i2c-11 { | ||
316 | compatible = "i2c-demux-pinctrl"; | ||
317 | i2c-parent = <&i2c2>, <&gpioi2c2>; | ||
318 | i2c-bus-name = "i2c-hdmi"; | ||
319 | #address-cells = <1>; | ||
320 | #size-cells = <0>; | ||
321 | |||
322 | ak4643: codec@12 { | ||
323 | compatible = "asahi-kasei,ak4643"; | ||
324 | #sound-dai-cells = <0>; | ||
325 | reg = <0x12>; | ||
326 | }; | ||
327 | |||
328 | composite-in@20 { | ||
329 | compatible = "adi,adv7180cp"; | ||
330 | reg = <0x20>; | ||
331 | remote = <&vin1>; | ||
332 | |||
333 | port { | ||
334 | #address-cells = <1>; | ||
335 | #size-cells = <0>; | ||
336 | |||
337 | port@0 { | ||
338 | reg = <0>; | ||
339 | adv7180_in: endpoint { | ||
340 | remote-endpoint = <&composite_con_in>; | ||
341 | }; | ||
342 | }; | ||
343 | |||
344 | port@3 { | ||
345 | reg = <3>; | ||
346 | adv7180_out: endpoint { | ||
347 | bus-width = <8>; | ||
348 | remote-endpoint = <&vin1ep>; | ||
349 | }; | ||
350 | }; | ||
351 | }; | ||
352 | }; | ||
353 | |||
354 | hdmi@39 { | ||
355 | compatible = "adi,adv7511w"; | ||
356 | reg = <0x39>; | ||
357 | interrupt-parent = <&gpio3>; | ||
358 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | ||
359 | |||
360 | adi,input-depth = <8>; | ||
361 | adi,input-colorspace = "rgb"; | ||
362 | adi,input-clock = "1x"; | ||
363 | adi,input-style = <1>; | ||
364 | adi,input-justification = "evenly"; | ||
365 | |||
366 | ports { | ||
367 | #address-cells = <1>; | ||
368 | #size-cells = <0>; | ||
369 | |||
370 | port@0 { | ||
371 | reg = <0>; | ||
372 | adv7511_in: endpoint { | ||
373 | remote-endpoint = <&du_out_rgb>; | ||
374 | }; | ||
375 | }; | ||
376 | |||
377 | port@1 { | ||
378 | reg = <1>; | ||
379 | adv7511_out: endpoint { | ||
380 | remote-endpoint = <&hdmi_con_out>; | ||
381 | }; | ||
382 | }; | ||
383 | }; | ||
384 | }; | ||
385 | |||
386 | hdmi-in@4c { | ||
387 | compatible = "adi,adv7612"; | ||
388 | reg = <0x4c>; | ||
389 | interrupt-parent = <&gpio4>; | ||
390 | interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | ||
391 | default-input = <0>; | ||
392 | |||
393 | port { | ||
394 | #address-cells = <1>; | ||
395 | #size-cells = <0>; | ||
396 | |||
397 | port@0 { | ||
398 | reg = <0>; | ||
399 | adv7612_in: endpoint { | ||
400 | remote-endpoint = <&hdmi_con_in>; | ||
401 | }; | ||
402 | }; | ||
403 | |||
404 | port@2 { | ||
405 | reg = <2>; | ||
406 | adv7612_out: endpoint { | ||
407 | remote-endpoint = <&vin0ep2>; | ||
408 | }; | ||
409 | }; | ||
410 | }; | ||
411 | }; | ||
412 | |||
413 | eeprom@50 { | ||
414 | compatible = "renesas,r1ex24002", "atmel,24c02"; | ||
415 | reg = <0x50>; | ||
416 | pagesize = <16>; | ||
417 | }; | ||
418 | }; | ||
299 | }; | 419 | }; |
300 | 420 | ||
301 | &du { | 421 | &du { |
@@ -544,107 +664,11 @@ | |||
544 | 664 | ||
545 | &i2c2 { | 665 | &i2c2 { |
546 | pinctrl-0 = <&i2c2_pins>; | 666 | pinctrl-0 = <&i2c2_pins>; |
547 | pinctrl-names = "default"; | 667 | pinctrl-names = "i2c-hdmi"; |
548 | 668 | ||
549 | status = "okay"; | 669 | status = "okay"; |
550 | clock-frequency = <100000>; | 670 | clock-frequency = <100000>; |
551 | 671 | ||
552 | ak4643: codec@12 { | ||
553 | compatible = "asahi-kasei,ak4643"; | ||
554 | #sound-dai-cells = <0>; | ||
555 | reg = <0x12>; | ||
556 | }; | ||
557 | |||
558 | composite-in@20 { | ||
559 | compatible = "adi,adv7180cp"; | ||
560 | reg = <0x20>; | ||
561 | remote = <&vin1>; | ||
562 | |||
563 | port { | ||
564 | #address-cells = <1>; | ||
565 | #size-cells = <0>; | ||
566 | |||
567 | port@0 { | ||
568 | reg = <0>; | ||
569 | adv7180_in: endpoint { | ||
570 | remote-endpoint = <&composite_con_in>; | ||
571 | }; | ||
572 | }; | ||
573 | |||
574 | port@3 { | ||
575 | reg = <3>; | ||
576 | adv7180_out: endpoint { | ||
577 | bus-width = <8>; | ||
578 | remote-endpoint = <&vin1ep>; | ||
579 | }; | ||
580 | }; | ||
581 | }; | ||
582 | }; | ||
583 | |||
584 | hdmi@39 { | ||
585 | compatible = "adi,adv7511w"; | ||
586 | reg = <0x39>; | ||
587 | interrupt-parent = <&gpio3>; | ||
588 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | ||
589 | |||
590 | adi,input-depth = <8>; | ||
591 | adi,input-colorspace = "rgb"; | ||
592 | adi,input-clock = "1x"; | ||
593 | adi,input-style = <1>; | ||
594 | adi,input-justification = "evenly"; | ||
595 | |||
596 | ports { | ||
597 | #address-cells = <1>; | ||
598 | #size-cells = <0>; | ||
599 | |||
600 | port@0 { | ||
601 | reg = <0>; | ||
602 | adv7511_in: endpoint { | ||
603 | remote-endpoint = <&du_out_rgb>; | ||
604 | }; | ||
605 | }; | ||
606 | |||
607 | port@1 { | ||
608 | reg = <1>; | ||
609 | adv7511_out: endpoint { | ||
610 | remote-endpoint = <&hdmi_con_out>; | ||
611 | }; | ||
612 | }; | ||
613 | }; | ||
614 | }; | ||
615 | |||
616 | hdmi-in@4c { | ||
617 | compatible = "adi,adv7612"; | ||
618 | reg = <0x4c>; | ||
619 | interrupt-parent = <&gpio4>; | ||
620 | interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | ||
621 | default-input = <0>; | ||
622 | |||
623 | port { | ||
624 | #address-cells = <1>; | ||
625 | #size-cells = <0>; | ||
626 | |||
627 | port@0 { | ||
628 | reg = <0>; | ||
629 | adv7612_in: endpoint { | ||
630 | remote-endpoint = <&hdmi_con_in>; | ||
631 | }; | ||
632 | }; | ||
633 | |||
634 | port@2 { | ||
635 | reg = <2>; | ||
636 | adv7612_out: endpoint { | ||
637 | remote-endpoint = <&vin0ep2>; | ||
638 | }; | ||
639 | }; | ||
640 | }; | ||
641 | }; | ||
642 | |||
643 | eeprom@50 { | ||
644 | compatible = "renesas,r1ex24002", "atmel,24c02"; | ||
645 | reg = <0x50>; | ||
646 | pagesize = <16>; | ||
647 | }; | ||
648 | }; | 672 | }; |
649 | 673 | ||
650 | &i2c6 { | 674 | &i2c6 { |