mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-15 00:34:10 +08:00
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
|