aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/mach-origen.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-exynos/mach-origen.c')
-rw-r--r--arch/arm/mach-exynos/mach-origen.c37
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
473static struct s3c_sdhci_platdata origen_hsmmc0_pdata __initdata = { 474static 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
478static struct s3c_sdhci_platdata origen_hsmmc2_pdata __initdata = { 478static 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
586static 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
586static struct s3c_fb_pd_win origen_fb_win0 = { 606static 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
601static struct s3c_fb_platdata origen_lcd_pdata __initdata = { 623static 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 */
610struct rfkill_gpio_platform_data origen_bt_pdata = { 633static 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