hecubafb.h (1540B)
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 */ 30struct 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 38board drivers can implement wait_for_ack with interrupts if desired. if 39wait_for_ack is called with clear=0, then go to sleep and return when ack 40goes hi or if wait_for_ack with clear=1, then return when ack goes lo */ 41struct 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