metronomefb.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. #ifndef _LINUX_METRONOMEFB_H_
  12. #define _LINUX_METRONOMEFB_H_
  13. /* command structure used by metronome controller */
  14. struct metromem_cmd {
  15. u16 opcode;
  16. u16 args[((64-2)/2)];
  17. u16 csum;
  18. };
  19. /* struct used by metronome. board specific stuff comes from *board */
  20. struct metronomefb_par {
  21. struct metromem_cmd *metromem_cmd;
  22. unsigned char *metromem_wfm;
  23. unsigned char *metromem_img;
  24. u16 *metromem_img_csum;
  25. u16 *csum_table;
  26. dma_addr_t metromem_dma;
  27. struct fb_info *info;
  28. struct metronome_board *board;
  29. wait_queue_head_t waitq;
  30. u8 frame_count;
  31. int extra_size;
  32. int dt;
  33. };
  34. /* board specific routines and data */
  35. struct metronome_board {
  36. struct module *owner; /* the platform device */
  37. void (*set_rst)(struct metronomefb_par *, int);
  38. void (*set_stdby)(struct metronomefb_par *, int);
  39. void (*cleanup)(struct metronomefb_par *);
  40. int (*met_wait_event)(struct metronomefb_par *);
  41. int (*met_wait_event_intr)(struct metronomefb_par *);
  42. int (*setup_irq)(struct fb_info *);
  43. int (*setup_fb)(struct metronomefb_par *);
  44. int (*setup_io)(struct metronomefb_par *);
  45. int (*get_panel_type)(void);
  46. unsigned char *metromem;
  47. int fw;
  48. int fh;
  49. int wfm_size;
  50. struct fb_info *host_fbinfo; /* the host LCD controller's fbi */
  51. };
  52. #endif