Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * metronomefb.h - definitions for the metronome framebuffer driver
0003  *
0004  * Copyright (C) 2008 by Jaya Kumar
0005  *
0006  * This file is subject to the terms and conditions of the GNU General Public
0007  * License. See the file COPYING in the main directory of this archive for
0008  * more details.
0009  *
0010  */
0011 
0012 #ifndef _LINUX_METRONOMEFB_H_
0013 #define _LINUX_METRONOMEFB_H_
0014 
0015 /* command structure used by metronome controller */
0016 struct metromem_cmd {
0017     u16 opcode;
0018     u16 args[((64-2)/2)];
0019     u16 csum;
0020 };
0021 
0022 /* struct used by metronome. board specific stuff comes from *board */
0023 struct metronomefb_par {
0024     struct metromem_cmd *metromem_cmd;
0025     unsigned char *metromem_wfm;
0026     unsigned char *metromem_img;
0027     u16 *metromem_img_csum;
0028     u16 *csum_table;
0029     dma_addr_t metromem_dma;
0030     struct fb_info *info;
0031     struct metronome_board *board;
0032     wait_queue_head_t waitq;
0033     u8 frame_count;
0034     int extra_size;
0035     int dt;
0036 };
0037 
0038 /* board specific routines and data */
0039 struct metronome_board {
0040     struct module *owner; /* the platform device */
0041     void (*set_rst)(struct metronomefb_par *, int);
0042     void (*set_stdby)(struct metronomefb_par *, int);
0043     void (*cleanup)(struct metronomefb_par *);
0044     int (*met_wait_event)(struct metronomefb_par *);
0045     int (*met_wait_event_intr)(struct metronomefb_par *);
0046     int (*setup_irq)(struct fb_info *);
0047     int (*setup_fb)(struct metronomefb_par *);
0048     int (*setup_io)(struct metronomefb_par *);
0049     int (*get_panel_type)(void);
0050     unsigned char *metromem;
0051     int fw;
0052     int fh;
0053     int wfm_size;
0054     struct fb_info *host_fbinfo; /* the host LCD controller's fbi */
0055 };
0056 
0057 #endif