52 lines · c
1/*2 * hecubafb.h - definitions for the hecuba framebuffer driver3 *4 * Copyright (C) 2008 by Jaya Kumar5 *6 * This file is subject to the terms and conditions of the GNU General Public7 * License. See the file COPYING in the main directory of this archive for8 * 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 0xA017#define APOLLO_STOP_IMG_DATA 0xA118#define APOLLO_DISPLAY_IMG 0xA219#define APOLLO_ERASE_DISPLAY 0xA320#define APOLLO_INIT_DISPLAY 0xA421 22/* Hecuba interface specific defines */23#define HCB_WUP_BIT 0x0124#define HCB_DS_BIT 0x0225#define HCB_RW_BIT 0x0426#define HCB_CD_BIT 0x0827#define HCB_ACK_BIT 0x8028 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 routines38board drivers can implement wait_for_ack with interrupts if desired. if39wait_for_ack is called with clear=0, then go to sleep and return when ack40goes 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#endif52