Root/include/video/metronomefb.h

1/*
2 * metronomefb.h - definitions for the metronome framebuffer driver
3 *
4 * Copyright (C) 2008 by Jaya Kumar
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive for
8 * more details.
9 *
10 */
11
12#ifndef _LINUX_METRONOMEFB_H_
13#define _LINUX_METRONOMEFB_H_
14
15/* command structure used by metronome controller */
16struct metromem_cmd {
17    u16 opcode;
18    u16 args[((64-2)/2)];
19    u16 csum;
20} __attribute__((packed));
21
22struct epd_frame;
23
24/* struct used by metronome. board specific stuff comes from *board */
25struct metronomefb_par {
26    struct metromem_cmd *metromem_cmd;
27    unsigned char *metromem_wfm;
28    unsigned char *metromem_img;
29    u16 *metromem_img_csum;
30    u16 *csum_table;
31    dma_addr_t metromem_dma;
32    const struct firmware *firmware;
33    struct fb_info *info;
34    struct metronome_board *board;
35    struct platform_device *pdev;
36    wait_queue_head_t waitq;
37    u8 frame_count;
38    int extra_size;
39    int current_wf_mode;
40    int current_wf_temp;
41    unsigned int manual_refresh_threshold;
42    unsigned int partial_autorefresh_interval;
43    const struct epd_frame *epd_frame;
44    u32 *fxbuckets;
45    u32 *fybuckets;
46
47    unsigned int partial_updates_count;
48    unsigned is_first_update:1;
49
50    struct mutex lock;
51};
52
53#define METRONOME_POWER_OFF 0
54#define METRONOME_POWER_ON 1
55
56/* board specific routines and data */
57struct metronome_board {
58    struct module *owner; /* the platform device */
59    void (*power_ctl)(struct metronomefb_par *, int);
60    void (*set_rst)(struct metronomefb_par *, int);
61    void (*set_stdby)(struct metronomefb_par *, int);
62    int (*get_err)(struct metronomefb_par *);
63    int (*get_rdy)(struct metronomefb_par *);
64    void (*cleanup)(struct metronomefb_par *);
65    int (*met_wait_event)(struct metronomefb_par *);
66    int (*met_wait_event_intr)(struct metronomefb_par *);
67    int (*setup_irq)(struct fb_info *);
68    int (*setup_fb)(struct metronomefb_par *);
69    int (*setup_io)(struct metronomefb_par *);
70    int (*get_panel_type)(void);
71};
72
73#endif
74

Archive Download this file



interactive