xref: /openbmc/linux/include/video/hecubafb.h (revision 0e27aa3d)
10e27aa3dSJaya Kumar /*
20e27aa3dSJaya Kumar  * hecubafb.h - definitions for the hecuba framebuffer driver
30e27aa3dSJaya Kumar  *
40e27aa3dSJaya Kumar  * Copyright (C) 2008 by Jaya Kumar
50e27aa3dSJaya Kumar  *
60e27aa3dSJaya Kumar  * This file is subject to the terms and conditions of the GNU General Public
70e27aa3dSJaya Kumar  * License. See the file COPYING in the main directory of this archive for
80e27aa3dSJaya Kumar  * more details.
90e27aa3dSJaya Kumar  *
100e27aa3dSJaya Kumar  */
110e27aa3dSJaya Kumar 
120e27aa3dSJaya Kumar #ifndef _LINUX_HECUBAFB_H_
130e27aa3dSJaya Kumar #define _LINUX_HECUBAFB_H_
140e27aa3dSJaya Kumar 
150e27aa3dSJaya Kumar /* Apollo controller specific defines */
160e27aa3dSJaya Kumar #define APOLLO_START_NEW_IMG	0xA0
170e27aa3dSJaya Kumar #define APOLLO_STOP_IMG_DATA	0xA1
180e27aa3dSJaya Kumar #define APOLLO_DISPLAY_IMG	0xA2
190e27aa3dSJaya Kumar #define APOLLO_ERASE_DISPLAY	0xA3
200e27aa3dSJaya Kumar #define APOLLO_INIT_DISPLAY	0xA4
210e27aa3dSJaya Kumar 
220e27aa3dSJaya Kumar /* Hecuba interface specific defines */
230e27aa3dSJaya Kumar #define HCB_WUP_BIT	0x01
240e27aa3dSJaya Kumar #define HCB_DS_BIT 	0x02
250e27aa3dSJaya Kumar #define HCB_RW_BIT 	0x04
260e27aa3dSJaya Kumar #define HCB_CD_BIT 	0x08
270e27aa3dSJaya Kumar #define HCB_ACK_BIT 	0x80
280e27aa3dSJaya Kumar 
290e27aa3dSJaya Kumar /* struct used by hecuba. board specific stuff comes from *board */
300e27aa3dSJaya Kumar struct hecubafb_par {
310e27aa3dSJaya Kumar 	struct fb_info *info;
320e27aa3dSJaya Kumar 	struct hecuba_board *board;
330e27aa3dSJaya Kumar 	void (*send_command)(struct hecubafb_par *, unsigned char);
340e27aa3dSJaya Kumar 	void (*send_data)(struct hecubafb_par *, unsigned char);
350e27aa3dSJaya Kumar };
360e27aa3dSJaya Kumar 
370e27aa3dSJaya Kumar /* board specific routines
380e27aa3dSJaya Kumar board drivers can implement wait_for_ack with interrupts if desired. if
390e27aa3dSJaya Kumar wait_for_ack is called with clear=0, then go to sleep and return when ack
400e27aa3dSJaya Kumar goes hi or if wait_for_ack with clear=1, then return when ack goes lo */
410e27aa3dSJaya Kumar struct hecuba_board {
420e27aa3dSJaya Kumar 	struct module *owner;
430e27aa3dSJaya Kumar 	void (*remove)(struct hecubafb_par *);
440e27aa3dSJaya Kumar 	void (*set_ctl)(struct hecubafb_par *, unsigned char, unsigned char);
450e27aa3dSJaya Kumar 	void (*set_data)(struct hecubafb_par *, unsigned char);
460e27aa3dSJaya Kumar 	void (*wait_for_ack)(struct hecubafb_par *, int);
470e27aa3dSJaya Kumar 	int (*init)(struct hecubafb_par *);
480e27aa3dSJaya Kumar };
490e27aa3dSJaya Kumar 
500e27aa3dSJaya Kumar 
510e27aa3dSJaya Kumar #endif
52