ARM: EXYNOS4: Add TVOUT support for SMDKV310
authorHatim Ali <hatim.rv@samsung.com>
Mon, 26 Sep 2011 22:37:18 +0000 (07:37 +0900)
committerKukjin Kim <kgene.kim@samsung.com>
Tue, 4 Oct 2011 10:00:32 +0000 (19:00 +0900)
Add support for TVOUT on SMDKV310 board.

Signed-off-by: Hatim Ali <hatim.rv@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
arch/arm/mach-exynos4/Kconfig
arch/arm/mach-exynos4/mach-smdkv310.c

index 13fc721f8e9b679e14034bc017aa4cd59bffdfb8..980ffd6ccc4ec1e78a9b5629852b202998d4ebc0 100644 (file)
@@ -139,7 +139,9 @@ config MACH_SMDKV310
        select S3C_DEV_RTC
        select S3C_DEV_WDT
        select S3C_DEV_I2C1
+       select S5P_DEV_I2C_HDMIPHY
        select S5P_DEV_MFC
+       select S5P_DEV_TV
        select S3C_DEV_HSMMC
        select S3C_DEV_HSMMC1
        select S3C_DEV_HSMMC2
index 5f62b2b3310d495fbafa53016624fa96404cb12b..5ba432e21e27c4e2c68a265b916c3ad53105e55f 100644 (file)
@@ -173,6 +173,7 @@ static struct platform_device *smdkv310_devices[] __initdata = {
        &s3c_device_hsmmc2,
        &s3c_device_hsmmc3,
        &s3c_device_i2c1,
+       &s5p_device_i2c_hdmiphy,
        &s3c_device_rtc,
        &s3c_device_wdt,
        &exynos4_device_ac97,
@@ -194,6 +195,8 @@ static struct platform_device *smdkv310_devices[] __initdata = {
        &samsung_asoc_idma,
        &smdkv310_smsc911x,
        &exynos4_device_ahci,
+       &s5p_device_hdmi,
+       &s5p_device_mixer,
 };
 
 static void __init smdkv310_smsc911x_init(void)
@@ -230,6 +233,18 @@ static struct platform_pwm_backlight_data smdkv310_bl_data = {
        .pwm_period_ns  = 1000,
 };
 
+static void s5p_tv_setup(void)
+{
+       /* direct HPD to HDMI chip */
+       WARN_ON(gpio_request_one(EXYNOS4_GPX3(7), GPIOF_IN, "hpd-plug"));
+       s3c_gpio_cfgpin(EXYNOS4_GPX3(7), S3C_GPIO_SFN(0x3));
+       s3c_gpio_setpull(EXYNOS4_GPX3(7), S3C_GPIO_PULL_NONE);
+
+       /* setup dependencies between TV devices */
+       s5p_device_hdmi.dev.parent = &exynos4_device_pd[PD_TV].dev;
+       s5p_device_mixer.dev.parent = &exynos4_device_pd[PD_TV].dev;
+}
+
 static void __init smdkv310_map_io(void)
 {
        s5p_init_io(NULL, 0, S5P_VA_CHIPID);
@@ -254,6 +269,9 @@ static void __init smdkv310_machine_init(void)
        s3c_sdhci2_set_platdata(&smdkv310_hsmmc2_pdata);
        s3c_sdhci3_set_platdata(&smdkv310_hsmmc3_pdata);
 
+       s5p_tv_setup();
+       s5p_i2c_hdmiphy_set_platdata(NULL);
+
        samsung_keypad_set_platdata(&smdkv310_keypad_data);
 
        samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data);