diff mbox

ARM: EXYNOS: Add framebuffer support for SMDK4X12

Message ID 1339493030-1354-1-git-send-email-sachin.kamat@linaro.org
State Accepted
Headers show

Commit Message

Sachin Kamat June 12, 2012, 9:23 a.m. UTC
This patch adds framebuffer support to SMDK4212 and SMDK4412 boards.
A framebuffer window of 480x800x24bpp is defined.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
---
 arch/arm/mach-exynos/Kconfig         |    2 ++
 arch/arm/mach-exynos/mach-smdk4x12.c |   34 ++++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+), 0 deletions(-)

Comments

Sachin Kamat July 2, 2012, 5:35 a.m. UTC | #1
ping...

On 12/06/2012, Sachin Kamat <sachin.kamat@linaro.org> wrote:
> This patch adds framebuffer support to SMDK4212 and SMDK4412 boards.
> A framebuffer window of 480x800x24bpp is defined.
>
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> ---
>  arch/arm/mach-exynos/Kconfig         |    2 ++
>  arch/arm/mach-exynos/mach-smdk4x12.c |   34
> ++++++++++++++++++++++++++++++++++
>  2 files changed, 36 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 573be57..96f898a 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -365,12 +365,14 @@ config MACH_SMDK4212
>  	select S5P_DEV_FIMC1
>  	select S5P_DEV_FIMC2
>  	select S5P_DEV_FIMC3
> +	select S5P_DEV_FIMD0
>  	select S5P_DEV_MFC
>  	select SAMSUNG_DEV_BACKLIGHT
>  	select SAMSUNG_DEV_KEYPAD
>  	select SAMSUNG_DEV_PWM
>  	select EXYNOS_DEV_SYSMMU
>  	select EXYNOS_DEV_DMA
> +	select EXYNOS4_SETUP_FIMD0
>  	select EXYNOS4_SETUP_I2C1
>  	select EXYNOS4_SETUP_I2C3
>  	select EXYNOS4_SETUP_I2C7
> diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c
> b/arch/arm/mach-exynos/mach-smdk4x12.c
> index fb09c70..c4f4060 100644
> --- a/arch/arm/mach-exynos/mach-smdk4x12.c
> +++ b/arch/arm/mach-exynos/mach-smdk4x12.c
> @@ -13,6 +13,7 @@
>  #include <linux/i2c.h>
>  #include <linux/input.h>
>  #include <linux/io.h>
> +#include <linux/lcd.h>
>  #include <linux/mfd/max8997.h>
>  #include <linux/mmc/host.h>
>  #include <linux/platform_device.h>
> @@ -28,10 +29,12 @@
>  #include <plat/clock.h>
>  #include <plat/cpu.h>
>  #include <plat/devs.h>
> +#include <plat/fb.h>
>  #include <plat/gpio-cfg.h>
>  #include <plat/iic.h>
>  #include <plat/keypad.h>
>  #include <plat/mfc.h>
> +#include <plat/regs-fb.h>
>  #include <plat/regs-serial.h>
>  #include <plat/sdhci.h>
>
> @@ -234,6 +237,34 @@ static struct samsung_keypad_platdata
> smdk4x12_keypad_data __initdata = {
>  	.cols		= 5,
>  };
>
> +static struct s3c_fb_pd_win smdk4x12_fb_win0 = {
> +	.xres		= 480,
> +	.yres		= 800,
> +	.virtual_x	= 480,
> +	.virtual_y	= 800 * 2,
> +	.max_bpp	= 32,
> +	.default_bpp	= 24,
> +};
> +
> +static struct fb_videomode smdk4x12_lcd_timing = {
> +	.left_margin	= 8,
> +	.right_margin	= 8,
> +	.upper_margin	= 6,
> +	.lower_margin	= 6,
> +	.hsync_len	= 6,
> +	.vsync_len	= 4,
> +	.xres		= 480,
> +	.yres		= 800,
> +};
> +
> +static struct s3c_fb_platdata smdk4x12_lcd_pdata __initdata = {
> +	.win[0]		= &smdk4x12_fb_win0,
> +	.vtiming	= &smdk4x12_lcd_timing,
> +	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
> +	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
> +	.setup_gpio	= exynos4_fimd0_gpio_setup_24bpp,
> +};
> +
>  static struct platform_device *smdk4x12_devices[] __initdata = {
>  	&s3c_device_hsmmc2,
>  	&s3c_device_hsmmc3,
> @@ -248,6 +279,7 @@ static struct platform_device *smdk4x12_devices[]
> __initdata = {
>  	&s5p_device_fimc2,
>  	&s5p_device_fimc3,
>  	&s5p_device_fimc_md,
> +	&s5p_device_fimd0,
>  	&s5p_device_mfc,
>  	&s5p_device_mfc_l,
>  	&s5p_device_mfc_r,
> @@ -293,6 +325,8 @@ static void __init smdk4x12_machine_init(void)
>  	s3c_sdhci2_set_platdata(&smdk4x12_hsmmc2_pdata);
>  	s3c_sdhci3_set_platdata(&smdk4x12_hsmmc3_pdata);
>
> +	s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata);
> +
>  	platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices));
>  }
>
> --
> 1.7.4.1
>
>
Kukjin Kim July 13, 2012, 11:28 a.m. UTC | #2
Sachin Kamat wrote:
> 
> This patch adds framebuffer support to SMDK4212 and SMDK4412 boards.
> A framebuffer window of 480x800x24bpp is defined.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> ---
>  arch/arm/mach-exynos/Kconfig         |    2 ++
>  arch/arm/mach-exynos/mach-smdk4x12.c |   34
> ++++++++++++++++++++++++++++++++++
>  2 files changed, 36 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 573be57..96f898a 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -365,12 +365,14 @@ config MACH_SMDK4212
>  	select S5P_DEV_FIMC1
>  	select S5P_DEV_FIMC2
>  	select S5P_DEV_FIMC3
> +	select S5P_DEV_FIMD0
>  	select S5P_DEV_MFC
>  	select SAMSUNG_DEV_BACKLIGHT
>  	select SAMSUNG_DEV_KEYPAD
>  	select SAMSUNG_DEV_PWM
>  	select EXYNOS_DEV_SYSMMU
>  	select EXYNOS_DEV_DMA
> +	select EXYNOS4_SETUP_FIMD0
>  	select EXYNOS4_SETUP_I2C1
>  	select EXYNOS4_SETUP_I2C3
>  	select EXYNOS4_SETUP_I2C7
> diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c b/arch/arm/mach-
> exynos/mach-smdk4x12.c
> index fb09c70..c4f4060 100644
> --- a/arch/arm/mach-exynos/mach-smdk4x12.c
> +++ b/arch/arm/mach-exynos/mach-smdk4x12.c
> @@ -13,6 +13,7 @@
>  #include <linux/i2c.h>
>  #include <linux/input.h>
>  #include <linux/io.h>
> +#include <linux/lcd.h>
>  #include <linux/mfd/max8997.h>
>  #include <linux/mmc/host.h>
>  #include <linux/platform_device.h>
> @@ -28,10 +29,12 @@
>  #include <plat/clock.h>
>  #include <plat/cpu.h>
>  #include <plat/devs.h>
> +#include <plat/fb.h>
>  #include <plat/gpio-cfg.h>
>  #include <plat/iic.h>
>  #include <plat/keypad.h>
>  #include <plat/mfc.h>
> +#include <plat/regs-fb.h>
>  #include <plat/regs-serial.h>
>  #include <plat/sdhci.h>
> 
> @@ -234,6 +237,34 @@ static struct samsung_keypad_platdata
> smdk4x12_keypad_data __initdata = {
>  	.cols		= 5,
>  };
> 
> +static struct s3c_fb_pd_win smdk4x12_fb_win0 = {
> +	.xres		= 480,
> +	.yres		= 800,
> +	.virtual_x	= 480,
> +	.virtual_y	= 800 * 2,
> +	.max_bpp	= 32,
> +	.default_bpp	= 24,
> +};
> +
> +static struct fb_videomode smdk4x12_lcd_timing = {
> +	.left_margin	= 8,
> +	.right_margin	= 8,
> +	.upper_margin	= 6,
> +	.lower_margin	= 6,
> +	.hsync_len	= 6,
> +	.vsync_len	= 4,
> +	.xres		= 480,
> +	.yres		= 800,
> +};
> +
> +static struct s3c_fb_platdata smdk4x12_lcd_pdata __initdata = {
> +	.win[0]		= &smdk4x12_fb_win0,
> +	.vtiming	= &smdk4x12_lcd_timing,
> +	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
> +	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
> +	.setup_gpio	= exynos4_fimd0_gpio_setup_24bpp,
> +};
> +
>  static struct platform_device *smdk4x12_devices[] __initdata = {
>  	&s3c_device_hsmmc2,
>  	&s3c_device_hsmmc3,
> @@ -248,6 +279,7 @@ static struct platform_device *smdk4x12_devices[]
> __initdata = {
>  	&s5p_device_fimc2,
>  	&s5p_device_fimc3,
>  	&s5p_device_fimc_md,
> +	&s5p_device_fimd0,
>  	&s5p_device_mfc,
>  	&s5p_device_mfc_l,
>  	&s5p_device_mfc_r,
> @@ -293,6 +325,8 @@ static void __init smdk4x12_machine_init(void)
>  	s3c_sdhci2_set_platdata(&smdk4x12_hsmmc2_pdata);
>  	s3c_sdhci3_set_platdata(&smdk4x12_hsmmc3_pdata);
> 
> +	s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata);
> +
>  	platform_add_devices(smdk4x12_devices,
> ARRAY_SIZE(smdk4x12_devices));
>  }
> 
> --
> 1.7.4.1

