aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c2410/mach-rx3715.c
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2005-11-01 14:44:28 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-11-01 14:44:28 -0500
commite838ffc2e5c9afa81451cf21dcd3f3246e2adcd2 (patch)
tree7b4c3be7ece370d717b31de7356b2820cf2d4706 /arch/arm/mach-s3c2410/mach-rx3715.c
parentfa87cedd4e89ea29bda622d5cd6dbf19a915fc40 (diff)
[ARM] 3071/1: RX3715 - add lcd/fb platform setup
Patch from Ben Dooks Platform data for the LCD/framebuffer driver for the RX3715 LCD panel. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-s3c2410/mach-rx3715.c')
-rw-r--r--arch/arm/mach-s3c2410/mach-rx3715.c70
1 files changed, 66 insertions, 4 deletions
diff --git a/arch/arm/mach-s3c2410/mach-rx3715.c b/arch/arm/mach-s3c2410/mach-rx3715.c
index 22d9e070fd68..7ff8e4d574c0 100644
--- a/arch/arm/mach-s3c2410/mach-rx3715.c
+++ b/arch/arm/mach-s3c2410/mach-rx3715.c
@@ -17,6 +17,7 @@
17 * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA 17 * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
18 * 14-Mar-2005 BJD Fixed __iomem warnings 18 * 14-Mar-2005 BJD Fixed __iomem warnings
19 * 20-Sep-2005 BJD Added static to non-exported items 19 * 20-Sep-2005 BJD Added static to non-exported items
20 * 31-Oct-2005 BJD Added LCD setup for framebuffer
20*/ 21*/
21 22
22#include <linux/kernel.h> 23#include <linux/kernel.h>
@@ -42,6 +43,9 @@
42 43
43#include <asm/arch/regs-serial.h> 44#include <asm/arch/regs-serial.h>
44#include <asm/arch/regs-gpio.h> 45#include <asm/arch/regs-gpio.h>
46#include <asm/arch/regs-lcd.h>
47
48#include <asm/arch/fb.h>
45 49
46#include "clock.h" 50#include "clock.h"
47#include "devs.h" 51#include "devs.h"
@@ -96,6 +100,66 @@ static struct s3c2410_uartcfg rx3715_uartcfgs[] = {
96 } 100 }
97}; 101};
98 102
103/* framebuffer lcd controller information */
104
105static struct s3c2410fb_mach_info rx3715_lcdcfg __initdata = {
106 .regs = {
107 .lcdcon1 = S3C2410_LCDCON1_TFT16BPP | \
108 S3C2410_LCDCON1_TFT | \
109 S3C2410_LCDCON1_CLKVAL(0x0C),
110
111 .lcdcon2 = S3C2410_LCDCON2_VBPD(5) | \
112 S3C2410_LCDCON2_LINEVAL(319) | \
113 S3C2410_LCDCON2_VFPD(6) | \
114 S3C2410_LCDCON2_VSPW(2),
115
116 .lcdcon3 = S3C2410_LCDCON3_HBPD(35) | \
117 S3C2410_LCDCON3_HOZVAL(239) | \
118 S3C2410_LCDCON3_HFPD(35),
119
120 .lcdcon4 = S3C2410_LCDCON4_MVAL(0) | \
121 S3C2410_LCDCON4_HSPW(7),
122
123 .lcdcon5 = S3C2410_LCDCON5_INVVLINE |
124 S3C2410_LCDCON5_FRM565 |
125 S3C2410_LCDCON5_HWSWP,
126 },
127
128 .lpcsel = 0xf82,
129
130 .gpccon = 0xaa955699,
131 .gpccon_mask = 0xffc003cc,
132 .gpcup = 0x0000ffff,
133 .gpcup_mask = 0xffffffff,
134
135 .gpdcon = 0xaa95aaa1,
136 .gpdcon_mask = 0xffc0fff0,
137 .gpdup = 0x0000faff,
138 .gpdup_mask = 0xffffffff,
139
140 .fixed_syncs = 1,
141 .width = 240,
142 .height = 320,
143
144 .xres = {
145 .min = 240,
146 .max = 240,
147 .defval = 240,
148 },
149
150 .yres = {
151 .max = 320,
152 .min = 320,
153 .defval = 320,
154 },
155
156 .bpp = {
157 .min = 16,
158 .max = 16,
159 .defval = 16,
160 },
161};
162
99static struct platform_device *rx3715_devices[] __initdata = { 163static struct platform_device *rx3715_devices[] __initdata = {
100 &s3c_device_usb, 164 &s3c_device_usb,
101 &s3c_device_lcd, 165 &s3c_device_lcd,
@@ -122,14 +186,12 @@ static void __init rx3715_init_irq(void)
122 s3c24xx_init_irq(); 186 s3c24xx_init_irq();
123} 187}
124 188
125#ifdef CONFIG_PM
126static void __init rx3715_init_machine(void) 189static void __init rx3715_init_machine(void)
127{ 190{
128 s3c2410_pm_init(); 191 s3c2410_pm_init();
192 s3c24xx_fb_set_platdata(&rx3715_lcdcfg);
129} 193}
130#else 194
131#define rx3715_init_machine NULL
132#endif
133 195
134MACHINE_START(RX3715, "IPAQ-RX3715") 196MACHINE_START(RX3715, "IPAQ-RX3715")
135 /* Maintainer: Ben Dooks <ben@fluff.org> */ 197 /* Maintainer: Ben Dooks <ben@fluff.org> */