|  | /* | 
|  | * hecubafb.h - definitions for the hecuba framebuffer driver | 
|  | * | 
|  | * Copyright (C) 2008 by Jaya Kumar | 
|  | * | 
|  | * This file is subject to the terms and conditions of the GNU General Public | 
|  | * License. See the file COPYING in the main directory of this archive for | 
|  | * more details. | 
|  | * | 
|  | */ | 
|  |  | 
|  | #ifndef _LINUX_HECUBAFB_H_ | 
|  | #define _LINUX_HECUBAFB_H_ | 
|  |  | 
|  | /* Apollo controller specific defines */ | 
|  | #define APOLLO_START_NEW_IMG	0xA0 | 
|  | #define APOLLO_STOP_IMG_DATA	0xA1 | 
|  | #define APOLLO_DISPLAY_IMG	0xA2 | 
|  | #define APOLLO_ERASE_DISPLAY	0xA3 | 
|  | #define APOLLO_INIT_DISPLAY	0xA4 | 
|  |  | 
|  | /* Hecuba interface specific defines */ | 
|  | #define HCB_WUP_BIT	0x01 | 
|  | #define HCB_DS_BIT 	0x02 | 
|  | #define HCB_RW_BIT 	0x04 | 
|  | #define HCB_CD_BIT 	0x08 | 
|  | #define HCB_ACK_BIT 	0x80 | 
|  |  | 
|  | /* struct used by hecuba. board specific stuff comes from *board */ | 
|  | struct hecubafb_par { | 
|  | struct fb_info *info; | 
|  | struct hecuba_board *board; | 
|  | void (*send_command)(struct hecubafb_par *, unsigned char); | 
|  | void (*send_data)(struct hecubafb_par *, unsigned char); | 
|  | }; | 
|  |  | 
|  | /* board specific routines | 
|  | board drivers can implement wait_for_ack with interrupts if desired. if | 
|  | wait_for_ack is called with clear=0, then go to sleep and return when ack | 
|  | goes hi or if wait_for_ack with clear=1, then return when ack goes lo */ | 
|  | struct hecuba_board { | 
|  | struct module *owner; | 
|  | void (*remove)(struct hecubafb_par *); | 
|  | void (*set_ctl)(struct hecubafb_par *, unsigned char, unsigned char); | 
|  | void (*set_data)(struct hecubafb_par *, unsigned char); | 
|  | void (*wait_for_ack)(struct hecubafb_par *, int); | 
|  | int (*init)(struct hecubafb_par *); | 
|  | }; | 
|  |  | 
|  |  | 
|  | #endif |