linux/include/video/hecubafb.h
<<
>>
Prefs
   1/*
   2 * hecubafb.h - definitions for the hecuba 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_HECUBAFB_H_
  13#define _LINUX_HECUBAFB_H_
  14
  15/* Apollo controller specific defines */
  16#define APOLLO_START_NEW_IMG    0xA0
  17#define APOLLO_STOP_IMG_DATA    0xA1
  18#define APOLLO_DISPLAY_IMG      0xA2
  19#define APOLLO_ERASE_DISPLAY    0xA3
  20#define APOLLO_INIT_DISPLAY     0xA4
  21
  22/* Hecuba interface specific defines */
  23#define HCB_WUP_BIT     0x01
  24#define HCB_DS_BIT      0x02
  25#define HCB_RW_BIT      0x04
  26#define HCB_CD_BIT      0x08
  27#define HCB_ACK_BIT     0x80
  28
  29/* struct used by hecuba. board specific stuff comes from *board */
  30struct hecubafb_par {
  31        struct fb_info *info;
  32        struct hecuba_board *board;
  33        void (*send_command)(struct hecubafb_par *, unsigned char);
  34        void (*send_data)(struct hecubafb_par *, unsigned char);
  35};
  36
  37/* board specific routines
  38board drivers can implement wait_for_ack with interrupts if desired. if
  39wait_for_ack is called with clear=0, then go to sleep and return when ack
  40goes hi or if wait_for_ack with clear=1, then return when ack goes lo */
  41struct hecuba_board {
  42        struct module *owner;
  43        void (*remove)(struct hecubafb_par *);
  44        void (*set_ctl)(struct hecubafb_par *, unsigned char, unsigned char);
  45        void (*set_data)(struct hecubafb_par *, unsigned char);
  46        void (*wait_for_ack)(struct hecubafb_par *, int);
  47        int (*init)(struct hecubafb_par *);
  48};
  49
  50
  51#endif
  52