diff options
Diffstat (limited to 'arch/arm/mach-s3c2410/mach-rx3715.c')
-rw-r--r-- | arch/arm/mach-s3c2410/mach-rx3715.c | 70 |
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 8f2a90bf940b..24d69019a843 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> |
@@ -43,6 +44,9 @@ | |||
43 | 44 | ||
44 | #include <asm/arch/regs-serial.h> | 45 | #include <asm/arch/regs-serial.h> |
45 | #include <asm/arch/regs-gpio.h> | 46 | #include <asm/arch/regs-gpio.h> |
47 | #include <asm/arch/regs-lcd.h> | ||
48 | |||
49 | #include <asm/arch/fb.h> | ||
46 | 50 | ||
47 | #include "clock.h" | 51 | #include "clock.h" |
48 | #include "devs.h" | 52 | #include "devs.h" |
@@ -97,6 +101,66 @@ static struct s3c2410_uartcfg rx3715_uartcfgs[] = { | |||
97 | } | 101 | } |
98 | }; | 102 | }; |
99 | 103 | ||
104 | /* framebuffer lcd controller information */ | ||
105 | |||
106 | static struct s3c2410fb_mach_info rx3715_lcdcfg __initdata = { | ||
107 | .regs = { | ||
108 | .lcdcon1 = S3C2410_LCDCON1_TFT16BPP | \ | ||
109 | S3C2410_LCDCON1_TFT | \ | ||
110 | S3C2410_LCDCON1_CLKVAL(0x0C), | ||
111 | |||
112 | .lcdcon2 = S3C2410_LCDCON2_VBPD(5) | \ | ||
113 | S3C2410_LCDCON2_LINEVAL(319) | \ | ||
114 | S3C2410_LCDCON2_VFPD(6) | \ | ||
115 | S3C2410_LCDCON2_VSPW(2), | ||
116 | |||
117 | .lcdcon3 = S3C2410_LCDCON3_HBPD(35) | \ | ||
118 | S3C2410_LCDCON3_HOZVAL(239) | \ | ||
119 | S3C2410_LCDCON3_HFPD(35), | ||
120 | |||
121 | .lcdcon4 = S3C2410_LCDCON4_MVAL(0) | \ | ||
122 | S3C2410_LCDCON4_HSPW(7), | ||
123 | |||
124 | .lcdcon5 = S3C2410_LCDCON5_INVVLINE | | ||
125 | S3C2410_LCDCON5_FRM565 | | ||
126 | S3C2410_LCDCON5_HWSWP, | ||
127 | }, | ||
128 | |||
129 | .lpcsel = 0xf82, | ||
130 | |||
131 | .gpccon = 0xaa955699, | ||
132 | .gpccon_mask = 0xffc003cc, | ||
133 | .gpcup = 0x0000ffff, | ||
134 | .gpcup_mask = 0xffffffff, | ||
135 | |||
136 | .gpdcon = 0xaa95aaa1, | ||
137 | .gpdcon_mask = 0xffc0fff0, | ||
138 | .gpdup = 0x0000faff, | ||
139 | .gpdup_mask = 0xffffffff, | ||
140 | |||
141 | .fixed_syncs = 1, | ||
142 | .width = 240, | ||
143 | .height = 320, | ||
144 | |||
145 | .xres = { | ||
146 | .min = 240, | ||
147 | .max = 240, | ||
148 | .defval = 240, | ||
149 | }, | ||
150 | |||
151 | .yres = { | ||
152 | .max = 320, | ||
153 | .min = 320, | ||
154 | .defval = 320, | ||
155 | }, | ||
156 | |||
157 | .bpp = { | ||
158 | .min = 16, | ||
159 | .max = 16, | ||
160 | .defval = 16, | ||
161 | }, | ||
162 | }; | ||
163 | |||
100 | static struct platform_device *rx3715_devices[] __initdata = { | 164 | static struct platform_device *rx3715_devices[] __initdata = { |
101 | &s3c_device_usb, | 165 | &s3c_device_usb, |
102 | &s3c_device_lcd, | 166 | &s3c_device_lcd, |
@@ -123,14 +187,12 @@ static void __init rx3715_init_irq(void) | |||
123 | s3c24xx_init_irq(); | 187 | s3c24xx_init_irq(); |
124 | } | 188 | } |
125 | 189 | ||
126 | #ifdef CONFIG_PM | ||
127 | static void __init rx3715_init_machine(void) | 190 | static void __init rx3715_init_machine(void) |
128 | { | 191 | { |
129 | s3c2410_pm_init(); | 192 | s3c2410_pm_init(); |
193 | s3c24xx_fb_set_platdata(&rx3715_lcdcfg); | ||
130 | } | 194 | } |
131 | #else | 195 | |
132 | #define rx3715_init_machine NULL | ||
133 | #endif | ||
134 | 196 | ||
135 | MACHINE_START(RX3715, "IPAQ-RX3715") | 197 | MACHINE_START(RX3715, "IPAQ-RX3715") |
136 | /* Maintainer: Ben Dooks <ben@fluff.org> */ | 198 | /* Maintainer: Ben Dooks <ben@fluff.org> */ |