]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/drivers/lcd/src/lcd-virtual.c
update
[l4.git] / l4 / pkg / drivers / lcd / src / lcd-virtual.c
1 /*
2  * Dummy LCD driver
3  */
4
5 #include <l4/drivers/lcd.h>
6 #include <stdlib.h>
7
8 static const char *arm_lcd_none_get_info(void)
9 { return "ARM LCD virtual driver"; }
10
11 static void void_dummy(void) {}
12
13 static int probe(const char *c)             { (void)c; return 0; }
14 static unsigned int mem_size(void) { return 200 * 320 * 4; }
15 static void *fb(void)              { return malloc(mem_size()); }
16
17 static int get_fbinfo(l4re_video_view_info_t *vinfo)
18 {
19   vinfo->width          = 320;
20   vinfo->width          = 200;
21   vinfo->bytes_per_line = 4 * vinfo->width;
22
23   vinfo->pixel_info.bytes_per_pixel = 4;
24   vinfo->pixel_info.r.shift         = 0;
25   vinfo->pixel_info.r.size          = 8;
26   vinfo->pixel_info.g.shift         = 8;
27   vinfo->pixel_info.g.size          = 8;
28   vinfo->pixel_info.b.shift         = 16;
29   vinfo->pixel_info.b.size          = 8;
30   vinfo->pixel_info.a.shift         = 0;
31   vinfo->pixel_info.a.size          = 0;
32
33   return 0;
34 }
35
36 static struct arm_lcd_ops arm_lcd_ops_virtual = {
37   .probe              = probe,
38   .get_fbinfo         = get_fbinfo,
39   .get_fb             = fb,
40   .get_video_mem_size = mem_size,
41   .get_info           = arm_lcd_none_get_info,
42   .enable             = void_dummy,
43   .disable            = void_dummy,
44 };
45
46 arm_lcd_register(&arm_lcd_ops_virtual);