52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
/*
|
|
* 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
|