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