p9100.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * Register information for the Weitek P9100 as found
  3.  * on the Tadpole Sparcbook 3 laptops.
  4.  * 
  5.  * From the technical specification document provided by Tadpole.
  6.  *
  7.  * Derrick J Brashear (shadow@dementia.org)
  8.  */
  9. #ifndef _P9100_H_
  10. #define _P9100_H_
  11. /* P9100 control registers */
  12. #define P9100_SYSCTL_OFF 0x0UL
  13. #define P9100_VIDEOCTL_OFF 0x100UL
  14. #define P9100_VRAMCTL_OFF  0x180UL
  15. #define P9100_RAMDAC_OFF  0x200UL
  16. #define P9100_VIDEOCOPROC_OFF  0x400UL
  17. /* P9100 command registers */
  18. #define P9100_CMD_OFF 0x0UL
  19. /* P9100 framebuffer memory */
  20. #define P9100_FB_OFF 0x0UL
  21. /* 3 bits: 2=8bpp 3=16bpp 5=32bpp 7=24bpp */
  22. #define SYS_CONFIG_PIXELSIZE_SHIFT 26 
  23. #define SCREENPAINT_TIMECTL1_ENABLE_VIDEO 0x20 /* 0 = off, 1 = on */
  24. struct p9100_ctrl {
  25.   /* Registers for the system control */
  26.   __volatile__ __u32 sys_base;
  27.   __volatile__ __u32 sys_config;
  28.   __volatile__ __u32 sys_intr;
  29.   __volatile__ __u32 sys_int_ena;
  30.   __volatile__ __u32 sys_alt_rd;
  31.   __volatile__ __u32 sys_alt_wr;
  32.   __volatile__ __u32 sys_xxx[58];
  33.   /* Registers for the video control */
  34.   __volatile__ __u32 vid_base;
  35.   __volatile__ __u32 vid_hcnt;
  36.   __volatile__ __u32 vid_htotal;
  37.   __volatile__ __u32 vid_hsync_rise;
  38.   __volatile__ __u32 vid_hblank_rise;
  39.   __volatile__ __u32 vid_hblank_fall;
  40.   __volatile__ __u32 vid_hcnt_preload;
  41.   __volatile__ __u32 vid_vcnt;
  42.   __volatile__ __u32 vid_vlen;
  43.   __volatile__ __u32 vid_vsync_rise;
  44.   __volatile__ __u32 vid_vblank_rise;
  45.   __volatile__ __u32 vid_vblank_fall;
  46.   __volatile__ __u32 vid_vcnt_preload;
  47.   __volatile__ __u32 vid_screenpaint_addr;
  48.   __volatile__ __u32 vid_screenpaint_timectl1;
  49.   __volatile__ __u32 vid_screenpaint_qsfcnt;
  50.   __volatile__ __u32 vid_screenpaint_timectl2;
  51.   __volatile__ __u32 vid_xxx[15];
  52.   /* Registers for the video control */
  53.   __volatile__ __u32 vram_base;
  54.   __volatile__ __u32 vram_memcfg;
  55.   __volatile__ __u32 vram_refresh_pd;
  56.   __volatile__ __u32 vram_refresh_cnt;
  57.   __volatile__ __u32 vram_raslo_max;
  58.   __volatile__ __u32 vram_raslo_cur;
  59.   __volatile__ __u32 pwrup_cfg;
  60.   __volatile__ __u32 vram_xxx[25];
  61.   /* Registers for IBM RGB528 Palette */
  62.   __volatile__ __u32 ramdac_cmap_wridx; 
  63.   __volatile__ __u32 ramdac_palette_data;
  64.   __volatile__ __u32 ramdac_pixel_mask;
  65.   __volatile__ __u32 ramdac_palette_rdaddr;
  66.   __volatile__ __u32 ramdac_idx_lo;
  67.   __volatile__ __u32 ramdac_idx_hi;
  68.   __volatile__ __u32 ramdac_idx_data;
  69.   __volatile__ __u32 ramdac_idx_ctl;
  70.   __volatile__ __u32 ramdac_xxx[1784];
  71. };
  72. struct p9100_cmd_parameng {
  73.   __volatile__ __u32 parameng_status;
  74.   __volatile__ __u32 parameng_bltcmd;
  75.   __volatile__ __u32 parameng_quadcmd;
  76. };
  77. #endif /* _P9100_H_ */