diff options
Diffstat (limited to 'arch/arm/mach-exynos/mach-origen.c')
-rw-r--r-- | arch/arm/mach-exynos/mach-origen.c | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index 878d4c99142d..26124a38bcbd 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <mach/ohci.h> | 45 | #include <mach/ohci.h> |
46 | #include <mach/map.h> | 46 | #include <mach/map.h> |
47 | 47 | ||
48 | #include <drm/exynos_drm.h> | ||
48 | #include "common.h" | 49 | #include "common.h" |
49 | 50 | ||
50 | /* Following are default values for UCON, ULCON and UFCON UART registers */ | 51 | /* Following are default values for UCON, ULCON and UFCON UART registers */ |
@@ -472,12 +473,10 @@ static struct i2c_board_info i2c0_devs[] __initdata = { | |||
472 | 473 | ||
473 | static struct s3c_sdhci_platdata origen_hsmmc0_pdata __initdata = { | 474 | static struct s3c_sdhci_platdata origen_hsmmc0_pdata __initdata = { |
474 | .cd_type = S3C_SDHCI_CD_INTERNAL, | 475 | .cd_type = S3C_SDHCI_CD_INTERNAL, |
475 | .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, | ||
476 | }; | 476 | }; |
477 | 477 | ||
478 | static struct s3c_sdhci_platdata origen_hsmmc2_pdata __initdata = { | 478 | static struct s3c_sdhci_platdata origen_hsmmc2_pdata __initdata = { |
479 | .cd_type = S3C_SDHCI_CD_INTERNAL, | 479 | .cd_type = S3C_SDHCI_CD_INTERNAL, |
480 | .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, | ||
481 | }; | 480 | }; |
482 | 481 | ||
483 | /* USB EHCI */ | 482 | /* USB EHCI */ |
@@ -583,6 +582,27 @@ static struct platform_device origen_lcd_hv070wsa = { | |||
583 | .dev.platform_data = &origen_lcd_hv070wsa_data, | 582 | .dev.platform_data = &origen_lcd_hv070wsa_data, |
584 | }; | 583 | }; |
585 | 584 | ||
585 | #ifdef CONFIG_DRM_EXYNOS | ||
586 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | ||
587 | .panel = { | ||
588 | .timing = { | ||
589 | .left_margin = 64, | ||
590 | .right_margin = 16, | ||
591 | .upper_margin = 64, | ||
592 | .lower_margin = 16, | ||
593 | .hsync_len = 48, | ||
594 | .vsync_len = 3, | ||
595 | .xres = 1024, | ||
596 | .yres = 600, | ||
597 | }, | ||
598 | }, | ||
599 | .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, | ||
600 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC | | ||
601 | VIDCON1_INV_VCLK, | ||
602 | .default_win = 0, | ||
603 | .bpp = 32, | ||
604 | }; | ||
605 | #else | ||
586 | static struct s3c_fb_pd_win origen_fb_win0 = { | 606 | static struct s3c_fb_pd_win origen_fb_win0 = { |
587 | .win_mode = { | 607 | .win_mode = { |
588 | .left_margin = 64, | 608 | .left_margin = 64, |
@@ -596,6 +616,8 @@ static struct s3c_fb_pd_win origen_fb_win0 = { | |||
596 | }, | 616 | }, |
597 | .max_bpp = 32, | 617 | .max_bpp = 32, |
598 | .default_bpp = 24, | 618 | .default_bpp = 24, |
619 | .virtual_x = 1024, | ||
620 | .virtual_y = 2 * 600, | ||
599 | }; | 621 | }; |
600 | 622 | ||
601 | static struct s3c_fb_platdata origen_lcd_pdata __initdata = { | 623 | static struct s3c_fb_platdata origen_lcd_pdata __initdata = { |
@@ -605,9 +627,10 @@ static struct s3c_fb_platdata origen_lcd_pdata __initdata = { | |||
605 | VIDCON1_INV_VCLK, | 627 | VIDCON1_INV_VCLK, |
606 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, | 628 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, |
607 | }; | 629 | }; |
630 | #endif | ||
608 | 631 | ||
609 | /* Bluetooth rfkill gpio platform data */ | 632 | /* Bluetooth rfkill gpio platform data */ |
610 | struct rfkill_gpio_platform_data origen_bt_pdata = { | 633 | static struct rfkill_gpio_platform_data origen_bt_pdata = { |
611 | .reset_gpio = EXYNOS4_GPX2(2), | 634 | .reset_gpio = EXYNOS4_GPX2(2), |
612 | .shutdown_gpio = -1, | 635 | .shutdown_gpio = -1, |
613 | .type = RFKILL_TYPE_BLUETOOTH, | 636 | .type = RFKILL_TYPE_BLUETOOTH, |
@@ -644,6 +667,9 @@ static struct platform_device *origen_devices[] __initdata = { | |||
644 | &s5p_device_mfc_l, | 667 | &s5p_device_mfc_l, |
645 | &s5p_device_mfc_r, | 668 | &s5p_device_mfc_r, |
646 | &s5p_device_mixer, | 669 | &s5p_device_mixer, |
670 | #ifdef CONFIG_DRM_EXYNOS | ||
671 | &exynos_device_drm, | ||
672 | #endif | ||
647 | &exynos4_device_ohci, | 673 | &exynos4_device_ohci, |
648 | &origen_device_gpiokeys, | 674 | &origen_device_gpiokeys, |
649 | &origen_lcd_hv070wsa, | 675 | &origen_lcd_hv070wsa, |
@@ -719,7 +745,12 @@ static void __init origen_machine_init(void) | |||
719 | s5p_tv_setup(); | 745 | s5p_tv_setup(); |
720 | s5p_i2c_hdmiphy_set_platdata(NULL); | 746 | s5p_i2c_hdmiphy_set_platdata(NULL); |
721 | 747 | ||
748 | #ifdef CONFIG_DRM_EXYNOS | ||
749 | s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; | ||
750 | exynos4_fimd0_gpio_setup_24bpp(); | ||
751 | #else | ||
722 | s5p_fimd0_set_platdata(&origen_lcd_pdata); | 752 | s5p_fimd0_set_platdata(&origen_lcd_pdata); |
753 | #endif | ||
723 | 754 | ||
724 | platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices)); | 755 | platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices)); |
725 | 756 | ||