aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorHartley Sweeten <hartleys@visionengravers.com>2011-01-27 11:50:53 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-02-05 04:49:40 -0500
commit130551928195bdef3369e13572b9a383400681bb (patch)
tree10402412a737f9728a3eb2c1addbe566d5f178be /arch/arm
parent5d046af0eb94bdf67f048ba4056e85fa080b4b07 (diff)
ARM: 6643/1: ep93xx: add framebuffer support to edb93xx boards
The ep9307, ep9312, and ep9315 variants of the ep93xx processor include the raster engine needed for framebuffer support. This allows the EDB93xx boards with those processors to use the framebuffer driver. Tested on an EDB9307A with the following kernel parameters: video=640x480-16@60 video=1024x768-16@60 Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Ryan Mallon <ryan@bluewatersys.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-ep93xx/edb93xx.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-ep93xx/edb93xx.c b/arch/arm/mach-ep93xx/edb93xx.c
index 4b0431652131..fad371df40ed 100644
--- a/arch/arm/mach-ep93xx/edb93xx.c
+++ b/arch/arm/mach-ep93xx/edb93xx.c
@@ -32,6 +32,7 @@
32#include <linux/i2c-gpio.h> 32#include <linux/i2c-gpio.h>
33 33
34#include <mach/hardware.h> 34#include <mach/hardware.h>
35#include <mach/fb.h>
35 36
36#include <asm/mach-types.h> 37#include <asm/mach-types.h>
37#include <asm/mach/arch.h> 38#include <asm/mach/arch.h>
@@ -111,6 +112,37 @@ static void __init edb93xx_register_pwm(void)
111} 112}
112 113
113 114
115/*************************************************************************
116 * EDB93xx framebuffer
117 *************************************************************************/
118static struct ep93xxfb_mach_info __initdata edb93xxfb_info = {
119 .num_modes = EP93XXFB_USE_MODEDB,
120 .bpp = 16,
121 .flags = 0,
122};
123
124static int __init edb93xx_has_fb(void)
125{
126 /* These platforms have an ep93xx with video capability */
127 return machine_is_edb9307() || machine_is_edb9307a() ||
128 machine_is_edb9312() || machine_is_edb9315() ||
129 machine_is_edb9315a();
130}
131
132static void __init edb93xx_register_fb(void)
133{
134 if (!edb93xx_has_fb())
135 return;
136
137 if (machine_is_edb9307a() || machine_is_edb9315a())
138 edb93xxfb_info.flags |= EP93XXFB_USE_SDCSN0;
139 else
140 edb93xxfb_info.flags |= EP93XXFB_USE_SDCSN3;
141
142 ep93xx_register_fb(&edb93xxfb_info);
143}
144
145
114static void __init edb93xx_init_machine(void) 146static void __init edb93xx_init_machine(void)
115{ 147{
116 ep93xx_init_devices(); 148 ep93xx_init_devices();
@@ -118,6 +150,7 @@ static void __init edb93xx_init_machine(void)
118 ep93xx_register_eth(&edb93xx_eth_data, 1); 150 ep93xx_register_eth(&edb93xx_eth_data, 1);
119 edb93xx_register_i2c(); 151 edb93xx_register_i2c();
120 edb93xx_register_pwm(); 152 edb93xx_register_pwm();
153 edb93xx_register_fb();
121} 154}
122 155
123 156