Commit | Line | Data |
---|---|---|
0e27aa3d JK |
1 | /* |
2 | * hecubafb.h - definitions for the hecuba framebuffer driver | |
3 | * | |
4 | * Copyright (C) 2008 by Jaya Kumar | |
5 | * | |
6 | * This file is subject to the terms and conditions of the GNU General Public | |
7 | * License. See the file COPYING in the main directory of this archive for | |
8 | * more details. | |
9 | * | |
10 | */ | |
11 | ||
12 | #ifndef _LINUX_HECUBAFB_H_ | |
13 | #define _LINUX_HECUBAFB_H_ | |
14 | ||
15 | /* Apollo controller specific defines */ | |
16 | #define APOLLO_START_NEW_IMG 0xA0 | |
17 | #define APOLLO_STOP_IMG_DATA 0xA1 | |
18 | #define APOLLO_DISPLAY_IMG 0xA2 | |
19 | #define APOLLO_ERASE_DISPLAY 0xA3 | |
20 | #define APOLLO_INIT_DISPLAY 0xA4 | |
21 | ||
22 | /* Hecuba interface specific defines */ | |
23 | #define HCB_WUP_BIT 0x01 | |
24 | #define HCB_DS_BIT 0x02 | |
25 | #define HCB_RW_BIT 0x04 | |
26 | #define HCB_CD_BIT 0x08 | |
27 | #define HCB_ACK_BIT 0x80 | |
28 | ||
29 | /* struct used by hecuba. board specific stuff comes from *board */ | |
30 | struct hecubafb_par { | |
31 | struct fb_info *info; | |
32 | struct hecuba_board *board; | |
33 | void (*send_command)(struct hecubafb_par *, unsigned char); | |
34 | void (*send_data)(struct hecubafb_par *, unsigned char); | |
35 | }; | |
36 | ||
37 | /* board specific routines | |
38 | board drivers can implement wait_for_ack with interrupts if desired. if | |
39 | wait_for_ack is called with clear=0, then go to sleep and return when ack | |
40 | goes hi or if wait_for_ack with clear=1, then return when ack goes lo */ | |
41 | struct hecuba_board { | |
42 | struct module *owner; | |
43 | void (*remove)(struct hecubafb_par *); | |
44 | void (*set_ctl)(struct hecubafb_par *, unsigned char, unsigned char); | |
45 | void (*set_data)(struct hecubafb_par *, unsigned char); | |
46 | void (*wait_for_ack)(struct hecubafb_par *, int); | |
47 | int (*init)(struct hecubafb_par *); | |
48 | }; | |
49 | ||
50 | ||
51 | #endif |