/* * 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