1*0e27aa3dSJaya Kumar /* 2*0e27aa3dSJaya Kumar * hecubafb.h - definitions for the hecuba framebuffer driver 3*0e27aa3dSJaya Kumar * 4*0e27aa3dSJaya Kumar * Copyright (C) 2008 by Jaya Kumar 5*0e27aa3dSJaya Kumar * 6*0e27aa3dSJaya Kumar * This file is subject to the terms and conditions of the GNU General Public 7*0e27aa3dSJaya Kumar * License. See the file COPYING in the main directory of this archive for 8*0e27aa3dSJaya Kumar * more details. 9*0e27aa3dSJaya Kumar * 10*0e27aa3dSJaya Kumar */ 11*0e27aa3dSJaya Kumar 12*0e27aa3dSJaya Kumar #ifndef _LINUX_HECUBAFB_H_ 13*0e27aa3dSJaya Kumar #define _LINUX_HECUBAFB_H_ 14*0e27aa3dSJaya Kumar 15*0e27aa3dSJaya Kumar /* Apollo controller specific defines */ 16*0e27aa3dSJaya Kumar #define APOLLO_START_NEW_IMG 0xA0 17*0e27aa3dSJaya Kumar #define APOLLO_STOP_IMG_DATA 0xA1 18*0e27aa3dSJaya Kumar #define APOLLO_DISPLAY_IMG 0xA2 19*0e27aa3dSJaya Kumar #define APOLLO_ERASE_DISPLAY 0xA3 20*0e27aa3dSJaya Kumar #define APOLLO_INIT_DISPLAY 0xA4 21*0e27aa3dSJaya Kumar 22*0e27aa3dSJaya Kumar /* Hecuba interface specific defines */ 23*0e27aa3dSJaya Kumar #define HCB_WUP_BIT 0x01 24*0e27aa3dSJaya Kumar #define HCB_DS_BIT 0x02 25*0e27aa3dSJaya Kumar #define HCB_RW_BIT 0x04 26*0e27aa3dSJaya Kumar #define HCB_CD_BIT 0x08 27*0e27aa3dSJaya Kumar #define HCB_ACK_BIT 0x80 28*0e27aa3dSJaya Kumar 29*0e27aa3dSJaya Kumar /* struct used by hecuba. board specific stuff comes from *board */ 30*0e27aa3dSJaya Kumar struct hecubafb_par { 31*0e27aa3dSJaya Kumar struct fb_info *info; 32*0e27aa3dSJaya Kumar struct hecuba_board *board; 33*0e27aa3dSJaya Kumar void (*send_command)(struct hecubafb_par *, unsigned char); 34*0e27aa3dSJaya Kumar void (*send_data)(struct hecubafb_par *, unsigned char); 35*0e27aa3dSJaya Kumar }; 36*0e27aa3dSJaya Kumar 37*0e27aa3dSJaya Kumar /* board specific routines 38*0e27aa3dSJaya Kumar board drivers can implement wait_for_ack with interrupts if desired. if 39*0e27aa3dSJaya Kumar wait_for_ack is called with clear=0, then go to sleep and return when ack 40*0e27aa3dSJaya Kumar goes hi or if wait_for_ack with clear=1, then return when ack goes lo */ 41*0e27aa3dSJaya Kumar struct hecuba_board { 42*0e27aa3dSJaya Kumar struct module *owner; 43*0e27aa3dSJaya Kumar void (*remove)(struct hecubafb_par *); 44*0e27aa3dSJaya Kumar void (*set_ctl)(struct hecubafb_par *, unsigned char, unsigned char); 45*0e27aa3dSJaya Kumar void (*set_data)(struct hecubafb_par *, unsigned char); 46*0e27aa3dSJaya Kumar void (*wait_for_ack)(struct hecubafb_par *, int); 47*0e27aa3dSJaya Kumar int (*init)(struct hecubafb_par *); 48*0e27aa3dSJaya Kumar }; 49*0e27aa3dSJaya Kumar 50*0e27aa3dSJaya Kumar 51*0e27aa3dSJaya Kumar #endif 52