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
107