103c33a4fSJaya Kumar /* 203c33a4fSJaya Kumar * metronomefb.h - definitions for the metronome framebuffer driver 303c33a4fSJaya Kumar * 403c33a4fSJaya Kumar * Copyright (C) 2008 by Jaya Kumar 503c33a4fSJaya Kumar * 603c33a4fSJaya Kumar * This file is subject to the terms and conditions of the GNU General Public 703c33a4fSJaya Kumar * License. See the file COPYING in the main directory of this archive for 803c33a4fSJaya Kumar * more details. 903c33a4fSJaya Kumar * 1003c33a4fSJaya Kumar */ 1103c33a4fSJaya Kumar 1203c33a4fSJaya Kumar #ifndef _LINUX_METRONOMEFB_H_ 1303c33a4fSJaya Kumar #define _LINUX_METRONOMEFB_H_ 1403c33a4fSJaya Kumar 1503c33a4fSJaya Kumar /* command structure used by metronome controller */ 1603c33a4fSJaya Kumar struct metromem_cmd { 1703c33a4fSJaya Kumar u16 opcode; 1803c33a4fSJaya Kumar u16 args[((64-2)/2)]; 1903c33a4fSJaya Kumar u16 csum; 2003c33a4fSJaya Kumar }; 2103c33a4fSJaya Kumar 2203c33a4fSJaya Kumar /* struct used by metronome. board specific stuff comes from *board */ 2303c33a4fSJaya Kumar struct metronomefb_par { 2403c33a4fSJaya Kumar struct metromem_cmd *metromem_cmd; 2503c33a4fSJaya Kumar unsigned char *metromem_wfm; 2603c33a4fSJaya Kumar unsigned char *metromem_img; 2703c33a4fSJaya Kumar u16 *metromem_img_csum; 2803c33a4fSJaya Kumar u16 *csum_table; 2903c33a4fSJaya Kumar dma_addr_t metromem_dma; 3003c33a4fSJaya Kumar struct fb_info *info; 3103c33a4fSJaya Kumar struct metronome_board *board; 3203c33a4fSJaya Kumar wait_queue_head_t waitq; 3303c33a4fSJaya Kumar u8 frame_count; 34e9355085SJaya Kumar int extra_size; 35e9355085SJaya Kumar int dt; 3603c33a4fSJaya Kumar }; 3703c33a4fSJaya Kumar 38e9355085SJaya Kumar /* board specific routines and data */ 3903c33a4fSJaya Kumar struct metronome_board { 40e9355085SJaya Kumar struct module *owner; /* the platform device */ 4103c33a4fSJaya Kumar void (*set_rst)(struct metronomefb_par *, int); 4203c33a4fSJaya Kumar void (*set_stdby)(struct metronomefb_par *, int); 43e9355085SJaya Kumar void (*cleanup)(struct metronomefb_par *); 4403c33a4fSJaya Kumar int (*met_wait_event)(struct metronomefb_par *); 4503c33a4fSJaya Kumar int (*met_wait_event_intr)(struct metronomefb_par *); 4603c33a4fSJaya Kumar int (*setup_irq)(struct fb_info *); 47e9355085SJaya Kumar int (*setup_fb)(struct metronomefb_par *); 48e9355085SJaya Kumar int (*setup_io)(struct metronomefb_par *); 49e9355085SJaya Kumar int (*get_panel_type)(void); 50e9355085SJaya Kumar unsigned char *metromem; 51e9355085SJaya Kumar int fw; 52e9355085SJaya Kumar int fh; 53e9355085SJaya Kumar int wfm_size; 54e9355085SJaya Kumar struct fb_info *host_fbinfo; /* the host LCD controller's fbi */ 5503c33a4fSJaya Kumar }; 5603c33a4fSJaya Kumar 5703c33a4fSJaya Kumar #endif 58