forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
51 lines
1.5 KiB
/* |
|
* 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
|
|
|