Applied, thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
diff mbox

Patch

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 573be57..96f898a 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -365,12 +365,14 @@  config MACH_SMDK4212
 	select S5P_DEV_FIMC1
 	select S5P_DEV_FIMC2
 	select S5P_DEV_FIMC3
+	select S5P_DEV_FIMD0
 	select S5P_DEV_MFC
 	select SAMSUNG_DEV_BACKLIGHT
 	select SAMSUNG_DEV_KEYPAD
 	select SAMSUNG_DEV_PWM
 	select EXYNOS_DEV_SYSMMU
 	select EXYNOS_DEV_DMA
+	select EXYNOS4_SETUP_FIMD0
 	select EXYNOS4_SETUP_I2C1
 	select EXYNOS4_SETUP_I2C3
 	select EXYNOS4_SETUP_I2C7
diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c b/arch/arm/mach-exynos/mach-smdk4x12.c
index fb09c70..c4f4060 100644
--- a/arch/arm/mach-exynos/mach-smdk4x12.c
+++ b/arch/arm/mach-exynos/mach-smdk4x12.c
@@ -13,6 +13,7 @@ 
 #include <linux/i2c.h>
 #include <linux/input.h>
 #include <linux/io.h>
+#include <linux/lcd.h>
 #include <linux/mfd/max8997.h>
 #include <linux/mmc/host.h>
 #include <linux/platform_device.h>
