xref: /openbmc/linux/include/video/hecubafb.h (revision 0e27aa3d)
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
52