Commit f3f5bfe2 authored by Marek Szyprowski's avatar Marek Szyprowski Committed by Kukjin Kim
Browse files

ARM: EXYNOS4: enable frame buffer on Universal C210 board



This patch adds platform definitions to enable s3c-fb driver.
Framebuffer window with 480x800x16bpp mode has been defined.

Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent 3c766699
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -178,6 +178,7 @@ config MACH_UNIVERSAL_C210
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
	select S5P_DEV_FIMC3
	select S5P_DEV_FIMD0
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
@@ -187,6 +188,7 @@ config MACH_UNIVERSAL_C210
	select S5P_DEV_MFC
	select S5P_DEV_ONENAND
	select EXYNOS4_DEV_PD
	select EXYNOS4_SETUP_FIMD0
	select EXYNOS4_SETUP_I2C1
	select EXYNOS4_SETUP_I2C3
	select EXYNOS4_SETUP_I2C5
+34 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include <linux/i2c.h>
#include <linux/gpio_keys.h>
#include <linux/gpio.h>
#include <linux/fb.h>
#include <linux/mfd/max8998.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/fixed.h>
@@ -31,9 +32,11 @@
#include <plat/devs.h>
#include <plat/iic.h>
#include <plat/gpio-cfg.h>
#include <plat/fb.h>
#include <plat/mfc.h>
#include <plat/sdhci.h>
#include <plat/pd.h>
#include <plat/regs-fb-v4.h>

#include <mach/map.h>

@@ -702,6 +705,32 @@ static struct i2c_board_info i2c1_devs[] __initdata = {
	/* Gyro, To be updated */
};

/* Frame Buffer */
static struct s3c_fb_pd_win universal_fb_win0 = {
	.win_mode = {
		.left_margin	= 16,
		.right_margin	= 16,
		.upper_margin	= 2,
		.lower_margin	= 28,
		.hsync_len	= 2,
		.vsync_len	= 1,
		.xres		= 480,
		.yres		= 800,
		.refresh	= 55,
	},
	.max_bpp	= 32,
	.default_bpp	= 16,
};

static struct s3c_fb_platdata universal_lcd_pdata __initdata = {
	.win[0]		= &universal_fb_win0,
	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB |
			  VIDCON0_CLKSEL_LCD,
	.vidcon1	= VIDCON1_INV_VCLK | VIDCON1_INV_VDEN
			  | VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
	.setup_gpio	= exynos4_fimd0_gpio_setup_24bpp,
};

static struct platform_device *universal_devices[] __initdata = {
	/* Samsung Platform Devices */
	&s5p_device_fimc0,
@@ -719,10 +748,12 @@ static struct platform_device *universal_devices[] __initdata = {
	&i2c_gpio12,
	&universal_gpio_keys,
	&s5p_device_onenand,
	&s5p_device_fimd0,
	&s5p_device_mfc,
	&s5p_device_mfc_l,
	&s5p_device_mfc_r,
	&exynos4_device_pd[PD_MFC],
	&exynos4_device_pd[PD_LCD0],
};

static void __init universal_map_io(void)
@@ -751,6 +782,8 @@ static void __init universal_machine_init(void)
	s3c_i2c5_set_platdata(NULL);
	i2c_register_board_info(5, i2c5_devs, ARRAY_SIZE(i2c5_devs));

	s5p_fimd0_set_platdata(&universal_lcd_pdata);

	universal_touchkey_init();
	i2c_register_board_info(I2C_GPIO_BUS_12, i2c_gpio12_devs,
			ARRAY_SIZE(i2c_gpio12_devs));
@@ -758,6 +791,7 @@ static void __init universal_machine_init(void)
	/* Last */
	platform_add_devices(universal_devices, ARRAY_SIZE(universal_devices));
	s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC].dev;
	s5p_device_fimd0.dev.parent = &exynos4_device_pd[PD_LCD0].dev;
}

MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210")