Imported Upstream version 1.15.1
[deb_xorg-server.git] / hw / xfree86 / ramdac / TI.h
1
2 #include <xf86RamDac.h>
3
4 extern _X_EXPORT unsigned long TIramdacCalculateMNPForClock(unsigned long
5 RefClock,
6 unsigned long
7 ReqClock,
8 char IsPixClock,
9 unsigned long
10 MinClock,
11 unsigned long
12 MaxClock,
13 unsigned long *rM,
14 unsigned long *rN,
15 unsigned long *rP);
16 extern _X_EXPORT RamDacHelperRecPtr TIramdacProbe(ScrnInfoPtr pScrn,
17 RamDacSupportedInfoRecPtr
18 ramdacs);
19 extern _X_EXPORT void TIramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec,
20 RamDacRegRecPtr RamDacRegRec);
21 extern _X_EXPORT void TIramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec,
22 RamDacRegRecPtr RamDacRegRec);
23 extern _X_EXPORT void TIramdac3026SetBpp(ScrnInfoPtr pScrn,
24 RamDacRegRecPtr RamDacRegRec);
25 extern _X_EXPORT void TIramdac3030SetBpp(ScrnInfoPtr pScrn,
26 RamDacRegRecPtr RamDacRegRec);
27 extern _X_EXPORT void TIramdacHWCursorInit(xf86CursorInfoPtr infoPtr);
28 extern _X_EXPORT void TIramdacLoadPalette(ScrnInfoPtr pScrn, int numColors,
29 int *indices, LOCO * colors,
30 VisualPtr pVisual);
31
32 typedef void TIramdacLoadPaletteProc(ScrnInfoPtr, int, int *, LOCO *,
33 VisualPtr);
34 extern _X_EXPORT TIramdacLoadPaletteProc *TIramdacLoadPaletteWeak(void);
35
36 #define TI3030_RAMDAC (VENDOR_TI << 16) | 0x00
37 #define TI3026_RAMDAC (VENDOR_TI << 16) | 0x01
38
39 /*
40 * TI Ramdac registers
41 */
42
43 #define TIDAC_rev 0x01
44 #define TIDAC_ind_curs_ctrl 0x06
45 #define TIDAC_byte_router_ctrl 0x07
46 #define TIDAC_latch_ctrl 0x0f
47 #define TIDAC_true_color_ctrl 0x18
48 #define TIDAC_multiplex_ctrl 0x19
49 #define TIDAC_clock_select 0x1a
50 #define TIDAC_palette_page 0x1c
51 #define TIDAC_general_ctrl 0x1d
52 #define TIDAC_misc_ctrl 0x1e
53 #define TIDAC_pll_addr 0x2c
54 #define TIDAC_pll_pixel_data 0x2d
55 #define TIDAC_pll_memory_data 0x2e
56 #define TIDAC_pll_loop_data 0x2f
57 #define TIDAC_key_over_low 0x30
58 #define TIDAC_key_over_high 0x31
59 #define TIDAC_key_red_low 0x32
60 #define TIDAC_key_red_high 0x33
61 #define TIDAC_key_green_low 0x34
62 #define TIDAC_key_green_high 0x35
63 #define TIDAC_key_blue_low 0x36
64 #define TIDAC_key_blue_high 0x37
65 #define TIDAC_key_ctrl 0x38
66 #define TIDAC_clock_ctrl 0x39
67 #define TIDAC_sense_test 0x3a
68 #define TIDAC_test_mode_data 0x3b
69 #define TIDAC_crc_remain_lsb 0x3c
70 #define TIDAC_crc_remain_msb 0x3d
71 #define TIDAC_crc_bit_select 0x3e
72 #define TIDAC_id 0x3f
73
74 /* These are pll values that are accessed via TIDAC_pll_pixel_data */
75 #define TIDAC_PIXEL_N 0x80
76 #define TIDAC_PIXEL_M 0x81
77 #define TIDAC_PIXEL_P 0x82
78 #define TIDAC_PIXEL_VALID 0x83
79
80 /* These are pll values that are accessed via TIDAC_pll_loop_data */
81 #define TIDAC_LOOP_N 0x90
82 #define TIDAC_LOOP_M 0x91
83 #define TIDAC_LOOP_P 0x92
84 #define TIDAC_LOOP_VALID 0x93
85
86 /* Direct mapping addresses */
87 #define TIDAC_INDEX 0xa0
88 #define TIDAC_PALETTE_DATA 0xa1
89 #define TIDAC_READ_MASK 0xa2
90 #define TIDAC_READ_ADDR 0xa3
91 #define TIDAC_CURS_WRITE_ADDR 0xa4
92 #define TIDAC_CURS_COLOR 0xa5
93 #define TIDAC_CURS_READ_ADDR 0xa7
94 #define TIDAC_CURS_CTL 0xa9
95 #define TIDAC_INDEXED_DATA 0xaa
96 #define TIDAC_CURS_RAM_DATA 0xab
97 #define TIDAC_CURS_XLOW 0xac
98 #define TIDAC_CURS_XHIGH 0xad
99 #define TIDAC_CURS_YLOW 0xae
100 #define TIDAC_CURS_YHIGH 0xaf
101
102 #define TIDAC_sw_reset 0xff
103
104 /* Constants */
105 #define TIDAC_TVP_3026_ID 0x26
106 #define TIDAC_TVP_3030_ID 0x30