@@ -28,10 +29,12 @@ 
 #include <plat/clock.h>
 #include <plat/cpu.h>
 #include <plat/devs.h>
+#include <plat/fb.h>
 #include <plat/gpio-cfg.h>
 #include <plat/iic.h>
 #include <plat/keypad.h>
 #include <plat/mfc.h>
+#include <plat/regs-fb.h>
 #include <plat/regs-serial.h>
 #include <plat/sdhci.h>
 
@@ -234,6 +237,34 @@  static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = {
 	.cols		= 5,
 };
 
+static struct s3c_fb_pd_win smdk4x12_fb_win0 = {
+	.xres		= 480,
+	.yres		= 800,
+	.virtual_x	= 480,
+	.virtual_y	= 800 * 2,
+	.max_bpp	= 32,
+	.default_bpp	= 24,
+};
+
+static struct fb_videomode smdk4x12_lcd_timing = {
+	.left_margin	= 8,
+	.right_margin	= 8,
+	.upper_margin	= 6,
+	.lower_margin	= 6,
+	.hsync_len	= 6,
+	.vsync_len	= 4,
+	.xres		= 480,
+	.yres		= 800,
+};
+
+static struct s3c_fb_platdata smdk4x12_lcd_pdata __initdata = {
+	.win[0]		= &smdk4x12_fb_win0,
+	.vtiming	= &smdk4x12_lcd_timing,
+	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
+	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
+	.setup_gpio	= exynos4_fimd0_gpio_setup_24bpp,
+};
+
 static struct platform_device *smdk4x12_devices[] __initdata = {
 	&s3c_device_hsmmc2,
 	&s3c_device_hsmmc3,
@@ -248,6 +279,7 @@  static struct platform_device *smdk4x12_devices[] __initdata = {
 	&s5p_device_fimc2,
 	&s5p_device_fimc3,
 	&s5p_device_fimc_md,
+	&s5p_device_fimd0,
 	&s5p_device_mfc,
 	&s5p_device_mfc_l,
 	&s5p_device_mfc_r,
@@ -293,6 +325,8 @@  static void __init smdk4x12_machine_init(void)
 	s3c_sdhci2_set_platdata(&smdk4x12_hsmmc2_pdata);
 	s3c_sdhci3_set_platdata(&smdk4x12_hsmmc3_pdata);
 
+	s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata);
+
 	platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices));
 }