aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRahul Sharma <Rahul.Sharma@samsung.com>2014-04-20 06:21:17 -0400
committerInki Dae <daeinki@gmail.com>2014-06-01 13:07:08 -0400
commita18a2ddabdcc9e2762b270cf4fc4b31cb1a8fce2 (patch)
tree113e46d0d4fa7b3cd51f4f16144f8c9bd394c609
parentd5e9ca4ca9c78fe1d1812356b31b4a65a9ed8290 (diff)
drm/exynos: enable support for exynos5420 hdmi device
Enable support for hdmi for exynos5420 hdmiphy. Add compatible string in the of_match table. Also added hdmiphy configuration values for exynos5420. Signed-off-by: Rahul Sharma <Rahul.Sharma@samsung.com> Signed-off-by: Shirish S <s.shirish@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r--Documentation/devicetree/bindings/video/exynos_hdmi.txt1
-rw-r--r--drivers/gpu/drm/exynos/exynos_hdmi.c165
2 files changed, 166 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/video/exynos_hdmi.txt b/Documentation/devicetree/bindings/video/exynos_hdmi.txt
index f9187a259259..75ada041389e 100644
--- a/Documentation/devicetree/bindings/video/exynos_hdmi.txt
+++ b/Documentation/devicetree/bindings/video/exynos_hdmi.txt
@@ -5,6 +5,7 @@ Required properties:
5 1) "samsung,exynos5-hdmi" <DEPRECATED> 5 1) "samsung,exynos5-hdmi" <DEPRECATED>
6 2) "samsung,exynos4210-hdmi" 6 2) "samsung,exynos4210-hdmi"
7 3) "samsung,exynos4212-hdmi" 7 3) "samsung,exynos4212-hdmi"
8 4) "samsung,exynos5420-hdmi"
8- reg: physical base address of the hdmi and length of memory mapped 9- reg: physical base address of the hdmi and length of memory mapped
9 region. 10 region.
10- interrupts: interrupt number to the cpu. 11- interrupts: interrupt number to the cpu.
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index a04fb291b6c2..6acc1e358d56 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -421,6 +421,168 @@ static const struct hdmiphy_config hdmiphy_v14_configs[] = {
421 }, 421 },
422}; 422};
423 423
424static const struct hdmiphy_config hdmiphy_5420_configs[] = {
425 {
426 .pixel_clock = 25200000,
427 .conf = {
428 0x01, 0x52, 0x3F, 0x55, 0x40, 0x01, 0x00, 0xC8,
429 0x82, 0xC8, 0xBD, 0xD8, 0x45, 0xA0, 0xAC, 0x80,
430 0x06, 0x80, 0x01, 0x84, 0x05, 0x02, 0x24, 0x66,
431 0x54, 0xF4, 0x24, 0x00, 0x00, 0x00, 0x01, 0x80,
432 },
433 },
434 {
435 .pixel_clock = 27000000,
436 .conf = {
437 0x01, 0xD1, 0x22, 0x51, 0x40, 0x08, 0xFC, 0xE0,
438 0x98, 0xE8, 0xCB, 0xD8, 0x45, 0xA0, 0xAC, 0x80,
439 0x06, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
440 0x54, 0xE4, 0x24, 0x00, 0x00, 0x00, 0x01, 0x80,
441 },
442 },
443 {
444 .pixel_clock = 27027000,
445 .conf = {
446 0x01, 0xD1, 0x2D, 0x72, 0x40, 0x64, 0x12, 0xC8,
447 0x43, 0xE8, 0x0E, 0xD9, 0x45, 0xA0, 0xAC, 0x80,
448 0x26, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
449 0x54, 0xE3, 0x24, 0x00, 0x00, 0x00, 0x01, 0x80,
450 },
451 },
452 {
453 .pixel_clock = 36000000,
454 .conf = {
455 0x01, 0x51, 0x2D, 0x55, 0x40, 0x40, 0x00, 0xC8,
456 0x02, 0xC8, 0x0E, 0xD9, 0x45, 0xA0, 0xAC, 0x80,
457 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
458 0x54, 0xAB, 0x24, 0x00, 0x00, 0x00, 0x01, 0x80,
459 },
460 },
461 {
462 .pixel_clock = 40000000,
463 .conf = {
464 0x01, 0xD1, 0x21, 0x31, 0x40, 0x3C, 0x28, 0xC8,
465 0x87, 0xE8, 0xC8, 0xD8, 0x45, 0xA0, 0xAC, 0x80,
466 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
467 0x54, 0x9A, 0x24, 0x00, 0x00, 0x00, 0x01, 0x80,
468 },
469 },
470 {
471 .pixel_clock = 65000000,
472 .conf = {
473 0x01, 0xD1, 0x36, 0x34, 0x40, 0x0C, 0x04, 0xC8,
474 0x82, 0xE8, 0x45, 0xD9, 0x45, 0xA0, 0xAC, 0x80,
475 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
476 0x54, 0xBD, 0x24, 0x01, 0x00, 0x00, 0x01, 0x80,
477 },
478 },
479 {
480 .pixel_clock = 71000000,
481 .conf = {
482 0x01, 0xD1, 0x3B, 0x35, 0x40, 0x0C, 0x04, 0xC8,
483 0x85, 0xE8, 0x63, 0xD9, 0x45, 0xA0, 0xAC, 0x80,
484 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
485 0x54, 0x57, 0x24, 0x00, 0x00, 0x00, 0x01, 0x80,
486 },
487 },
488 {
489 .pixel_clock = 73250000,
490 .conf = {
491 0x01, 0xD1, 0x1F, 0x10, 0x40, 0x78, 0x8D, 0xC8,
492 0x81, 0xE8, 0xB7, 0xD8, 0x45, 0xA0, 0xAC, 0x80,
493 0x56, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
494 0x54, 0xA8, 0x24, 0x01, 0x00, 0x00, 0x01, 0x80,
495 },
496 },
497 {
498 .pixel_clock = 74176000,
499 .conf = {
500 0x01, 0xD1, 0x1F, 0x10, 0x40, 0x5B, 0xEF, 0xC8,
501 0x81, 0xE8, 0xB9, 0xD8, 0x45, 0xA0, 0xAC, 0x80,
502 0x56, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
503 0x54, 0xA6, 0x24, 0x01, 0x00, 0x00, 0x01, 0x80,
504 },
505 },
506 {
507 .pixel_clock = 74250000,
508 .conf = {
509 0x01, 0xD1, 0x1F, 0x10, 0x40, 0x40, 0xF8, 0x08,
510 0x81, 0xE8, 0xBA, 0xD8, 0x45, 0xA0, 0xAC, 0x80,
511 0x26, 0x80, 0x09, 0x84, 0x05, 0x22, 0x24, 0x66,
512 0x54, 0xA5, 0x24, 0x01, 0x00, 0x00, 0x01, 0x80,
513 },
514 },
515 {
516 .pixel_clock = 83500000,
517 .conf = {
518 0x01, 0xD1, 0x23, 0x11, 0x40, 0x0C, 0xFB, 0xC8,
519 0x85, 0xE8, 0xD1, 0xD8, 0x45, 0xA0, 0xAC, 0x80,
520 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
521 0x54, 0x4A, 0x24, 0x00, 0x00, 0x00, 0x01, 0x80,
522 },
523 },
524 {
525 .pixel_clock = 88750000,
526 .conf = {
527 0x01, 0xD1, 0x25, 0x11, 0x40, 0x18, 0xFF, 0xC8,
528 0x83, 0xE8, 0xDE, 0xD8, 0x45, 0xA0, 0xAC, 0x80,
529 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
530 0x54, 0x45, 0x24, 0x00, 0x00, 0x00, 0x01, 0x80,
531 },
532 },
533 {
534 .pixel_clock = 106500000,
535 .conf = {
536 0x01, 0xD1, 0x2C, 0x12, 0x40, 0x0C, 0x09, 0xC8,
537 0x84, 0xE8, 0x0A, 0xD9, 0x45, 0xA0, 0xAC, 0x80,
538 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
539 0x54, 0x73, 0x24, 0x01, 0x00, 0x00, 0x01, 0x80,
540 },
541 },
542 {
543 .pixel_clock = 108000000,
544 .conf = {
545 0x01, 0x51, 0x2D, 0x15, 0x40, 0x01, 0x00, 0xC8,
546 0x82, 0xC8, 0x0E, 0xD9, 0x45, 0xA0, 0xAC, 0x80,
547 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
548 0x54, 0xC7, 0x25, 0x03, 0x00, 0x00, 0x01, 0x80,
549 },
550 },
551 {
552 .pixel_clock = 115500000,
553 .conf = {
554 0x01, 0xD1, 0x30, 0x14, 0x40, 0x0C, 0x03, 0xC8,
555 0x88, 0xE8, 0x21, 0xD9, 0x45, 0xA0, 0xAC, 0x80,
556 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
557 0x54, 0x6A, 0x24, 0x01, 0x00, 0x00, 0x01, 0x80,
558 },
559 },
560 {
561 .pixel_clock = 146250000,
562 .conf = {
563 0x01, 0xD1, 0x3D, 0x15, 0x40, 0x18, 0xFD, 0xC8,
564 0x83, 0xE8, 0x6E, 0xD9, 0x45, 0xA0, 0xAC, 0x80,
565 0x08, 0x80, 0x09, 0x84, 0x05, 0x02, 0x24, 0x66,
566 0x54, 0x54, 0x24, 0x01, 0x00, 0x00, 0x01, 0x80,
567 },
568 },
569 {
570 .pixel_clock = 148500000,
571 .conf = {
572 0x01, 0xD1, 0x1F, 0x00, 0x40, 0x40, 0xF8, 0x08,
573 0x81, 0xE8, 0xBA, 0xD8, 0x45, 0xA0, 0xAC, 0x80,
574 0x26, 0x80, 0x09, 0x84, 0x05, 0x22, 0x24, 0x66,
575 0x54, 0x4B, 0x25, 0x03, 0x00, 0x80, 0x01, 0x80,
576 },
577 },
578};
579
580struct hdmi_driver_data exynos5420_hdmi_driver_data = {
581 .type = HDMI_TYPE14,
582 .phy_confs = hdmiphy_5420_configs,
583 .phy_conf_count = ARRAY_SIZE(hdmiphy_5420_configs),
584 .is_apb_phy = 1,
585};
424 586
425struct hdmi_driver_data exynos4212_hdmi_driver_data = { 587struct hdmi_driver_data exynos4212_hdmi_driver_data = {
426 .type = HDMI_TYPE14, 588 .type = HDMI_TYPE14,
@@ -2045,6 +2207,9 @@ static struct of_device_id hdmi_match_types[] = {
2045 .compatible = "samsung,exynos4212-hdmi", 2207 .compatible = "samsung,exynos4212-hdmi",
2046 .data = &exynos4212_hdmi_driver_data, 2208 .data = &exynos4212_hdmi_driver_data,
2047 }, { 2209 }, {
2210 .compatible = "samsung,exynos5420-hdmi",
2211 .data = &exynos5420_hdmi_driver_data,
2212 }, {
2048 /* end node */ 2213 /* end node */
2049 } 2214 }
2050}; 2215};