* [PATCH V3 0/7] ARM: S5P64X0: Add Framebuffer support
@ 2011-07-27 17:31 Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 1/7] video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdata Ajay Kumar
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: Ajay Kumar @ 2011-07-27 17:31 UTC (permalink / raw)
To: linux-arm-kernel
The patches are created against "for-next" branch of Kukjin Kim's tree at:
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git
Changes since V1:
- Remove mach/regs-fb.h, instead use plat/regs-fb.h.
- Add common pdata for FB and LCD in SMDK6440 and SMDK6450.
- Modify names(s5p-->smdk), max_bpp and refresh rate.
- Modify variable name(cfg-->chipid).
- Use __raw_readl, __raw_writel instead of readl and writel.
Changes since V2:
-Change name of the config-COMMON_FB to SMDK64X0_COMMON_FB.
-Change filename common-fb.h to smdk64x0-common-fb.h.
-Change filename common-fb.c to smdk64x0-common-fb.c.
[Patch RESEND V3 1/7]
- Add "s5p64x0-fb" type driver_data(s3c_fb_driverdata).
- Display controller in S5P64X0 supports 3 windows.
[Patch RESEND V3 2/7]
- Resource definitions(_MEM, _IRQ).
[Patch RESEND V3 3/7]
- Set s3c_device_fb name as "s5p64x0-fb".
[Patch RESEND V3 4/7]
- GPIO settings for LCD in S5P6440 and S5P6450.
- Select LCD interface (RGB/i80).
[Patch V3 5/7]
- Creates a file to hold common FB and LCD code.
- Add Basic FB window definition with default_bpp=24.
- Add platform data for FB and LCD.
- platform_device support for LCD.
[Patch V3 6/7]
- Enables FB support and platform-lcd support for SMDK6440.
[Patch V3 7/7]
- Enables FB support and platform-lcd support for SMDK6450.
o To Paul Mundt, Jingoo han
[Patch RESEND V3 1/7] video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdata
o To Kukjin Kim
[Patch RESEND V3 2/7] ARM: S5P64X0: Add register base and IRQ for Framebuffer
[Patch RESEND V3 3/7] ARM: S5P64X0: Set s3c_device_fb name
[Patch RESEND V3 4/7] ARM: S5P64X0: Add GPIO and SPCON settings for LCD
[Patch V3 5/7] ARM: S5P64X0: Add file to hold common Framebuffer and LCD code
[Patch V3 6/7] ARM: S5P6440: Enable LCD-LTE480 and Framebuffer support
[Patch V3 7/7] ARM: S5P6450: Enable LCD-LTE480 and Framebuffer support
arch/arm/mach-s5p64x0/Kconfig | 17 ++++
arch/arm/mach-s5p64x0/Makefile | 4 +
arch/arm/mach-s5p64x0/cpu.c | 3 +
arch/arm/mach-s5p64x0/include/mach/irqs.h | 4 +
arch/arm/mach-s5p64x0/include/mach/map.h | 3 +
arch/arm/mach-s5p64x0/include/mach/regs-gpio.h | 4 +
.../mach-s5p64x0/include/mach/smdk64x0-common-fb.h | 26 ++++++
arch/arm/mach-s5p64x0/mach-smdk6440.c | 5 +
arch/arm/mach-s5p64x0/mach-smdk6450.c | 5 +
arch/arm/mach-s5p64x0/setup-fb.c | 48 ++++++++++
arch/arm/mach-s5p64x0/smdk64x0-common-fb.c | 92 ++++++++++++++++++++
arch/arm/plat-samsung/include/plat/fb.h | 14 +++
drivers/video/s3c-fb.c | 27 ++++++
13 files changed, 252 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h
create mode 100644 arch/arm/mach-s5p64x0/setup-fb.c
create mode 100644 arch/arm/mach-s5p64x0/smdk64x0-common-fb.c
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH V3 1/7] video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdata
2011-07-27 17:31 [PATCH V3 0/7] ARM: S5P64X0: Add Framebuffer support Ajay Kumar
@ 2011-07-27 17:31 ` Ajay Kumar
2011-09-07 7:06 ` Kukjin Kim
2011-07-27 17:31 ` [PATCH V3 2/7] ARM: S5P64X0: Add register base and IRQ for Framebuffer Ajay Kumar
` (5 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Ajay Kumar @ 2011-07-27 17:31 UTC (permalink / raw)
To: linux-arm-kernel
This patch:
Adds s3c_fb_driverdata for S5P64X0, which supports 3 windows.
Also, register "s5p64x0-fb" type driver_data.
Existing s3c_fb_driverdata definitions in s3c-fb.c
supports 5 or 2 windows.
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
acked-by: Jingoo Han <jg1.han@samsung.com>
---
drivers/video/s3c-fb.c | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
index 4aecf21..0fda252 100644
--- a/drivers/video/s3c-fb.c
+++ b/drivers/video/s3c-fb.c
@@ -1859,6 +1859,30 @@ static struct s3c_fb_driverdata s3c_fb_data_s3c2443 = {
},
};
+static struct s3c_fb_driverdata s3c_fb_data_s5p64x0 = {
+ .variant = {
+ .nr_windows = 3,
+ .vidtcon = VIDTCON0,
+ .wincon = WINCON(0),
+ .winmap = WINxMAP(0),
+ .keycon = WKEYCON,
+ .osd = VIDOSD_BASE,
+ .osd_stride = 16,
+ .buf_start = VIDW_BUF_START(0),
+ .buf_size = VIDW_BUF_SIZE(0),
+ .buf_end = VIDW_BUF_END(0),
+
+ .palette = {
+ [0] = 0x2400,
+ [1] = 0x2800,
+ [2] = 0x2c00,
+ },
+ },
+ .win[0] = &s3c_fb_data_s5p_wins[0],
+ .win[1] = &s3c_fb_data_s5p_wins[1],
+ .win[2] = &s3c_fb_data_s5p_wins[2],
+};
+
static struct platform_device_id s3c_fb_driver_ids[] = {
{
.name = "s3c-fb",
@@ -1872,6 +1896,9 @@ static struct platform_device_id s3c_fb_driver_ids[] = {
}, {
.name = "s3c2443-fb",
.driver_data = (unsigned long)&s3c_fb_data_s3c2443,
+ }, {
+ .name = "s5p64x0-fb",
+ .driver_data = (unsigned long)&s3c_fb_data_s5p64x0,
},
{},
};
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH V3 2/7] ARM: S5P64X0: Add register base and IRQ for Framebuffer
2011-07-27 17:31 [PATCH V3 0/7] ARM: S5P64X0: Add Framebuffer support Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 1/7] video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdata Ajay Kumar
@ 2011-07-27 17:31 ` Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 3/7] ARM: S5P64X0: Set s3c_device_fb name Ajay Kumar
` (4 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Ajay Kumar @ 2011-07-27 17:31 UTC (permalink / raw)
To: linux-arm-kernel
This patch adds:
-- Framebuffer register mappings.
-- IRQ number being used.
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
---
arch/arm/mach-s5p64x0/include/mach/irqs.h | 4 ++++
arch/arm/mach-s5p64x0/include/mach/map.h | 3 +++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-s5p64x0/include/mach/irqs.h b/arch/arm/mach-s5p64x0/include/mach/irqs.h
index 5837a36..53982db 100644
--- a/arch/arm/mach-s5p64x0/include/mach/irqs.h
+++ b/arch/arm/mach-s5p64x0/include/mach/irqs.h
@@ -87,6 +87,10 @@
#define IRQ_I2S0 IRQ_I2SV40
+#define IRQ_LCD_FIFO IRQ_DISPCON0
+#define IRQ_LCD_VSYNC IRQ_DISPCON1
+#define IRQ_LCD_SYSTEM IRQ_DISPCON2
+
/* S5P6450 EINT feature will be added */
/*
diff --git a/arch/arm/mach-s5p64x0/include/mach/map.h b/arch/arm/mach-s5p64x0/include/mach/map.h
index 95c9125..c5ef50c 100644
--- a/arch/arm/mach-s5p64x0/include/mach/map.h
+++ b/arch/arm/mach-s5p64x0/include/mach/map.h
@@ -47,6 +47,8 @@
#define S5P64X0_PA_HSMMC(x) (0xED800000 + ((x) * 0x100000))
+#define S5P64X0_PA_FB 0xEE000000
+
#define S5P64X0_PA_I2S 0xF2000000
#define S5P6450_PA_I2S1 0xF2800000
#define S5P6450_PA_I2S2 0xF2900000
@@ -64,6 +66,7 @@
#define S3C_PA_IIC1 S5P6440_PA_IIC1
#define S3C_PA_RTC S5P64X0_PA_RTC
#define S3C_PA_WDT S5P64X0_PA_WDT
+#define S3C_PA_FB S5P64X0_PA_FB
#define S5P_PA_CHIPID S5P64X0_PA_CHIPID
#define S5P_PA_SROMC S5P64X0_PA_SROMC
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH V3 3/7] ARM: S5P64X0: Set s3c_device_fb name
2011-07-27 17:31 [PATCH V3 0/7] ARM: S5P64X0: Add Framebuffer support Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 1/7] video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdata Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 2/7] ARM: S5P64X0: Add register base and IRQ for Framebuffer Ajay Kumar
@ 2011-07-27 17:31 ` Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 4/7] ARM: S5P64X0: Add GPIO and SPCON settings for LCD Ajay Kumar
` (3 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Ajay Kumar @ 2011-07-27 17:31 UTC (permalink / raw)
To: linux-arm-kernel
Set s3c_device_fb name as "s5p64x0-fb" for S5P6440 and S5P6450.
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
---
arch/arm/mach-s5p64x0/cpu.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-s5p64x0/cpu.c b/arch/arm/mach-s5p64x0/cpu.c
index a5c0095..617da3b 100644
--- a/arch/arm/mach-s5p64x0/cpu.c
+++ b/arch/arm/mach-s5p64x0/cpu.c
@@ -38,6 +38,7 @@
#include <plat/s5p6440.h>
#include <plat/s5p6450.h>
#include <plat/adc-core.h>
+#include <plat/fb-core.h>
/* Initial IO mappings */
@@ -108,6 +109,7 @@ void __init s5p6440_map_io(void)
{
/* initialize any device information early */
s3c_adc_setname("s3c64xx-adc");
+ s3c_fb_setname("s5p64x0-fb");
iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc));
iotable_init(s5p6440_iodesc, ARRAY_SIZE(s5p6440_iodesc));
@@ -117,6 +119,7 @@ void __init s5p6450_map_io(void)
{
/* initialize any device information early */
s3c_adc_setname("s3c64xx-adc");
+ s3c_fb_setname("s5p64x0-fb");
iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc));
iotable_init(s5p6450_iodesc, ARRAY_SIZE(s5p6450_iodesc));
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH V3 4/7] ARM: S5P64X0: Add GPIO and SPCON settings for LCD
2011-07-27 17:31 [PATCH V3 0/7] ARM: S5P64X0: Add Framebuffer support Ajay Kumar
` (2 preceding siblings ...)
2011-07-27 17:31 ` [PATCH V3 3/7] ARM: S5P64X0: Set s3c_device_fb name Ajay Kumar
@ 2011-07-27 17:31 ` Ajay Kumar
2011-09-07 7:06 ` Kukjin Kim
2011-07-27 17:31 ` [PATCH V3 5/7] ARM: S5P64X0: Add file to hold common Framebuffer and LCD code Ajay Kumar
` (2 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Ajay Kumar @ 2011-07-27 17:31 UTC (permalink / raw)
To: linux-arm-kernel
This patch adds:
-- GPIO lines settings(HSYNC, VSYNC, VCLK and VD) for LCD.
-- Function to select LCD interface (RGB/i80)
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
---
arch/arm/mach-s5p64x0/Kconfig | 6 +++
arch/arm/mach-s5p64x0/Makefile | 1 +
arch/arm/mach-s5p64x0/include/mach/regs-gpio.h | 4 ++
arch/arm/mach-s5p64x0/setup-fb.c | 48 ++++++++++++++++++++++++
arch/arm/plat-samsung/include/plat/fb.h | 14 +++++++
5 files changed, 73 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/mach-s5p64x0/setup-fb.c
diff --git a/arch/arm/mach-s5p64x0/Kconfig b/arch/arm/mach-s5p64x0/Kconfig
index 65c7518..4fee745 100644
--- a/arch/arm/mach-s5p64x0/Kconfig
+++ b/arch/arm/mach-s5p64x0/Kconfig
@@ -21,6 +21,12 @@ config CPU_S5P6450
help
Enable S5P6450 CPU support
+config S5P64X0_SETUP_FB
+ bool
+ help
+ Common setup code for S5P64X0 based boards with a LCD display
+ through RGB interface.
+
config S5P64X0_SETUP_I2C1
bool
help
diff --git a/arch/arm/mach-s5p64x0/Makefile b/arch/arm/mach-s5p64x0/Makefile
index 5f6afdf..487d179 100644
--- a/arch/arm/mach-s5p64x0/Makefile
+++ b/arch/arm/mach-s5p64x0/Makefile
@@ -28,3 +28,4 @@ obj-y += dev-audio.o
obj-$(CONFIG_S3C64XX_DEV_SPI) += dev-spi.o
obj-$(CONFIG_S5P64X0_SETUP_I2C1) += setup-i2c1.o
+obj-$(CONFIG_S5P64X0_SETUP_FB) += setup-fb.o
diff --git a/arch/arm/mach-s5p64x0/include/mach/regs-gpio.h b/arch/arm/mach-s5p64x0/include/mach/regs-gpio.h
index 6ce2547..34d4412 100644
--- a/arch/arm/mach-s5p64x0/include/mach/regs-gpio.h
+++ b/arch/arm/mach-s5p64x0/include/mach/regs-gpio.h
@@ -44,4 +44,8 @@
#define S5P64X0_EINT0MASK (S5P_VA_GPIO + EINT0MASK_OFFSET)
#define S5P64X0_EINT0PEND (S5P_VA_GPIO + EINT0PEND_OFFSET)
+#define S5P64X0_SPCON0 (S5P_VA_GPIO + 0x1A0)
+#define S5P64X0_SPCON0_LCD_SEL_MASK (0x3 << 0)
+#define S5P64X0_SPCON0_LCD_SEL_RGB (0x1 << 0)
+
#endif /* __ASM_ARCH_REGS_GPIO_H */
diff --git a/arch/arm/mach-s5p64x0/setup-fb.c b/arch/arm/mach-s5p64x0/setup-fb.c
new file mode 100644
index 0000000..0d9903a
--- /dev/null
+++ b/arch/arm/mach-s5p64x0/setup-fb.c
@@ -0,0 +1,48 @@
+/* linux/arch/arm/mach-s5p64x0/setup-fb.c
+ *
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com/
+ *
+ * Base S5P64X0 GPIO setup information for LCD framebuffer
+ *
+ * GPIO settings for LCD on any other board based on s5p64x0
+ * should go in this file.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/fb.h>
+#include <linux/gpio.h>
+
+#include <plat/fb.h>
+#include <plat/gpio-cfg.h>
+
+#include <mach/regs-clock.h>
+#include <mach/regs-gpio.h>
+
+void s5p64x0_fb_init(int lcd_interface_type)
+{
+ unsigned int cfg;
+
+ /* select TFT LCD type (RGB I/F) */
+ cfg = __raw_readl(S5P64X0_SPCON0);
+ cfg &= ~S5P64X0_SPCON0_LCD_SEL_MASK;
+ cfg |= lcd_interface_type;
+ __raw_writel(cfg, S5P64X0_SPCON0);
+}
+
+void s5p64x0_fb_gpio_setup_24bpp(void)
+{
+ unsigned int chipid;
+
+ chipid = __raw_readl(S5P64X0_SYS_ID) & 0xf0000;
+ if (chipid == 0x40000) {
+ s3c_gpio_cfgrange_nopull(S5P6440_GPI(0), 16, S3C_GPIO_SFN(2));
+ s3c_gpio_cfgrange_nopull(S5P6440_GPJ(0), 12, S3C_GPIO_SFN(2));
+ } else if (chipid == 0x50000) {
+ s3c_gpio_cfgrange_nopull(S5P6450_GPI(0), 16, S3C_GPIO_SFN(2));
+ s3c_gpio_cfgrange_nopull(S5P6450_GPJ(0), 12, S3C_GPIO_SFN(2));
+ }
+}
diff --git a/arch/arm/plat-samsung/include/plat/fb.h b/arch/arm/plat-samsung/include/plat/fb.h
index 01f10e4..bd79c0a 100644
--- a/arch/arm/plat-samsung/include/plat/fb.h
+++ b/arch/arm/plat-samsung/include/plat/fb.h
@@ -109,4 +109,18 @@ extern void s5pv210_fb_gpio_setup_24bpp(void);
*/
extern void exynos4_fimd0_gpio_setup_24bpp(void);
+/**
+ * s5p64x0_fb_init() - Common setup function for LCD
+ *
+ * Select LCD I/F configuration-RGB style or i80 style
+ */
+extern void s5p64x0_fb_init(int lcd_interface_type);
+
+/**
+ * s5p64x0_fb_gpio_setup_24bpp() - Common GPIO setup function for LCD
+ *
+ * Initialise the GPIO for a LCD display on the RGB interface.
+ */
+extern void s5p64x0_fb_gpio_setup_24bpp(void);
+
#endif /* __PLAT_S3C_FB_H */
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH V3 5/7] ARM: S5P64X0: Add file to hold common Framebuffer and LCD code
2011-07-27 17:31 [PATCH V3 0/7] ARM: S5P64X0: Add Framebuffer support Ajay Kumar
` (3 preceding siblings ...)
2011-07-27 17:31 ` [PATCH V3 4/7] ARM: S5P64X0: Add GPIO and SPCON settings for LCD Ajay Kumar
@ 2011-07-27 17:31 ` Ajay Kumar
2011-09-07 7:06 ` Kukjin Kim
2011-07-27 17:31 ` [PATCH V3 6/7] ARM: S5P6440: Enable LCD-LTE480 and Framebuffer support Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 7/7] ARM: S5P6450: " Ajay Kumar
6 siblings, 1 reply; 11+ messages in thread
From: Ajay Kumar @ 2011-07-27 17:31 UTC (permalink / raw)
To: linux-arm-kernel
This patch creates a file which holds the framebuffer and
LCD code which is common for SMDK6440 and SMDK6450.
It mainly includes:
-- Basic FB window definition.
-- platform data for FB and LCD.
-- platform_device support for LCD.
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
---
arch/arm/mach-s5p64x0/Kconfig | 5 +
arch/arm/mach-s5p64x0/Makefile | 3 +
.../mach-s5p64x0/include/mach/smdk64x0-common-fb.h | 26 ++++++
arch/arm/mach-s5p64x0/smdk64x0-common-fb.c | 92 ++++++++++++++++++++
4 files changed, 126 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h
create mode 100644 arch/arm/mach-s5p64x0/smdk64x0-common-fb.c
diff --git a/arch/arm/mach-s5p64x0/Kconfig b/arch/arm/mach-s5p64x0/Kconfig
index 4fee745..00d5873 100644
--- a/arch/arm/mach-s5p64x0/Kconfig
+++ b/arch/arm/mach-s5p64x0/Kconfig
@@ -32,6 +32,11 @@ config S5P64X0_SETUP_I2C1
help
Common setup code for i2c bus 1.
+config SMDK64X0_COMMON_FB
+ bool
+ help
+ Common framebuffer and LCD code which can be shared across SMDKs.
+
# machine support
config MACH_SMDK6440
diff --git a/arch/arm/mach-s5p64x0/Makefile b/arch/arm/mach-s5p64x0/Makefile
index 487d179..d09d81b 100644
--- a/arch/arm/mach-s5p64x0/Makefile
+++ b/arch/arm/mach-s5p64x0/Makefile
@@ -22,6 +22,9 @@ obj-$(CONFIG_CPU_S5P6450) += clock-s5p6450.o
obj-$(CONFIG_MACH_SMDK6440) += mach-smdk6440.o
obj-$(CONFIG_MACH_SMDK6450) += mach-smdk6450.o
+#common code
+obj-$(CONFIG_SMDK64X0_COMMON_FB) += smdk64x0-common-fb.o
+
# device support
obj-y += dev-audio.o
diff --git a/arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h b/arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h
new file mode 100644
index 0000000..e3b87b9
--- /dev/null
+++ b/arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h
@@ -0,0 +1,26 @@
+/* linux/arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h
+ *
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com/
+ *
+ * Includes declarations for variables and functions
+ * needed in order to support framebuffer.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/fb.h>
+#include <linux/platform_device.h>
+
+#include <video/platform_lcd.h>
+
+#include <plat/fb.h>
+
+extern struct s3c_fb_pd_win smdk64x0_fb_win0;
+extern struct s3c_fb_platdata smdk64x0_lcd_pdata;
+extern struct plat_lcd_data smdk64x0_lcd_power_data;
+extern struct platform_device smdk64x0_lcd_lte480wv;
+extern void smdk64x0_lte480_reset_power(struct plat_lcd_data *pd,
+ unsigned int power);
diff --git a/arch/arm/mach-s5p64x0/smdk64x0-common-fb.c b/arch/arm/mach-s5p64x0/smdk64x0-common-fb.c
new file mode 100644
index 0000000..a3203f8
--- /dev/null
+++ b/arch/arm/mach-s5p64x0/smdk64x0-common-fb.c
@@ -0,0 +1,92 @@
+/* linux/arch/arm/mach-s5p64x0/smdk64x0-common-fb.c
+ *
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com/
+ *
+ * Includes definitions for variables and functions
+ * needed in order to support framebuffer.
+ * Note that this code is common across SMDK6440 and SMDK6450.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/gpio.h>
+
+#include <mach/regs-clock.h>
+#include <mach/smdk64x0-common-fb.h>
+
+#include <plat/devs.h>
+#include <plat/regs-fb.h>
+
+/* Frame Buffer */
+struct s3c_fb_pd_win smdk64x0_fb_win0 = {
+ .win_mode = {
+ .left_margin = 8,
+ .right_margin = 13,
+ .upper_margin = 7,
+ .lower_margin = 5,
+ .hsync_len = 3,
+ .vsync_len = 1,
+ .xres = 800,
+ .yres = 480,
+ .refresh = 60,
+ },
+ .max_bpp = 32,
+ .default_bpp = 24,
+};
+
+struct s3c_fb_platdata smdk64x0_lcd_pdata __initdata = {
+ .win[0] = &smdk64x0_fb_win0,
+ .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
+ .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
+ .setup_gpio = s5p64x0_fb_gpio_setup_24bpp,
+};
+
+/* LCD power controller */
+void smdk64x0_lte480_reset_power(struct plat_lcd_data *pd,
+ unsigned int power)
+{
+ unsigned int cfg;
+ int err;
+
+ if (power) {
+ cfg = readl(S5P64X0_SYS_ID) & 0xf0000;
+ if (cfg == 0x40000) {
+ err = gpio_request(S5P6440_GPN(5), "GPN");
+ if (err) {
+ printk(KERN_ERR "failed to request GPN for lcd reset\n");
+ return;
+ }
+
+ gpio_direction_output(S5P6440_GPN(5), 1);
+ gpio_set_value(S5P6440_GPN(5), 0);
+ gpio_set_value(S5P6440_GPN(5), 1);
+ gpio_free(S5P6440_GPN(5));
+ } else if (cfg == 0x50000) {
+ err = gpio_request(S5P6450_GPN(5), "GPN");
+ if (err) {
+ printk(KERN_ERR "failed to request GPN for lcd reset\n");
+ return;
+ }
+
+ gpio_direction_output(S5P6450_GPN(5), 1);
+ gpio_set_value(S5P6450_GPN(5), 0);
+ gpio_set_value(S5P6450_GPN(5), 1);
+ gpio_free(S5P6450_GPN(5));
+ }
+ }
+}
+
+struct plat_lcd_data smdk64x0_lcd_power_data = {
+ .set_power = smdk64x0_lte480_reset_power,
+};
+
+struct platform_device smdk64x0_lcd_lte480wv = {
+ .name = "platform-lcd",
+ .dev = {
+ .parent = &s3c_device_fb.dev,
+ .platform_data = &smdk64x0_lcd_power_data,
+ }
+};
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH V3 6/7] ARM: S5P6440: Enable LCD-LTE480 and Framebuffer support
2011-07-27 17:31 [PATCH V3 0/7] ARM: S5P64X0: Add Framebuffer support Ajay Kumar
` (4 preceding siblings ...)
2011-07-27 17:31 ` [PATCH V3 5/7] ARM: S5P64X0: Add file to hold common Framebuffer and LCD code Ajay Kumar
@ 2011-07-27 17:31 ` Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 7/7] ARM: S5P6450: " Ajay Kumar
6 siblings, 0 replies; 11+ messages in thread
From: Ajay Kumar @ 2011-07-27 17:31 UTC (permalink / raw)
To: linux-arm-kernel
This patch enables s3c-fb support and platform-lcd support for SMDK6440.
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
---
arch/arm/mach-s5p64x0/Kconfig | 3 +++
arch/arm/mach-s5p64x0/mach-smdk6440.c | 5 +++++
2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-s5p64x0/Kconfig b/arch/arm/mach-s5p64x0/Kconfig
index 00d5873..41a751f 100644
--- a/arch/arm/mach-s5p64x0/Kconfig
+++ b/arch/arm/mach-s5p64x0/Kconfig
@@ -42,6 +42,7 @@ config SMDK64X0_COMMON_FB
config MACH_SMDK6440
bool "SMDK6440"
select CPU_S5P6440
+ select S3C_DEV_FB
select S3C_DEV_I2C1
select S3C_DEV_RTC
select S3C_DEV_WDT
@@ -50,7 +51,9 @@ config MACH_SMDK6440
select SAMSUNG_DEV_BACKLIGHT
select SAMSUNG_DEV_PWM
select SAMSUNG_DEV_TS
+ select S5P64X0_SETUP_FB
select S5P64X0_SETUP_I2C1
+ select SMDK64X0_COMMON_FB
help
Machine support for the Samsung SMDK6440
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6440.c b/arch/arm/mach-s5p64x0/mach-smdk6440.c
index 346f8df..106bc8f 100644
--- a/arch/arm/mach-s5p64x0/mach-smdk6440.c
+++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c
@@ -34,6 +34,7 @@
#include <mach/regs-clock.h>
#include <mach/i2c.h>
#include <mach/regs-gpio.h>
+#include <mach/smdk64x0-common-fb.h>
#include <plat/regs-serial.h>
#include <plat/gpio-cfg.h>
@@ -101,6 +102,8 @@ static struct platform_device *smdk6440_devices[] __initdata = {
&s3c_device_wdt,
&samsung_asoc_dma,
&s5p6440_device_iis,
+ &s3c_device_fb,
+ &smdk64x0_lcd_lte480wv,
};
static struct s3c2410_platform_i2c s5p6440_i2c0_data __initdata = {
@@ -165,6 +168,8 @@ static void __init smdk6440_machine_init(void)
ARRAY_SIZE(smdk6440_i2c_devs1));
samsung_bl_set(&smdk6440_bl_gpio_info, &smdk6440_bl_data);
+ s3c_fb_set_platdata(&smdk64x0_lcd_pdata);
+ s5p64x0_fb_init(S5P64X0_SPCON0_LCD_SEL_RGB);
platform_add_devices(smdk6440_devices, ARRAY_SIZE(smdk6440_devices));
}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH V3 7/7] ARM: S5P6450: Enable LCD-LTE480 and Framebuffer support
2011-07-27 17:31 [PATCH V3 0/7] ARM: S5P64X0: Add Framebuffer support Ajay Kumar
` (5 preceding siblings ...)
2011-07-27 17:31 ` [PATCH V3 6/7] ARM: S5P6440: Enable LCD-LTE480 and Framebuffer support Ajay Kumar
@ 2011-07-27 17:31 ` Ajay Kumar
6 siblings, 0 replies; 11+ messages in thread
From: Ajay Kumar @ 2011-07-27 17:31 UTC (permalink / raw)
To: linux-arm-kernel
This patch enables s3c-fb support and platform-lcd support for SMDK6450.
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
---
arch/arm/mach-s5p64x0/Kconfig | 3 +++
arch/arm/mach-s5p64x0/mach-smdk6450.c | 5 +++++
2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-s5p64x0/Kconfig b/arch/arm/mach-s5p64x0/Kconfig
index 41a751f..43493f1 100644
--- a/arch/arm/mach-s5p64x0/Kconfig
+++ b/arch/arm/mach-s5p64x0/Kconfig
@@ -60,6 +60,7 @@ config MACH_SMDK6440
config MACH_SMDK6450
bool "SMDK6450"
select CPU_S5P6450
+ select S3C_DEV_FB
select S3C_DEV_I2C1
select S3C_DEV_RTC
select S3C_DEV_WDT
@@ -68,7 +69,9 @@ config MACH_SMDK6450
select SAMSUNG_DEV_BACKLIGHT
select SAMSUNG_DEV_PWM
select SAMSUNG_DEV_TS
+ select S5P64X0_SETUP_FB
select S5P64X0_SETUP_I2C1
+ select SMDK64X0_COMMON_FB
help
Machine support for the Samsung SMDK6450
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6450.c b/arch/arm/mach-s5p64x0/mach-smdk6450.c
index 33f2adf..880421c 100644
--- a/arch/arm/mach-s5p64x0/mach-smdk6450.c
+++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c
@@ -34,6 +34,7 @@
#include <mach/regs-clock.h>
#include <mach/i2c.h>
#include <mach/regs-gpio.h>
+#include <mach/smdk64x0-common-fb.h>
#include <plat/regs-serial.h>
#include <plat/gpio-cfg.h>
@@ -119,6 +120,8 @@ static struct platform_device *smdk6450_devices[] __initdata = {
&s3c_device_wdt,
&samsung_asoc_dma,
&s5p6450_device_iis0,
+ &s3c_device_fb,
+ &smdk64x0_lcd_lte480wv,
/* s5p6450_device_spi0 will be added */
};
@@ -184,6 +187,8 @@ static void __init smdk6450_machine_init(void)
ARRAY_SIZE(smdk6450_i2c_devs1));
samsung_bl_set(&smdk6450_bl_gpio_info, &smdk6450_bl_data);
+ s3c_fb_set_platdata(&smdk64x0_lcd_pdata);
+ s5p64x0_fb_init(S5P64X0_SPCON0_LCD_SEL_RGB);
platform_add_devices(smdk6450_devices, ARRAY_SIZE(smdk6450_devices));
}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH V3 4/7] ARM: S5P64X0: Add GPIO and SPCON settings for LCD
2011-07-27 17:31 ` [PATCH V3 4/7] ARM: S5P64X0: Add GPIO and SPCON settings for LCD Ajay Kumar
@ 2011-09-07 7:06 ` Kukjin Kim
0 siblings, 0 replies; 11+ messages in thread
From: Kukjin Kim @ 2011-09-07 7:06 UTC (permalink / raw)
To: linux-arm-kernel
Ajay Kumar wrote:
>
> This patch adds:
> -- GPIO lines settings(HSYNC, VSYNC, VCLK and VD) for LCD.
> -- Function to select LCD interface (RGB/i80)
>
> Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
> ---
> arch/arm/mach-s5p64x0/Kconfig | 6 +++
> arch/arm/mach-s5p64x0/Makefile | 1 +
> arch/arm/mach-s5p64x0/include/mach/regs-gpio.h | 4 ++
> arch/arm/mach-s5p64x0/setup-fb.c | 48
> ++++++++++++++++++++++++
> arch/arm/plat-samsung/include/plat/fb.h | 14 +++++++
> 5 files changed, 73 insertions(+), 0 deletions(-)
> create mode 100644 arch/arm/mach-s5p64x0/setup-fb.c
>
> diff --git a/arch/arm/mach-s5p64x0/Kconfig b/arch/arm/mach-s5p64x0/Kconfig
> index 65c7518..4fee745 100644
> --- a/arch/arm/mach-s5p64x0/Kconfig
> +++ b/arch/arm/mach-s5p64x0/Kconfig
> @@ -21,6 +21,12 @@ config CPU_S5P6450
> help
> Enable S5P6450 CPU support
>
> +config S5P64X0_SETUP_FB
How about to use S5P64X0_SETUP_FB_24BPP like others?
> + bool
> + help
> + Common setup code for S5P64X0 based boards with a LCD display
> + through RGB interface.
> +
> config S5P64X0_SETUP_I2C1
> bool
> help
> diff --git a/arch/arm/mach-s5p64x0/Makefile
b/arch/arm/mach-s5p64x0/Makefile
> index 5f6afdf..487d179 100644
> --- a/arch/arm/mach-s5p64x0/Makefile
> +++ b/arch/arm/mach-s5p64x0/Makefile
> @@ -28,3 +28,4 @@ obj-y += dev-audio.o
> obj-$(CONFIG_S3C64XX_DEV_SPI) += dev-spi.o
>
> obj-$(CONFIG_S5P64X0_SETUP_I2C1) += setup-i2c1.o
> +obj-$(CONFIG_S5P64X0_SETUP_FB) += setup-fb.o
> diff --git a/arch/arm/mach-s5p64x0/include/mach/regs-gpio.h
b/arch/arm/mach-
> s5p64x0/include/mach/regs-gpio.h
> index 6ce2547..34d4412 100644
> --- a/arch/arm/mach-s5p64x0/include/mach/regs-gpio.h
> +++ b/arch/arm/mach-s5p64x0/include/mach/regs-gpio.h
> @@ -44,4 +44,8 @@
> #define S5P64X0_EINT0MASK (S5P_VA_GPIO +
> EINT0MASK_OFFSET)
> #define S5P64X0_EINT0PEND (S5P_VA_GPIO +
> EINT0PEND_OFFSET)
>
> +#define S5P64X0_SPCON0 (S5P_VA_GPIO + 0x1A0)
> +#define S5P64X0_SPCON0_LCD_SEL_MASK (0x3 << 0)
> +#define S5P64X0_SPCON0_LCD_SEL_RGB (0x1 << 0)
I can't find where 'xxx_LCD_SEL_RGB' is used...of course, it can be used
later.
But please don't add definition which is not used now.
> +
> #endif /* __ASM_ARCH_REGS_GPIO_H */
> diff --git a/arch/arm/mach-s5p64x0/setup-fb.c
b/arch/arm/mach-s5p64x0/setup-fb.c
> new file mode 100644
> index 0000000..0d9903a
> --- /dev/null
> +++ b/arch/arm/mach-s5p64x0/setup-fb.c
arch/arm/mach-s5p64x0/setup-fb-24bpp.c?
And if required, we can change it later with others next time...
> @@ -0,0 +1,48 @@
> +/* linux/arch/arm/mach-s5p64x0/setup-fb.c
> + *
> + * Copyright (c) 2011 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com/
> + *
> + * Base S5P64X0 GPIO setup information for LCD framebuffer
> + *
> + * GPIO settings for LCD on any other board based on s5p64x0
> + * should go in this file.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> +*/
> +
> +#include <linux/fb.h>
> +#include <linux/gpio.h>
> +
> +#include <plat/fb.h>
> +#include <plat/gpio-cfg.h>
> +
> +#include <mach/regs-clock.h>
> +#include <mach/regs-gpio.h>
> +
> +void s5p64x0_fb_init(int lcd_interface_type)
> +{
> + unsigned int cfg;
> +
> + /* select TFT LCD type (RGB I/F) */
> + cfg = __raw_readl(S5P64X0_SPCON0);
> + cfg &= ~S5P64X0_SPCON0_LCD_SEL_MASK;
> + cfg |= lcd_interface_type;
> + __raw_writel(cfg, S5P64X0_SPCON0);
Hmm...how about to move above into its board file? So we don't need to get
the argument, lcd_interface_type...
> +}
> +
> +void s5p64x0_fb_gpio_setup_24bpp(void)
> +{
> + unsigned int chipid;
> +
> + chipid = __raw_readl(S5P64X0_SYS_ID) & 0xf0000;
You can use soc_is_xxx() here instead of checking of CPUID directly.
> + if (chipid == 0x40000) {
> + s3c_gpio_cfgrange_nopull(S5P6440_GPI(0), 16,
> S3C_GPIO_SFN(2));
> + s3c_gpio_cfgrange_nopull(S5P6440_GPJ(0), 12,
> S3C_GPIO_SFN(2));
> + } else if (chipid == 0x50000) {
> + s3c_gpio_cfgrange_nopull(S5P6450_GPI(0), 16,
> S3C_GPIO_SFN(2));
> + s3c_gpio_cfgrange_nopull(S5P6450_GPJ(0), 12,
> S3C_GPIO_SFN(2));
> + }
> +}
> diff --git a/arch/arm/plat-samsung/include/plat/fb.h b/arch/arm/plat-
> samsung/include/plat/fb.h
> index 01f10e4..bd79c0a 100644
> --- a/arch/arm/plat-samsung/include/plat/fb.h
> +++ b/arch/arm/plat-samsung/include/plat/fb.h
> @@ -109,4 +109,18 @@ extern void s5pv210_fb_gpio_setup_24bpp(void);
> */
> extern void exynos4_fimd0_gpio_setup_24bpp(void);
>
> +/**
> + * s5p64x0_fb_init() - Common setup function for LCD
> + *
> + * Select LCD I/F configuration-RGB style or i80 style
> + */
> +extern void s5p64x0_fb_init(int lcd_interface_type);
> +
> +/**
> + * s5p64x0_fb_gpio_setup_24bpp() - Common GPIO setup function for LCD
> + *
> + * Initialise the GPIO for a LCD display on the RGB interface.
> + */
> +extern void s5p64x0_fb_gpio_setup_24bpp(void);
> +
> #endif /* __PLAT_S3C_FB_H */
> --
> 1.7.0.4
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH V3 5/7] ARM: S5P64X0: Add file to hold common Framebuffer and LCD code
2011-07-27 17:31 ` [PATCH V3 5/7] ARM: S5P64X0: Add file to hold common Framebuffer and LCD code Ajay Kumar
@ 2011-09-07 7:06 ` Kukjin Kim
0 siblings, 0 replies; 11+ messages in thread
From: Kukjin Kim @ 2011-09-07 7:06 UTC (permalink / raw)
To: linux-arm-kernel
Ajay Kumar wrote:
>
> This patch creates a file which holds the framebuffer and
> LCD code which is common for SMDK6440 and SMDK6450.
> It mainly includes:
> -- Basic FB window definition.
> -- platform data for FB and LCD.
> -- platform_device support for LCD.
>
> Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
> ---
> arch/arm/mach-s5p64x0/Kconfig | 5 +
> arch/arm/mach-s5p64x0/Makefile | 3 +
> .../mach-s5p64x0/include/mach/smdk64x0-common-fb.h | 26 ++++++
> arch/arm/mach-s5p64x0/smdk64x0-common-fb.c | 92
> ++++++++++++++++++++
> 4 files changed, 126 insertions(+), 0 deletions(-)
> create mode 100644 arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-
> fb.h
> create mode 100644 arch/arm/mach-s5p64x0/smdk64x0-common-fb.c
>
> diff --git a/arch/arm/mach-s5p64x0/Kconfig b/arch/arm/mach-s5p64x0/Kconfig
> index 4fee745..00d5873 100644
> --- a/arch/arm/mach-s5p64x0/Kconfig
> +++ b/arch/arm/mach-s5p64x0/Kconfig
> @@ -32,6 +32,11 @@ config S5P64X0_SETUP_I2C1
> help
> Common setup code for i2c bus 1.
>
> +config SMDK64X0_COMMON_FB
> + bool
> + help
> + Common framebuffer and LCD code which can be shared across SMDKs.
> +
> # machine support
>
> config MACH_SMDK6440
> diff --git a/arch/arm/mach-s5p64x0/Makefile
b/arch/arm/mach-s5p64x0/Makefile
> index 487d179..d09d81b 100644
> --- a/arch/arm/mach-s5p64x0/Makefile
> +++ b/arch/arm/mach-s5p64x0/Makefile
> @@ -22,6 +22,9 @@ obj-$(CONFIG_CPU_S5P6450) += clock-s5p6450.o
> obj-$(CONFIG_MACH_SMDK6440) += mach-smdk6440.o
> obj-$(CONFIG_MACH_SMDK6450) += mach-smdk6450.o
>
> +#common code
> +obj-$(CONFIG_SMDK64X0_COMMON_FB) += smdk64x0-common-fb.o
> +
> # device support
>
> obj-y += dev-audio.o
> diff --git a/arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h
> b/arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h
> new file mode 100644
> index 0000000..e3b87b9
> --- /dev/null
> +++ b/arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h
> @@ -0,0 +1,26 @@
> +/* linux/arch/arm/mach-s5p64x0/include/mach/smdk64x0-common-fb.h
> + *
> + * Copyright (c) 2011 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com/
> + *
> + * Includes declarations for variables and functions
> + * needed in order to support framebuffer.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> +*/
> +
> +#include <linux/fb.h>
> +#include <linux/platform_device.h>
> +
> +#include <video/platform_lcd.h>
> +
> +#include <plat/fb.h>
> +
> +extern struct s3c_fb_pd_win smdk64x0_fb_win0;
> +extern struct s3c_fb_platdata smdk64x0_lcd_pdata;
> +extern struct plat_lcd_data smdk64x0_lcd_power_data;
> +extern struct platform_device smdk64x0_lcd_lte480wv;
> +extern void smdk64x0_lte480_reset_power(struct plat_lcd_data *pd,
> + unsigned int power);
> diff --git a/arch/arm/mach-s5p64x0/smdk64x0-common-fb.c b/arch/arm/mach-
> s5p64x0/smdk64x0-common-fb.c
> new file mode 100644
> index 0000000..a3203f8
> --- /dev/null
> +++ b/arch/arm/mach-s5p64x0/smdk64x0-common-fb.c
> @@ -0,0 +1,92 @@
> +/* linux/arch/arm/mach-s5p64x0/smdk64x0-common-fb.c
> + *
> + * Copyright (c) 2011 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com/
> + *
> + * Includes definitions for variables and functions
> + * needed in order to support framebuffer.
> + * Note that this code is common across SMDK6440 and SMDK6450.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> +*/
> +
> +#include <linux/gpio.h>
> +
> +#include <mach/regs-clock.h>
> +#include <mach/smdk64x0-common-fb.h>
> +
> +#include <plat/devs.h>
> +#include <plat/regs-fb.h>
> +
> +/* Frame Buffer */
> +struct s3c_fb_pd_win smdk64x0_fb_win0 = {
> + .win_mode = {
> + .left_margin = 8,
> + .right_margin = 13,
> + .upper_margin = 7,
> + .lower_margin = 5,
> + .hsync_len = 3,
> + .vsync_len = 1,
> + .xres = 800,
> + .yres = 480,
> + .refresh = 60,
> + },
> + .max_bpp = 32,
> + .default_bpp = 24,
> +};
> +
> +struct s3c_fb_platdata smdk64x0_lcd_pdata __initdata = {
> + .win[0] = &smdk64x0_fb_win0,
> + .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
> + .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
> + .setup_gpio = s5p64x0_fb_gpio_setup_24bpp,
> +};
> +
> +/* LCD power controller */
> +void smdk64x0_lte480_reset_power(struct plat_lcd_data *pd,
> + unsigned int power)
> +{
> + unsigned int cfg;
> + int err;
> +
> + if (power) {
> + cfg = readl(S5P64X0_SYS_ID) & 0xf0000;
> + if (cfg == 0x40000) {
> + err = gpio_request(S5P6440_GPN(5), "GPN");
> + if (err) {
> + printk(KERN_ERR "failed to request GPN for
> lcd reset\n");
> + return;
> + }
> +
> + gpio_direction_output(S5P6440_GPN(5), 1);
> + gpio_set_value(S5P6440_GPN(5), 0);
> + gpio_set_value(S5P6440_GPN(5), 1);
> + gpio_free(S5P6440_GPN(5));
> + } else if (cfg == 0x50000) {
> + err = gpio_request(S5P6450_GPN(5), "GPN");
> + if (err) {
> + printk(KERN_ERR "failed to request GPN for
> lcd reset\n");
> + return;
> + }
> +
> + gpio_direction_output(S5P6450_GPN(5), 1);
> + gpio_set_value(S5P6450_GPN(5), 0);
> + gpio_set_value(S5P6450_GPN(5), 1);
> + gpio_free(S5P6450_GPN(5));
> + }
> + }
> +}
> +
> +struct plat_lcd_data smdk64x0_lcd_power_data = {
> + .set_power = smdk64x0_lte480_reset_power,
> +};
> +
> +struct platform_device smdk64x0_lcd_lte480wv = {
> + .name = "platform-lcd",
> + .dev = {
> + .parent = &s3c_device_fb.dev,
> + .platform_data = &smdk64x0_lcd_power_data,
> + }
> +};
> --
> 1.7.0.4
Well, I think, the smdk64x0-common-fb.c is not nice :(
Sorry for bothering...but I think the old version is better because of
overhead of adding file...
As I know, you need to fix small changes, please re-submit your whole series
except 1st one.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH V3 1/7] video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdata
2011-07-27 17:31 ` [PATCH V3 1/7] video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdata Ajay Kumar
@ 2011-09-07 7:06 ` Kukjin Kim
0 siblings, 0 replies; 11+ messages in thread
From: Kukjin Kim @ 2011-09-07 7:06 UTC (permalink / raw)
To: linux-arm-kernel
Ajay Kumar wrote:
>
> This patch:
> Adds s3c_fb_driverdata for S5P64X0, which supports 3 windows.
> Also, register "s5p64x0-fb" type driver_data.
> Existing s3c_fb_driverdata definitions in s3c-fb.c
> supports 5 or 2 windows.
>
Hi Ajay,
(Cc'ed Florian Tobias Schandina)
> Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
> acked-by: Jingoo Han <jg1.han@samsung.com>
Should be "Acked-by"...
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Florian,
This is required for supporting FB on Samsung S5P64X0 SoC.
If you're ok, please apply this into your tree...
And if you need original patch, let us know. Ajay will send again.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
> ---
> drivers/video/s3c-fb.c | 27 +++++++++++++++++++++++++++
> 1 files changed, 27 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
> index 4aecf21..0fda252 100644
> --- a/drivers/video/s3c-fb.c
> +++ b/drivers/video/s3c-fb.c
> @@ -1859,6 +1859,30 @@ static struct s3c_fb_driverdata s3c_fb_data_s3c2443
=
> {
> },
> };
>
> +static struct s3c_fb_driverdata s3c_fb_data_s5p64x0 = {
> + .variant = {
> + .nr_windows = 3,
> + .vidtcon = VIDTCON0,
> + .wincon = WINCON(0),
> + .winmap = WINxMAP(0),
> + .keycon = WKEYCON,
> + .osd = VIDOSD_BASE,
> + .osd_stride = 16,
> + .buf_start = VIDW_BUF_START(0),
> + .buf_size = VIDW_BUF_SIZE(0),
> + .buf_end = VIDW_BUF_END(0),
> +
> + .palette = {
> + [0] = 0x2400,
> + [1] = 0x2800,
> + [2] = 0x2c00,
> + },
> + },
> + .win[0] = &s3c_fb_data_s5p_wins[0],
> + .win[1] = &s3c_fb_data_s5p_wins[1],
> + .win[2] = &s3c_fb_data_s5p_wins[2],
> +};
> +
> static struct platform_device_id s3c_fb_driver_ids[] = {
> {
> .name = "s3c-fb",
> @@ -1872,6 +1896,9 @@ static struct platform_device_id s3c_fb_driver_ids[]
= {
> }, {
> .name = "s3c2443-fb",
> .driver_data = (unsigned long)&s3c_fb_data_s3c2443,
> + }, {
> + .name = "s5p64x0-fb",
> + .driver_data = (unsigned long)&s3c_fb_data_s5p64x0,
> },
> {},
> };
> --
> 1.7.0.4
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2011-09-07 7:06 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-27 17:31 [PATCH V3 0/7] ARM: S5P64X0: Add Framebuffer support Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 1/7] video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdata Ajay Kumar
2011-09-07 7:06 ` Kukjin Kim
2011-07-27 17:31 ` [PATCH V3 2/7] ARM: S5P64X0: Add register base and IRQ for Framebuffer Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 3/7] ARM: S5P64X0: Set s3c_device_fb name Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 4/7] ARM: S5P64X0: Add GPIO and SPCON settings for LCD Ajay Kumar
2011-09-07 7:06 ` Kukjin Kim
2011-07-27 17:31 ` [PATCH V3 5/7] ARM: S5P64X0: Add file to hold common Framebuffer and LCD code Ajay Kumar
2011-09-07 7:06 ` Kukjin Kim
2011-07-27 17:31 ` [PATCH V3 6/7] ARM: S5P6440: Enable LCD-LTE480 and Framebuffer support Ajay Kumar
2011-07-27 17:31 ` [PATCH V3 7/7] ARM: S5P6450: " Ajay Kumar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).