aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWolfram Sang <wsa+renesas@sang-engineering.com>2018-02-06 17:29:57 -0500
committerSimon Horman <horms+renesas@verge.net.au>2018-02-12 07:50:59 -0500
commit786ef2eeb04cca41d6382556f1409f37f64c4a0c (patch)
treeae3aa56c6d47bc1cb2e7d8305f272b955dc957d7
parentd4c1ce2813942407cead7adb86d1dd9dfc46f74c (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.dts218
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 {