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