aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-w90x900/mach-nuc950evb.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-w90x900/mach-nuc950evb.c')
-rw-r--r--arch/arm/mach-w90x900/mach-nuc950evb.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/arch/arm/mach-w90x900/mach-nuc950evb.c b/arch/arm/mach-w90x900/mach-nuc950evb.c
index cef903bcccd1..b3edc3cccf52 100644
--- a/arch/arm/mach-w90x900/mach-nuc950evb.c
+++ b/arch/arm/mach-w90x900/mach-nuc950evb.c
@@ -10,6 +10,8 @@
10 * This program is free software; you can redistribute it and/or 10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as 11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation;version 2 of the License. 12 * published by the Free Software Foundation;version 2 of the License.
13 * history:
14 * Wang Qiang (rurality.linux@gmail.com) add LCD support
13 * 15 *
14 */ 16 */
15 17
@@ -18,9 +20,51 @@
18#include <asm/mach/map.h> 20#include <asm/mach/map.h>
19#include <asm/mach-types.h> 21#include <asm/mach-types.h>
20#include <mach/map.h> 22#include <mach/map.h>
23#include <mach/regs-ldm.h>
24#include <mach/fb.h>
21 25
22#include "nuc950.h" 26#include "nuc950.h"
23 27
28#ifdef CONFIG_FB_NUC900
29/* LCD Controller */
30static struct nuc900fb_display __initdata nuc950_lcd_info[] = {
31 /* Giantplus Technology GPM1040A0 320x240 Color TFT LCD */
32 [0] = {
33 .type = LCM_DCCS_VA_SRC_RGB565,
34 .width = 320,
35 .height = 240,
36 .xres = 320,
37 .yres = 240,
38 .bpp = 16,
39 .pixclock = 200000,
40 .left_margin = 34,
41 .right_margin = 54,
42 .hsync_len = 10,
43 .upper_margin = 18,
44 .lower_margin = 4,
45 .vsync_len = 1,
46 .dccs = 0x8e00041a,
47 .devctl = 0x060800c0,
48 .fbctrl = 0x00a000a0,
49 .scale = 0x04000400,
50 },
51};
52
53static struct nuc900fb_mach_info nuc950_fb_info __initdata = {
54#if defined(CONFIG_GPM1040A0_320X240)
55 .displays = &nuc950_lcd_info[0],
56#else
57 .displays = nuc950_lcd_info,
58#endif
59 .num_displays = ARRAY_SIZE(nuc950_lcd_info),
60 .default_display = 0,
61 .gpio_dir = 0x00000004,
62 .gpio_dir_mask = 0xFFFFFFFD,
63 .gpio_data = 0x00000004,
64 .gpio_data_mask = 0xFFFFFFFD,
65};
66#endif
67
24static void __init nuc950evb_map_io(void) 68static void __init nuc950evb_map_io(void)
25{ 69{
26 nuc950_map_io(); 70 nuc950_map_io();
@@ -30,6 +74,9 @@ static void __init nuc950evb_map_io(void)
30static void __init nuc950evb_init(void) 74static void __init nuc950evb_init(void)
31{ 75{
32 nuc950_board_init(); 76 nuc950_board_init();
77#ifdef CONFIG_FB_NUC900
78 nuc900_fb_set_platdata(&nuc950_fb_info);
79#endif
33} 80}
34 81
35MACHINE_START(W90P950EVB, "W90P950EVB") 82MACHINE_START(W90P950EVB, "W90P950EVB")