metronomefb.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. /* address and control descriptors used by metronome controller */
  14. struct metromem_desc {
  15. u32 mFDADR0;
  16. u32 mFSADR0;
  17. u32 mFIDR0;
  18. u32 mLDCMD0;
  19. };
  20. /* command structure used by metronome controller */
  21. struct metromem_cmd {
  22. u16 opcode;
  23. u16 args[((64-2)/2)];
  24. u16 csum;
  25. };
  26. /* struct used by metronome. board specific stuff comes from *board */
  27. struct metronomefb_par {
  28. unsigned char *metromem;
  29. struct metromem_desc *metromem_desc;
  30. struct metromem_cmd *metromem_cmd;
  31. unsigned char *metromem_wfm;
  32. unsigned char *metromem_img;
  33. u16 *metromem_img_csum;
  34. u16 *csum_table;
  35. int metromemsize;
  36. dma_addr_t metromem_dma;
  37. dma_addr_t metromem_desc_dma;
  38. struct fb_info *info;
  39. struct metronome_board *board;
  40. wait_queue_head_t waitq;
  41. u8 frame_count;
  42. };
  43. /* board specific routines */
  44. struct metronome_board {
  45. struct module *owner;
  46. void (*free_irq)(struct fb_info *);
  47. void (*init_gpio_regs)(struct metronomefb_par *);
  48. void (*init_lcdc_regs)(struct metronomefb_par *);
  49. void (*post_dma_setup)(struct metronomefb_par *);
  50. void (*set_rst)(struct metronomefb_par *, int);
  51. void (*set_stdby)(struct metronomefb_par *, int);
  52. int (*met_wait_event)(struct metronomefb_par *);
  53. int (*met_wait_event_intr)(struct metronomefb_par *);
  54. int (*setup_irq)(struct fb_info *);
  55. };
  56. #endif