diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/via/hw.c | 578 | ||||
-rw-r--r-- | drivers/video/via/hw.h | 14 | ||||
-rw-r--r-- | drivers/video/via/share.h | 309 |
3 files changed, 412 insertions, 489 deletions
diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c index 05be8c13765e..7dcb4d5bb9c3 100644 --- a/drivers/video/via/hw.c +++ b/drivers/video/via/hw.c | |||
@@ -23,143 +23,341 @@ | |||
23 | #include "global.h" | 23 | #include "global.h" |
24 | 24 | ||
25 | static struct pll_map pll_value[] = { | 25 | static struct pll_map pll_value[] = { |
26 | {CLK_25_175M, CLE266_PLL_25_175M, K800_PLL_25_175M, | 26 | {25175000, |
27 | CX700_25_175M, VX855_25_175M}, | 27 | {99, 7, 3}, |
28 | {CLK_29_581M, CLE266_PLL_29_581M, K800_PLL_29_581M, | 28 | {85, 3, 4}, /* ignoring bit difference: 0x00008000 */ |
29 | CX700_29_581M, VX855_29_581M}, | 29 | {141, 5, 4}, |
30 | {CLK_26_880M, CLE266_PLL_26_880M, K800_PLL_26_880M, | 30 | {141, 5, 4} }, |
31 | CX700_26_880M, VX855_26_880M}, | 31 | {29581000, |
32 | {CLK_31_490M, CLE266_PLL_31_490M, K800_PLL_31_490M, | 32 | {33, 4, 2}, |
33 | CX700_31_490M, VX855_31_490M}, | 33 | {66, 2, 4}, /* ignoring bit difference: 0x00808000 */ |
34 | {CLK_31_500M, CLE266_PLL_31_500M, K800_PLL_31_500M, | 34 | {166, 5, 4}, /* ignoring bit difference: 0x00008000 */ |
35 | CX700_31_500M, VX855_31_500M}, | 35 | {165, 5, 4} }, |
36 | {CLK_31_728M, CLE266_PLL_31_728M, K800_PLL_31_728M, | 36 | {26880000, |
37 | CX700_31_728M, VX855_31_728M}, | 37 | {15, 4, 1}, |
38 | {CLK_32_668M, CLE266_PLL_32_668M, K800_PLL_32_668M, | 38 | {30, 2, 3}, /* ignoring bit difference: 0x00808000 */ |
39 | CX700_32_668M, VX855_32_668M}, | 39 | {150, 5, 4}, |
40 | {CLK_36_000M, CLE266_PLL_36_000M, K800_PLL_36_000M, | 40 | {150, 5, 4} }, |
41 | CX700_36_000M, VX855_36_000M}, | 41 | {31500000, |
42 | {CLK_40_000M, CLE266_PLL_40_000M, K800_PLL_40_000M, | 42 | {53, 3, 3}, /* ignoring bit difference: 0x00008000 */ |
43 | CX700_40_000M, VX855_40_000M}, | 43 | {141, 4, 4}, /* ignoring bit difference: 0x00008000 */ |
44 | {CLK_41_291M, CLE266_PLL_41_291M, K800_PLL_41_291M, | 44 | {176, 5, 4}, |
45 | CX700_41_291M, VX855_41_291M}, | 45 | {176, 5, 4} }, |
46 | {CLK_43_163M, CLE266_PLL_43_163M, K800_PLL_43_163M, | 46 | {31728000, |
47 | CX700_43_163M, VX855_43_163M}, | 47 | {31, 7, 1}, |
48 | {CLK_45_250M, CLE266_PLL_45_250M, K800_PLL_45_250M, | 48 | {177, 5, 4}, /* ignoring bit difference: 0x00008000 */ |
49 | CX700_45_250M, VX855_45_250M}, | 49 | {177, 5, 4}, |
50 | {CLK_46_000M, CLE266_PLL_46_000M, K800_PLL_46_000M, | 50 | {142, 4, 4} }, |
51 | CX700_46_000M, VX855_46_000M}, | 51 | {32688000, |
52 | {CLK_46_996M, CLE266_PLL_46_996M, K800_PLL_46_996M, | 52 | {73, 4, 3}, |
53 | CX700_46_996M, VX855_46_996M}, | 53 | {146, 4, 4}, /* ignoring bit difference: 0x00008000 */ |
54 | {CLK_48_000M, CLE266_PLL_48_000M, K800_PLL_48_000M, | 54 | {183, 5, 4}, |
55 | CX700_48_000M, VX855_48_000M}, | 55 | {146, 4, 4} }, |
56 | {CLK_48_875M, CLE266_PLL_48_875M, K800_PLL_48_875M, | 56 | {36000000, |
57 | CX700_48_875M, VX855_48_875M}, | 57 | {101, 5, 3}, /* ignoring bit difference: 0x00008000 */ |
58 | {CLK_49_500M, CLE266_PLL_49_500M, K800_PLL_49_500M, | 58 | {161, 4, 4}, /* ignoring bit difference: 0x00008000 */ |
59 | CX700_49_500M, VX855_49_500M}, | 59 | {202, 5, 4}, |
60 | {CLK_52_406M, CLE266_PLL_52_406M, K800_PLL_52_406M, | 60 | {161, 4, 4} }, |
61 | CX700_52_406M, VX855_52_406M}, | 61 | {40000000, |
62 | {CLK_52_977M, CLE266_PLL_52_977M, K800_PLL_52_977M, | 62 | {89, 4, 3}, |
63 | CX700_52_977M, VX855_52_977M}, | 63 | {89, 4, 3}, /* ignoring bit difference: 0x00008000 */ |
64 | {CLK_56_250M, CLE266_PLL_56_250M, K800_PLL_56_250M, | 64 | {112, 5, 3}, |
65 | CX700_56_250M, VX855_56_250M}, | 65 | {112, 5, 3} }, |
66 | {CLK_57_275M, 0, 0, 0, VX855_57_275M}, | 66 | {41291000, |
67 | {CLK_60_466M, CLE266_PLL_60_466M, K800_PLL_60_466M, | 67 | {23, 4, 1}, |
68 | CX700_60_466M, VX855_60_466M}, | 68 | {69, 3, 3}, /* ignoring bit difference: 0x00008000 */ |
69 | {CLK_61_500M, CLE266_PLL_61_500M, K800_PLL_61_500M, | 69 | {115, 5, 3}, |
70 | CX700_61_500M, VX855_61_500M}, | 70 | {115, 5, 3} }, |
71 | {CLK_65_000M, CLE266_PLL_65_000M, K800_PLL_65_000M, | 71 | {43163000, |
72 | CX700_65_000M, VX855_65_000M}, | 72 | {121, 5, 3}, |
73 | {CLK_65_178M, CLE266_PLL_65_178M, K800_PLL_65_178M, | 73 | {121, 5, 3}, /* ignoring bit difference: 0x00008000 */ |
74 | CX700_65_178M, VX855_65_178M}, | 74 | {121, 5, 3}, |
75 | {CLK_66_750M, CLE266_PLL_66_750M, K800_PLL_66_750M, | 75 | {121, 5, 3} }, |
76 | CX700_66_750M, VX855_66_750M}, | 76 | {45250000, |
77 | {CLK_68_179M, CLE266_PLL_68_179M, K800_PLL_68_179M, | 77 | {127, 5, 3}, |
78 | CX700_68_179M, VX855_68_179M}, | 78 | {127, 5, 3}, /* ignoring bit difference: 0x00808000 */ |
79 | {CLK_69_924M, CLE266_PLL_69_924M, K800_PLL_69_924M, | 79 | {127, 5, 3}, |
80 | CX700_69_924M, VX855_69_924M}, | 80 | {127, 5, 3} }, |
81 | {CLK_70_159M, CLE266_PLL_70_159M, K800_PLL_70_159M, | 81 | {46000000, |
82 | CX700_70_159M, VX855_70_159M}, | 82 | {90, 7, 2}, |
83 | {CLK_72_000M, CLE266_PLL_72_000M, K800_PLL_72_000M, | 83 | {103, 4, 3}, /* ignoring bit difference: 0x00008000 */ |
84 | CX700_72_000M, VX855_72_000M}, | 84 | {129, 5, 3}, |
85 | {CLK_78_750M, CLE266_PLL_78_750M, K800_PLL_78_750M, | 85 | {103, 4, 3} }, |
86 | CX700_78_750M, VX855_78_750M}, | 86 | {46996000, |
87 | {CLK_80_136M, CLE266_PLL_80_136M, K800_PLL_80_136M, | 87 | {105, 4, 3}, /* ignoring bit difference: 0x00008000 */ |
88 | CX700_80_136M, VX855_80_136M}, | 88 | {131, 5, 3}, /* ignoring bit difference: 0x00808000 */ |
89 | {CLK_83_375M, CLE266_PLL_83_375M, K800_PLL_83_375M, | 89 | {131, 5, 3}, /* ignoring bit difference: 0x00808000 */ |
90 | CX700_83_375M, VX855_83_375M}, | 90 | {105, 4, 3} }, |
91 | {CLK_83_950M, CLE266_PLL_83_950M, K800_PLL_83_950M, | 91 | {48000000, |
92 | CX700_83_950M, VX855_83_950M}, | 92 | {67, 20, 0}, |
93 | {CLK_84_750M, CLE266_PLL_84_750M, K800_PLL_84_750M, | 93 | {134, 5, 3}, /* ignoring bit difference: 0x00808000 */ |
94 | CX700_84_750M, VX855_84_750M}, | 94 | {134, 5, 3}, |
95 | {CLK_85_860M, CLE266_PLL_85_860M, K800_PLL_85_860M, | 95 | {134, 5, 3} }, |
96 | CX700_85_860M, VX855_85_860M}, | 96 | {48875000, |
97 | {CLK_88_750M, CLE266_PLL_88_750M, K800_PLL_88_750M, | 97 | {99, 29, 0}, |
98 | CX700_88_750M, VX855_88_750M}, | 98 | {82, 3, 3}, /* ignoring bit difference: 0x00808000 */ |
99 | {CLK_94_500M, CLE266_PLL_94_500M, K800_PLL_94_500M, | 99 | {82, 3, 3}, /* ignoring bit difference: 0x00808000 */ |
100 | CX700_94_500M, VX855_94_500M}, | 100 | {137, 5, 3} }, |
101 | {CLK_97_750M, CLE266_PLL_97_750M, K800_PLL_97_750M, | 101 | {49500000, |
102 | CX700_97_750M, VX855_97_750M}, | 102 | {83, 6, 2}, |
103 | {CLK_101_000M, CLE266_PLL_101_000M, K800_PLL_101_000M, | 103 | {83, 3, 3}, /* ignoring bit difference: 0x00008000 */ |
104 | CX700_101_000M, VX855_101_000M}, | 104 | {138, 5, 3}, |
105 | {CLK_106_500M, CLE266_PLL_106_500M, K800_PLL_106_500M, | 105 | {83, 3, 3} }, |
106 | CX700_106_500M, VX855_106_500M}, | 106 | {52406000, |
107 | {CLK_108_000M, CLE266_PLL_108_000M, K800_PLL_108_000M, | 107 | {117, 4, 3}, |
108 | CX700_108_000M, VX855_108_000M}, | 108 | {117, 4, 3}, /* ignoring bit difference: 0x00008000 */ |
109 | {CLK_113_309M, CLE266_PLL_113_309M, K800_PLL_113_309M, | 109 | {117, 4, 3}, |
110 | CX700_113_309M, VX855_113_309M}, | 110 | {88, 3, 3} }, |
111 | {CLK_118_840M, CLE266_PLL_118_840M, K800_PLL_118_840M, | 111 | {52977000, |
112 | CX700_118_840M, VX855_118_840M}, | 112 | {37, 5, 1}, |
113 | {CLK_119_000M, CLE266_PLL_119_000M, K800_PLL_119_000M, | 113 | {148, 5, 3}, /* ignoring bit difference: 0x00808000 */ |
114 | CX700_119_000M, VX855_119_000M}, | 114 | {148, 5, 3}, |
115 | {CLK_121_750M, CLE266_PLL_121_750M, K800_PLL_121_750M, | 115 | {148, 5, 3} }, |
116 | CX700_121_750M, 0}, | 116 | {56250000, |
117 | {CLK_125_104M, CLE266_PLL_125_104M, K800_PLL_125_104M, | 117 | {55, 7, 1}, /* ignoring bit difference: 0x00008000 */ |
118 | CX700_125_104M, 0}, | 118 | {126, 4, 3}, /* ignoring bit difference: 0x00008000 */ |
119 | {CLK_133_308M, CLE266_PLL_133_308M, K800_PLL_133_308M, | 119 | {157, 5, 3}, |
120 | CX700_133_308M, 0}, | 120 | {157, 5, 3} }, |
121 | {CLK_135_000M, CLE266_PLL_135_000M, K800_PLL_135_000M, | 121 | {57275000, |
122 | CX700_135_000M, VX855_135_000M}, | 122 | {0, 0, 0}, |
123 | {CLK_136_700M, CLE266_PLL_136_700M, K800_PLL_136_700M, | 123 | {2, 2, 0}, |
124 | CX700_136_700M, VX855_136_700M}, | 124 | {2, 2, 0}, |
125 | {CLK_138_400M, CLE266_PLL_138_400M, K800_PLL_138_400M, | 125 | {157, 5, 3} }, /* ignoring bit difference: 0x00808000 */ |
126 | CX700_138_400M, VX855_138_400M}, | 126 | {60466000, |
127 | {CLK_146_760M, CLE266_PLL_146_760M, K800_PLL_146_760M, | 127 | {76, 9, 1}, |
128 | CX700_146_760M, VX855_146_760M}, | 128 | {169, 5, 3}, /* ignoring bit difference: 0x00808000 */ |
129 | {CLK_153_920M, CLE266_PLL_153_920M, K800_PLL_153_920M, | 129 | {169, 5, 3}, /* FIXED: old = {72, 2, 3} */ |
130 | CX700_153_920M, VX855_153_920M}, | 130 | {169, 5, 3} }, |
131 | {CLK_156_000M, CLE266_PLL_156_000M, K800_PLL_156_000M, | 131 | {61500000, |
132 | CX700_156_000M, VX855_156_000M}, | 132 | {86, 20, 0}, |
133 | {CLK_157_500M, CLE266_PLL_157_500M, K800_PLL_157_500M, | 133 | {172, 5, 3}, /* ignoring bit difference: 0x00808000 */ |
134 | CX700_157_500M, VX855_157_500M}, | 134 | {172, 5, 3}, |
135 | {CLK_162_000M, CLE266_PLL_162_000M, K800_PLL_162_000M, | 135 | {172, 5, 3} }, |
136 | CX700_162_000M, VX855_162_000M}, | 136 | {65000000, |
137 | {CLK_187_000M, CLE266_PLL_187_000M, K800_PLL_187_000M, | 137 | {109, 6, 2}, /* ignoring bit difference: 0x00008000 */ |
138 | CX700_187_000M, VX855_187_000M}, | 138 | {109, 3, 3}, /* ignoring bit difference: 0x00008000 */ |
139 | {CLK_193_295M, CLE266_PLL_193_295M, K800_PLL_193_295M, | 139 | {109, 3, 3}, |
140 | CX700_193_295M, VX855_193_295M}, | 140 | {109, 3, 3} }, |
141 | {CLK_202_500M, CLE266_PLL_202_500M, K800_PLL_202_500M, | 141 | {65178000, |
142 | CX700_202_500M, VX855_202_500M}, | 142 | {91, 5, 2}, |
143 | {CLK_204_000M, CLE266_PLL_204_000M, K800_PLL_204_000M, | 143 | {182, 5, 3}, /* ignoring bit difference: 0x00808000 */ |
144 | CX700_204_000M, VX855_204_000M}, | 144 | {109, 3, 3}, |
145 | {CLK_218_500M, CLE266_PLL_218_500M, K800_PLL_218_500M, | 145 | {182, 5, 3} }, |
146 | CX700_218_500M, VX855_218_500M}, | 146 | {66750000, |
147 | {CLK_234_000M, CLE266_PLL_234_000M, K800_PLL_234_000M, | 147 | {75, 4, 2}, |
148 | CX700_234_000M, VX855_234_000M}, | 148 | {150, 4, 3}, /* ignoring bit difference: 0x00808000 */ |
149 | {CLK_267_250M, CLE266_PLL_267_250M, K800_PLL_267_250M, | 149 | {150, 4, 3}, |
150 | CX700_267_250M, VX855_267_250M}, | 150 | {112, 3, 3} }, |
151 | {CLK_297_500M, CLE266_PLL_297_500M, K800_PLL_297_500M, | 151 | {68179000, |
152 | CX700_297_500M, VX855_297_500M}, | 152 | {19, 4, 0}, |
153 | {CLK_74_481M, CLE266_PLL_74_481M, K800_PLL_74_481M, | 153 | {114, 3, 3}, /* ignoring bit difference: 0x00008000 */ |
154 | CX700_74_481M, VX855_74_481M}, | 154 | {190, 5, 3}, |
155 | {CLK_172_798M, CLE266_PLL_172_798M, K800_PLL_172_798M, | 155 | {191, 5, 3} }, |
156 | CX700_172_798M, VX855_172_798M}, | 156 | {69924000, |
157 | {CLK_122_614M, CLE266_PLL_122_614M, K800_PLL_122_614M, | 157 | {83, 17, 0}, |
158 | CX700_122_614M, VX855_122_614M}, | 158 | {195, 5, 3}, /* ignoring bit difference: 0x00808000 */ |
159 | {CLK_74_270M, CLE266_PLL_74_270M, K800_PLL_74_270M, | 159 | {195, 5, 3}, |
160 | CX700_74_270M, 0}, | 160 | {195, 5, 3} }, |
161 | {CLK_148_500M, CLE266_PLL_148_500M, K800_PLL_148_500M, | 161 | {70159000, |
162 | CX700_148_500M, VX855_148_500M} | 162 | {98, 20, 0}, |
163 | {196, 5, 3}, /* ignoring bit difference: 0x00808000 */ | ||
164 | {196, 5, 3}, | ||
165 | {195, 5, 3} }, | ||
166 | {72000000, | ||
167 | {121, 24, 0}, | ||
168 | {161, 4, 3}, /* ignoring bit difference: 0x00808000 */ | ||
169 | {161, 4, 3}, | ||
170 | {161, 4, 3} }, | ||
171 | {78750000, | ||
172 | {33, 3, 1}, | ||
173 | {66, 3, 2}, /* ignoring bit difference: 0x00008000 */ | ||
174 | {110, 5, 2}, | ||
175 | {110, 5, 2} }, | ||
176 | {80136000, | ||
177 | {28, 5, 0}, | ||
178 | {68, 3, 2}, /* ignoring bit difference: 0x00008000 */ | ||
179 | {112, 5, 2}, | ||
180 | {112, 5, 2} }, | ||
181 | {83375000, | ||
182 | {93, 2, 3}, | ||
183 | {93, 4, 2}, /* ignoring bit difference: 0x00800000 */ | ||
184 | {93, 4, 2}, /* ignoring bit difference: 0x00800000 */ | ||
185 | {117, 5, 2} }, | ||
186 | {83950000, | ||
187 | {41, 7, 0}, | ||
188 | {117, 5, 2}, /* ignoring bit difference: 0x00008000 */ | ||
189 | {117, 5, 2}, | ||
190 | {117, 5, 2} }, | ||
191 | {84750000, | ||
192 | {118, 5, 2}, | ||
193 | {118, 5, 2}, /* ignoring bit difference: 0x00808000 */ | ||
194 | {118, 5, 2}, | ||
195 | {118, 5, 2} }, | ||
196 | {85860000, | ||
197 | {84, 7, 1}, | ||
198 | {120, 5, 2}, /* ignoring bit difference: 0x00808000 */ | ||
199 | {120, 5, 2}, | ||
200 | {118, 5, 2} }, | ||
201 | {88750000, | ||
202 | {31, 5, 0}, | ||
203 | {124, 5, 2}, /* ignoring bit difference: 0x00808000 */ | ||
204 | {174, 7, 2}, /* ignoring bit difference: 0x00808000 */ | ||
205 | {124, 5, 2} }, | ||
206 | {94500000, | ||
207 | {33, 5, 0}, | ||
208 | {132, 5, 2}, /* ignoring bit difference: 0x00008000 */ | ||
209 | {132, 5, 2}, | ||
210 | {132, 5, 2} }, | ||
211 | {97750000, | ||
212 | {82, 6, 1}, | ||
213 | {137, 5, 2}, /* ignoring bit difference: 0x00808000 */ | ||
214 | {137, 5, 2}, | ||
215 | {137, 5, 2} }, | ||
216 | {101000000, | ||
217 | {127, 9, 1}, | ||
218 | {141, 5, 2}, /* ignoring bit difference: 0x00808000 */ | ||
219 | {141, 5, 2}, | ||
220 | {141, 5, 2} }, | ||
221 | {106500000, | ||
222 | {119, 4, 2}, | ||
223 | {119, 4, 2}, /* ignoring bit difference: 0x00808000 */ | ||
224 | {119, 4, 2}, | ||
225 | {149, 5, 2} }, | ||
226 | {108000000, | ||
227 | {121, 4, 2}, | ||
228 | {121, 4, 2}, /* ignoring bit difference: 0x00808000 */ | ||
229 | {151, 5, 2}, | ||
230 | {151, 5, 2} }, | ||
231 | {113309000, | ||
232 | {95, 12, 0}, | ||
233 | {95, 3, 2}, /* ignoring bit difference: 0x00808000 */ | ||
234 | {95, 3, 2}, | ||
235 | {159, 5, 2} }, | ||
236 | {118840000, | ||
237 | {83, 5, 1}, | ||
238 | {166, 5, 2}, /* ignoring bit difference: 0x00808000 */ | ||
239 | {166, 5, 2}, | ||
240 | {166, 5, 2} }, | ||
241 | {119000000, | ||
242 | {108, 13, 0}, | ||
243 | {133, 4, 2}, /* ignoring bit difference: 0x00808000 */ | ||
244 | {133, 4, 2}, | ||
245 | {167, 5, 2} }, | ||
246 | {121750000, | ||
247 | {85, 5, 1}, | ||
248 | {170, 5, 2}, /* ignoring bit difference: 0x00808000 */ | ||
249 | {68, 2, 2}, | ||
250 | {0, 0, 0} }, | ||
251 | {125104000, | ||
252 | {53, 6, 0}, /* ignoring bit difference: 0x00008000 */ | ||
253 | {106, 3, 2}, /* ignoring bit difference: 0x00008000 */ | ||
254 | {175, 5, 2}, | ||
255 | {0, 0, 0} }, | ||
256 | {135000000, | ||
257 | {94, 5, 1}, | ||
258 | {28, 3, 0}, /* ignoring bit difference: 0x00804000 */ | ||
259 | {151, 4, 2}, | ||
260 | {189, 5, 2} }, | ||
261 | {136700000, | ||
262 | {115, 12, 0}, | ||
263 | {191, 5, 2}, /* ignoring bit difference: 0x00808000 */ | ||
264 | {191, 5, 2}, | ||
265 | {191, 5, 2} }, | ||
266 | {138400000, | ||
267 | {87, 9, 0}, | ||
268 | {116, 3, 2}, /* ignoring bit difference: 0x00808000 */ | ||
269 | {116, 3, 2}, | ||
270 | {194, 5, 2} }, | ||
271 | {146760000, | ||
272 | {103, 5, 1}, | ||
273 | {206, 5, 2}, /* ignoring bit difference: 0x00808000 */ | ||
274 | {206, 5, 2}, | ||
275 | {206, 5, 2} }, | ||
276 | {153920000, | ||
277 | {86, 8, 0}, | ||
278 | {86, 4, 1}, /* ignoring bit difference: 0x00808000 */ | ||
279 | {86, 4, 1}, | ||
280 | {86, 4, 1} }, /* FIXED: old = {84, 2, 1} */ | ||
281 | {156000000, | ||
282 | {109, 5, 1}, | ||
283 | {109, 5, 1}, /* ignoring bit difference: 0x00808000 */ | ||
284 | {109, 5, 1}, | ||
285 | {108, 5, 1} }, | ||
286 | {157500000, | ||
287 | {55, 5, 0}, /* ignoring bit difference: 0x00008000 */ | ||
288 | {22, 2, 0}, /* ignoring bit difference: 0x00802000 */ | ||
289 | {110, 5, 1}, | ||
290 | {110, 5, 1} }, | ||
291 | {162000000, | ||
292 | {113, 5, 1}, | ||
293 | {113, 5, 1}, /* ignoring bit difference: 0x00808000 */ | ||
294 | {113, 5, 1}, | ||
295 | {113, 5, 1} }, | ||
296 | {187000000, | ||
297 | {118, 9, 0}, | ||
298 | {131, 5, 1}, /* ignoring bit difference: 0x00808000 */ | ||
299 | {131, 5, 1}, | ||
300 | {131, 5, 1} }, | ||
301 | {193295000, | ||
302 | {108, 8, 0}, | ||
303 | {81, 3, 1}, /* ignoring bit difference: 0x00808000 */ | ||
304 | {135, 5, 1}, | ||
305 | {135, 5, 1} }, | ||
306 | {202500000, | ||
307 | {99, 7, 0}, | ||
308 | {85, 3, 1}, /* ignoring bit difference: 0x00808000 */ | ||
309 | {142, 5, 1}, | ||
310 | {142, 5, 1} }, | ||
311 | {204000000, | ||
312 | {100, 7, 0}, | ||
313 | {143, 5, 1}, /* ignoring bit difference: 0x00808000 */ | ||
314 | {143, 5, 1}, | ||
315 | {143, 5, 1} }, | ||
316 | {218500000, | ||
317 | {92, 6, 0}, | ||
318 | {153, 5, 1}, /* ignoring bit difference: 0x00808000 */ | ||
319 | {153, 5, 1}, | ||
320 | {153, 5, 1} }, | ||
321 | {234000000, | ||
322 | {98, 6, 0}, | ||
323 | {98, 3, 1}, /* ignoring bit difference: 0x00008000 */ | ||
324 | {98, 3, 1}, | ||
325 | {164, 5, 1} }, | ||
326 | {267250000, | ||
327 | {112, 6, 0}, | ||
328 | {112, 3, 1}, /* ignoring bit difference: 0x00808000 */ | ||
329 | {187, 5, 1}, | ||
330 | {187, 5, 1} }, | ||
331 | {297500000, | ||
332 | {102, 5, 0}, /* ignoring bit difference: 0x00008000 */ | ||
333 | {166, 4, 1}, /* ignoring bit difference: 0x00008000 */ | ||
334 | {208, 5, 1}, | ||
335 | {208, 5, 1} }, | ||
336 | {74481000, | ||
337 | {26, 5, 0}, | ||
338 | {125, 3, 3}, /* ignoring bit difference: 0x00808000 */ | ||
339 | {208, 5, 3}, | ||
340 | {209, 5, 3} }, | ||
341 | {172798000, | ||
342 | {121, 5, 1}, | ||
343 | {121, 5, 1}, /* ignoring bit difference: 0x00808000 */ | ||
344 | {121, 5, 1}, | ||
345 | {121, 5, 1} }, | ||
346 | {122614000, | ||
347 | {60, 7, 0}, | ||
348 | {137, 4, 2}, /* ignoring bit difference: 0x00808000 */ | ||
349 | {137, 4, 2}, | ||
350 | {172, 5, 2} }, | ||
351 | {74270000, | ||
352 | {83, 8, 1}, | ||
353 | {208, 5, 3}, | ||
354 | {208, 5, 3}, | ||
355 | {0, 0, 0} }, | ||
356 | {148500000, | ||
357 | {83, 8, 0}, | ||
358 | {208, 5, 2}, | ||
359 | {166, 4, 2}, | ||
360 | {208, 5, 2} } | ||
163 | }; | 361 | }; |
164 | 362 | ||
165 | static struct fifo_depth_select display_fifo_depth_reg = { | 363 | static struct fifo_depth_select display_fifo_depth_reg = { |
@@ -1360,40 +1558,70 @@ void viafb_load_FIFO_reg(int set_iga, int hor_active, int ver_active) | |||
1360 | 1558 | ||
1361 | } | 1559 | } |
1362 | 1560 | ||
1561 | static u32 cle266_encode_pll(struct pll_config pll) | ||
1562 | { | ||
1563 | return (pll.multiplier << 8) | ||
1564 | | (pll.rshift << 6) | ||
1565 | | pll.divisor; | ||
1566 | } | ||
1567 | |||
1568 | static u32 k800_encode_pll(struct pll_config pll) | ||
1569 | { | ||
1570 | return ((pll.divisor - 2) << 16) | ||
1571 | | (pll.rshift << 10) | ||
1572 | | (pll.multiplier - 2); | ||
1573 | } | ||
1574 | |||
1575 | static u32 vx855_encode_pll(struct pll_config pll) | ||
1576 | { | ||
1577 | return (pll.divisor << 16) | ||
1578 | | (pll.rshift << 10) | ||
1579 | | pll.multiplier; | ||
1580 | } | ||
1581 | |||
1363 | u32 viafb_get_clk_value(int clk) | 1582 | u32 viafb_get_clk_value(int clk) |
1364 | { | 1583 | { |
1365 | int i; | 1584 | u32 value = 0; |
1585 | int i = 0; | ||
1366 | 1586 | ||
1367 | for (i = 0; i < NUM_TOTAL_PLL_TABLE; i++) { | 1587 | while (i < NUM_TOTAL_PLL_TABLE && clk != pll_value[i].clk) |
1368 | if (clk == pll_value[i].clk) { | 1588 | i++; |
1369 | switch (viaparinfo->chip_info->gfx_chip_name) { | 1589 | |
1370 | case UNICHROME_CLE266: | 1590 | if (i == NUM_TOTAL_PLL_TABLE) { |
1371 | case UNICHROME_K400: | 1591 | printk(KERN_WARNING "viafb_get_clk_value: PLL lookup failed!"); |
1372 | return pll_value[i].cle266_pll; | 1592 | } else { |
1373 | 1593 | switch (viaparinfo->chip_info->gfx_chip_name) { | |
1374 | case UNICHROME_K800: | 1594 | case UNICHROME_CLE266: |
1375 | case UNICHROME_PM800: | 1595 | case UNICHROME_K400: |
1376 | case UNICHROME_CN700: | 1596 | value = cle266_encode_pll(pll_value[i].cle266_pll); |
1377 | return pll_value[i].k800_pll; | 1597 | break; |
1378 | 1598 | ||
1379 | case UNICHROME_CX700: | 1599 | case UNICHROME_K800: |
1380 | case UNICHROME_K8M890: | 1600 | case UNICHROME_PM800: |
1381 | case UNICHROME_P4M890: | 1601 | case UNICHROME_CN700: |
1382 | case UNICHROME_P4M900: | 1602 | value = k800_encode_pll(pll_value[i].k800_pll); |
1383 | case UNICHROME_VX800: | 1603 | break; |
1384 | return pll_value[i].cx700_pll; | 1604 | |
1385 | case UNICHROME_VX855: | 1605 | case UNICHROME_CX700: |
1386 | return pll_value[i].vx855_pll; | 1606 | case UNICHROME_CN750: |
1387 | } | 1607 | case UNICHROME_K8M890: |
1608 | case UNICHROME_P4M890: | ||
1609 | case UNICHROME_P4M900: | ||
1610 | case UNICHROME_VX800: | ||
1611 | value = k800_encode_pll(pll_value[i].cx700_pll); | ||
1612 | break; | ||
1613 | |||
1614 | case UNICHROME_VX855: | ||
1615 | value = vx855_encode_pll(pll_value[i].vx855_pll); | ||
1616 | break; | ||
1388 | } | 1617 | } |
1389 | } | 1618 | } |
1390 | 1619 | ||
1391 | DEBUG_MSG(KERN_INFO "Can't find match PLL value\n\n"); | 1620 | return value; |
1392 | return 0; | ||
1393 | } | 1621 | } |
1394 | 1622 | ||
1395 | /* Set VCLK*/ | 1623 | /* Set VCLK*/ |
1396 | void viafb_set_vclock(u32 CLK, int set_iga) | 1624 | void viafb_set_vclock(u32 clk, int set_iga) |
1397 | { | 1625 | { |
1398 | /* H.W. Reset : ON */ | 1626 | /* H.W. Reset : ON */ |
1399 | viafb_write_reg_mask(CR17, VIACR, 0x00, BIT7); | 1627 | viafb_write_reg_mask(CR17, VIACR, 0x00, BIT7); |
@@ -1403,26 +1631,23 @@ void viafb_set_vclock(u32 CLK, int set_iga) | |||
1403 | switch (viaparinfo->chip_info->gfx_chip_name) { | 1631 | switch (viaparinfo->chip_info->gfx_chip_name) { |
1404 | case UNICHROME_CLE266: | 1632 | case UNICHROME_CLE266: |
1405 | case UNICHROME_K400: | 1633 | case UNICHROME_K400: |
1406 | viafb_write_reg(SR46, VIASR, CLK / 0x100); | 1634 | via_write_reg(VIASR, SR46, (clk & 0x00FF)); |
1407 | viafb_write_reg(SR47, VIASR, CLK % 0x100); | 1635 | via_write_reg(VIASR, SR47, (clk & 0xFF00) >> 8); |
1408 | break; | 1636 | break; |
1409 | 1637 | ||
1410 | case UNICHROME_K800: | 1638 | case UNICHROME_K800: |
1411 | case UNICHROME_PM800: | 1639 | case UNICHROME_PM800: |
1412 | case UNICHROME_CN700: | 1640 | case UNICHROME_CN700: |
1413 | case UNICHROME_CX700: | 1641 | case UNICHROME_CX700: |
1642 | case UNICHROME_CN750: | ||
1414 | case UNICHROME_K8M890: | 1643 | case UNICHROME_K8M890: |
1415 | case UNICHROME_P4M890: | 1644 | case UNICHROME_P4M890: |
1416 | case UNICHROME_P4M900: | 1645 | case UNICHROME_P4M900: |
1417 | case UNICHROME_VX800: | 1646 | case UNICHROME_VX800: |
1418 | case UNICHROME_VX855: | 1647 | case UNICHROME_VX855: |
1419 | viafb_write_reg(SR44, VIASR, CLK / 0x10000); | 1648 | via_write_reg(VIASR, SR44, (clk & 0x0000FF)); |
1420 | DEBUG_MSG(KERN_INFO "\nSR44=%x", CLK / 0x10000); | 1649 | via_write_reg(VIASR, SR45, (clk & 0x00FF00) >> 8); |
1421 | viafb_write_reg(SR45, VIASR, (CLK & 0xFFFF) / 0x100); | 1650 | via_write_reg(VIASR, SR46, (clk & 0xFF0000) >> 16); |
1422 | DEBUG_MSG(KERN_INFO "\nSR45=%x", | ||
1423 | (CLK & 0xFFFF) / 0x100); | ||
1424 | viafb_write_reg(SR46, VIASR, CLK % 0x100); | ||
1425 | DEBUG_MSG(KERN_INFO "\nSR46=%x", CLK % 0x100); | ||
1426 | break; | 1651 | break; |
1427 | } | 1652 | } |
1428 | } | 1653 | } |
@@ -1432,22 +1657,23 @@ void viafb_set_vclock(u32 CLK, int set_iga) | |||
1432 | switch (viaparinfo->chip_info->gfx_chip_name) { | 1657 | switch (viaparinfo->chip_info->gfx_chip_name) { |
1433 | case UNICHROME_CLE266: | 1658 | case UNICHROME_CLE266: |
1434 | case UNICHROME_K400: | 1659 | case UNICHROME_K400: |
1435 | viafb_write_reg(SR44, VIASR, CLK / 0x100); | 1660 | via_write_reg(VIASR, SR44, (clk & 0x00FF)); |
1436 | viafb_write_reg(SR45, VIASR, CLK % 0x100); | 1661 | via_write_reg(VIASR, SR45, (clk & 0xFF00) >> 8); |
1437 | break; | 1662 | break; |
1438 | 1663 | ||
1439 | case UNICHROME_K800: | 1664 | case UNICHROME_K800: |
1440 | case UNICHROME_PM800: | 1665 | case UNICHROME_PM800: |
1441 | case UNICHROME_CN700: | 1666 | case UNICHROME_CN700: |
1442 | case UNICHROME_CX700: | 1667 | case UNICHROME_CX700: |
1668 | case UNICHROME_CN750: | ||
1443 | case UNICHROME_K8M890: | 1669 | case UNICHROME_K8M890: |
1444 | case UNICHROME_P4M890: | 1670 | case UNICHROME_P4M890: |
1445 | case UNICHROME_P4M900: | 1671 | case UNICHROME_P4M900: |
1446 | case UNICHROME_VX800: | 1672 | case UNICHROME_VX800: |
1447 | case UNICHROME_VX855: | 1673 | case UNICHROME_VX855: |
1448 | viafb_write_reg(SR4A, VIASR, CLK / 0x10000); | 1674 | via_write_reg(VIASR, SR4A, (clk & 0x0000FF)); |
1449 | viafb_write_reg(SR4B, VIASR, (CLK & 0xFFFF) / 0x100); | 1675 | via_write_reg(VIASR, SR4B, (clk & 0x00FF00) >> 8); |
1450 | viafb_write_reg(SR4C, VIASR, CLK % 0x100); | 1676 | via_write_reg(VIASR, SR4C, (clk & 0xFF0000) >> 16); |
1451 | break; | 1677 | break; |
1452 | } | 1678 | } |
1453 | } | 1679 | } |
diff --git a/drivers/video/via/hw.h b/drivers/video/via/hw.h index a109de379816..c44399895294 100644 --- a/drivers/video/via/hw.h +++ b/drivers/video/via/hw.h | |||
@@ -700,12 +700,18 @@ struct _lcd_scaling_factor { | |||
700 | struct _lcd_ver_scaling_factor lcd_ver_scaling_factor; | 700 | struct _lcd_ver_scaling_factor lcd_ver_scaling_factor; |
701 | }; | 701 | }; |
702 | 702 | ||
703 | struct pll_config { | ||
704 | u16 multiplier; | ||
705 | u8 divisor; | ||
706 | u8 rshift; | ||
707 | }; | ||
708 | |||
703 | struct pll_map { | 709 | struct pll_map { |
704 | u32 clk; | 710 | u32 clk; |
705 | u32 cle266_pll; | 711 | struct pll_config cle266_pll; |
706 | u32 k800_pll; | 712 | struct pll_config k800_pll; |
707 | u32 cx700_pll; | 713 | struct pll_config cx700_pll; |
708 | u32 vx855_pll; | 714 | struct pll_config vx855_pll; |
709 | }; | 715 | }; |
710 | 716 | ||
711 | struct rgbLUT { | 717 | struct rgbLUT { |
diff --git a/drivers/video/via/share.h b/drivers/video/via/share.h index 7f0de7f006ad..2cbe1031b421 100644 --- a/drivers/video/via/share.h +++ b/drivers/video/via/share.h | |||
@@ -631,7 +631,6 @@ | |||
631 | #define CLK_25_175M 25175000 | 631 | #define CLK_25_175M 25175000 |
632 | #define CLK_26_880M 26880000 | 632 | #define CLK_26_880M 26880000 |
633 | #define CLK_29_581M 29581000 | 633 | #define CLK_29_581M 29581000 |
634 | #define CLK_31_490M 31490000 | ||
635 | #define CLK_31_500M 31500000 | 634 | #define CLK_31_500M 31500000 |
636 | #define CLK_31_728M 31728000 | 635 | #define CLK_31_728M 31728000 |
637 | #define CLK_32_668M 32688000 | 636 | #define CLK_32_668M 32688000 |
@@ -676,7 +675,6 @@ | |||
676 | #define CLK_119_000M 119000000 | 675 | #define CLK_119_000M 119000000 |
677 | #define CLK_121_750M 121750000 /* 121.704MHz */ | 676 | #define CLK_121_750M 121750000 /* 121.704MHz */ |
678 | #define CLK_125_104M 125104000 | 677 | #define CLK_125_104M 125104000 |
679 | #define CLK_133_308M 133308000 | ||
680 | #define CLK_135_000M 135000000 | 678 | #define CLK_135_000M 135000000 |
681 | #define CLK_136_700M 136700000 | 679 | #define CLK_136_700M 136700000 |
682 | #define CLK_138_400M 138400000 | 680 | #define CLK_138_400M 138400000 |
@@ -699,313 +697,6 @@ | |||
699 | #define CLK_172_798M 172798000 | 697 | #define CLK_172_798M 172798000 |
700 | #define CLK_122_614M 122614000 | 698 | #define CLK_122_614M 122614000 |
701 | 699 | ||
702 | /* CLE266 PLL value | ||
703 | */ | ||
704 | #define CLE266_PLL_25_175M 0x0000C763 | ||
705 | #define CLE266_PLL_26_880M 0x0000440F | ||
706 | #define CLE266_PLL_29_581M 0x00008421 | ||
707 | #define CLE266_PLL_31_490M 0x00004721 | ||
708 | #define CLE266_PLL_31_500M 0x0000C3B5 | ||
709 | #define CLE266_PLL_31_728M 0x0000471F | ||
710 | #define CLE266_PLL_32_668M 0x0000C449 | ||
711 | #define CLE266_PLL_36_000M 0x0000C5E5 | ||
712 | #define CLE266_PLL_40_000M 0x0000C459 | ||
713 | #define CLE266_PLL_41_291M 0x00004417 | ||
714 | #define CLE266_PLL_43_163M 0x0000C579 | ||
715 | #define CLE266_PLL_45_250M 0x0000C57F /* 45.46MHz */ | ||
716 | #define CLE266_PLL_46_000M 0x0000875A | ||
717 | #define CLE266_PLL_46_996M 0x0000C4E9 | ||
718 | #define CLE266_PLL_48_000M 0x00001443 | ||
719 | #define CLE266_PLL_48_875M 0x00001D63 | ||
720 | #define CLE266_PLL_49_500M 0x00008653 | ||
721 | #define CLE266_PLL_52_406M 0x0000C475 | ||
722 | #define CLE266_PLL_52_977M 0x00004525 | ||
723 | #define CLE266_PLL_56_250M 0x000047B7 | ||
724 | #define CLE266_PLL_60_466M 0x0000494C | ||
725 | #define CLE266_PLL_61_500M 0x00001456 | ||
726 | #define CLE266_PLL_65_000M 0x000086ED | ||
727 | #define CLE266_PLL_65_178M 0x0000855B | ||
728 | #define CLE266_PLL_66_750M 0x0000844B /* 67.116MHz */ | ||
729 | #define CLE266_PLL_68_179M 0x00000413 | ||
730 | #define CLE266_PLL_69_924M 0x00001153 | ||
731 | #define CLE266_PLL_70_159M 0x00001462 | ||
732 | #define CLE266_PLL_72_000M 0x00001879 | ||
733 | #define CLE266_PLL_74_270M 0x00004853 | ||
734 | #define CLE266_PLL_78_750M 0x00004321 | ||
735 | #define CLE266_PLL_80_136M 0x0000051C | ||
736 | #define CLE266_PLL_83_375M 0x0000C25D | ||
737 | #define CLE266_PLL_83_950M 0x00000729 | ||
738 | #define CLE266_PLL_84_750M 0x00008576 /* 84.537MHz */ | ||
739 | #define CLE266_PLL_85_860M 0x00004754 | ||
740 | #define CLE266_PLL_88_750M 0x0000051F | ||
741 | #define CLE266_PLL_94_500M 0x00000521 | ||
742 | #define CLE266_PLL_97_750M 0x00004652 | ||
743 | #define CLE266_PLL_101_000M 0x0000497F | ||
744 | #define CLE266_PLL_106_500M 0x00008477 /* 106.491463 MHz */ | ||
745 | #define CLE266_PLL_108_000M 0x00008479 | ||
746 | #define CLE266_PLL_113_309M 0x00000C5F | ||
747 | #define CLE266_PLL_118_840M 0x00004553 | ||
748 | #define CLE266_PLL_119_000M 0x00000D6C | ||
749 | #define CLE266_PLL_121_750M 0x00004555 /* 121.704MHz */ | ||
750 | #define CLE266_PLL_125_104M 0x000006B5 | ||
751 | #define CLE266_PLL_133_308M 0x0000465F | ||
752 | #define CLE266_PLL_135_000M 0x0000455E | ||
753 | #define CLE266_PLL_136_700M 0x00000C73 | ||
754 | #define CLE266_PLL_138_400M 0x00000957 | ||
755 | #define CLE266_PLL_146_760M 0x00004567 | ||
756 | #define CLE266_PLL_148_500M 0x00000853 | ||
757 | #define CLE266_PLL_153_920M 0x00000856 | ||
758 | #define CLE266_PLL_156_000M 0x0000456D | ||
759 | #define CLE266_PLL_157_500M 0x000005B7 | ||
760 | #define CLE266_PLL_162_000M 0x00004571 | ||
761 | #define CLE266_PLL_187_000M 0x00000976 | ||
762 | #define CLE266_PLL_193_295M 0x0000086C | ||
763 | #define CLE266_PLL_202_500M 0x00000763 | ||
764 | #define CLE266_PLL_204_000M 0x00000764 | ||
765 | #define CLE266_PLL_218_500M 0x0000065C | ||
766 | #define CLE266_PLL_234_000M 0x00000662 | ||
767 | #define CLE266_PLL_267_250M 0x00000670 | ||
768 | #define CLE266_PLL_297_500M 0x000005E6 | ||
769 | #define CLE266_PLL_74_481M 0x0000051A | ||
770 | #define CLE266_PLL_172_798M 0x00004579 | ||
771 | #define CLE266_PLL_122_614M 0x0000073C | ||
772 | |||
773 | /* K800 PLL value | ||
774 | */ | ||
775 | #define K800_PLL_25_175M 0x00539001 | ||
776 | #define K800_PLL_26_880M 0x001C8C80 | ||
777 | #define K800_PLL_29_581M 0x00409080 | ||
778 | #define K800_PLL_31_490M 0x006F9001 | ||
779 | #define K800_PLL_31_500M 0x008B9002 | ||
780 | #define K800_PLL_31_728M 0x00AF9003 | ||
781 | #define K800_PLL_32_668M 0x00909002 | ||
782 | #define K800_PLL_36_000M 0x009F9002 | ||
783 | #define K800_PLL_40_000M 0x00578C02 | ||
784 | #define K800_PLL_41_291M 0x00438C01 | ||
785 | #define K800_PLL_43_163M 0x00778C03 | ||
786 | #define K800_PLL_45_250M 0x007D8C83 /* 45.46MHz */ | ||
787 | #define K800_PLL_46_000M 0x00658C02 | ||
788 | #define K800_PLL_46_996M 0x00818C83 | ||
789 | #define K800_PLL_48_000M 0x00848C83 | ||
790 | #define K800_PLL_48_875M 0x00508C81 | ||
791 | #define K800_PLL_49_500M 0x00518C01 | ||
792 | #define K800_PLL_52_406M 0x00738C02 | ||
793 | #define K800_PLL_52_977M 0x00928C83 | ||
794 | #define K800_PLL_56_250M 0x007C8C02 | ||
795 | #define K800_PLL_60_466M 0x00A78C83 | ||
796 | #define K800_PLL_61_500M 0x00AA8C83 | ||
797 | #define K800_PLL_65_000M 0x006B8C01 | ||
798 | #define K800_PLL_65_178M 0x00B48C83 | ||
799 | #define K800_PLL_66_750M 0x00948C82 /* 67.116MHz */ | ||
800 | #define K800_PLL_68_179M 0x00708C01 | ||
801 | #define K800_PLL_69_924M 0x00C18C83 | ||
802 | #define K800_PLL_70_159M 0x00C28C83 | ||
803 | #define K800_PLL_72_000M 0x009F8C82 | ||
804 | #define K800_PLL_74_270M 0x00ce0c03 | ||
805 | #define K800_PLL_78_750M 0x00408801 | ||
806 | #define K800_PLL_80_136M 0x00428801 | ||
807 | #define K800_PLL_83_375M 0x005B0882 | ||
808 | #define K800_PLL_83_950M 0x00738803 | ||
809 | #define K800_PLL_84_750M 0x00748883 /* 84.477MHz */ | ||
810 | #define K800_PLL_85_860M 0x00768883 | ||
811 | #define K800_PLL_88_750M 0x007A8883 | ||
812 | #define K800_PLL_94_500M 0x00828803 | ||
813 | #define K800_PLL_97_750M 0x00878883 | ||
814 | #define K800_PLL_101_000M 0x008B8883 | ||
815 | #define K800_PLL_106_500M 0x00758882 /* 106.491463 MHz */ | ||
816 | #define K800_PLL_108_000M 0x00778882 | ||
817 | #define K800_PLL_113_309M 0x005D8881 | ||
818 | #define K800_PLL_118_840M 0x00A48883 | ||
819 | #define K800_PLL_119_000M 0x00838882 | ||
820 | #define K800_PLL_121_750M 0x00A88883 /* 121.704MHz */ | ||
821 | #define K800_PLL_125_104M 0x00688801 | ||
822 | #define K800_PLL_133_308M 0x005D8801 | ||
823 | #define K800_PLL_135_000M 0x001A4081 | ||
824 | #define K800_PLL_136_700M 0x00BD8883 | ||
825 | #define K800_PLL_138_400M 0x00728881 | ||
826 | #define K800_PLL_146_760M 0x00CC8883 | ||
827 | #define K800_PLL_148_500M 0x00ce0803 | ||
828 | #define K800_PLL_153_920M 0x00548482 | ||
829 | #define K800_PLL_156_000M 0x006B8483 | ||
830 | #define K800_PLL_157_500M 0x00142080 | ||
831 | #define K800_PLL_162_000M 0x006F8483 | ||
832 | #define K800_PLL_187_000M 0x00818483 | ||
833 | #define K800_PLL_193_295M 0x004F8481 | ||
834 | #define K800_PLL_202_500M 0x00538481 | ||
835 | #define K800_PLL_204_000M 0x008D8483 | ||
836 | #define K800_PLL_218_500M 0x00978483 | ||
837 | #define K800_PLL_234_000M 0x00608401 | ||
838 | #define K800_PLL_267_250M 0x006E8481 | ||
839 | #define K800_PLL_297_500M 0x00A48402 | ||
840 | #define K800_PLL_74_481M 0x007B8C81 | ||
841 | #define K800_PLL_172_798M 0x00778483 | ||
842 | #define K800_PLL_122_614M 0x00878882 | ||
843 | |||
844 | /* PLL for VT3324 */ | ||
845 | #define CX700_25_175M 0x008B1003 | ||
846 | #define CX700_26_719M 0x00931003 | ||
847 | #define CX700_26_880M 0x00941003 | ||
848 | #define CX700_29_581M 0x00A49003 | ||
849 | #define CX700_31_490M 0x00AE1003 | ||
850 | #define CX700_31_500M 0x00AE1003 | ||
851 | #define CX700_31_728M 0x00AF1003 | ||
852 | #define CX700_32_668M 0x00B51003 | ||
853 | #define CX700_36_000M 0x00C81003 | ||
854 | #define CX700_40_000M 0x006E0C03 | ||
855 | #define CX700_41_291M 0x00710C03 | ||
856 | #define CX700_43_163M 0x00770C03 | ||
857 | #define CX700_45_250M 0x007D0C03 /* 45.46MHz */ | ||
858 | #define CX700_46_000M 0x007F0C03 | ||
859 | #define CX700_46_996M 0x00818C83 | ||
860 | #define CX700_48_000M 0x00840C03 | ||
861 | #define CX700_48_875M 0x00508C81 | ||
862 | #define CX700_49_500M 0x00880C03 | ||
863 | #define CX700_52_406M 0x00730C02 | ||
864 | #define CX700_52_977M 0x00920C03 | ||
865 | #define CX700_56_250M 0x009B0C03 | ||
866 | #define CX700_60_466M 0x00460C00 | ||
867 | #define CX700_61_500M 0x00AA0C03 | ||
868 | #define CX700_65_000M 0x006B0C01 | ||
869 | #define CX700_65_178M 0x006B0C01 | ||
870 | #define CX700_66_750M 0x00940C02 /*67.116MHz */ | ||
871 | #define CX700_68_179M 0x00BC0C03 | ||
872 | #define CX700_69_924M 0x00C10C03 | ||
873 | #define CX700_70_159M 0x00C20C03 | ||
874 | #define CX700_72_000M 0x009F0C02 | ||
875 | #define CX700_74_270M 0x00CE0C03 | ||
876 | #define CX700_74_481M 0x00CE0C03 | ||
877 | #define CX700_78_750M 0x006C0803 | ||
878 | #define CX700_80_136M 0x006E0803 | ||
879 | #define CX700_83_375M 0x005B0882 | ||
880 | #define CX700_83_950M 0x00730803 | ||
881 | #define CX700_84_750M 0x00740803 /* 84.537Mhz */ | ||
882 | #define CX700_85_860M 0x00760803 | ||
883 | #define CX700_88_750M 0x00AC8885 | ||
884 | #define CX700_94_500M 0x00820803 | ||
885 | #define CX700_97_750M 0x00870803 | ||
886 | #define CX700_101_000M 0x008B0803 | ||
887 | #define CX700_106_500M 0x00750802 | ||
888 | #define CX700_108_000M 0x00950803 | ||
889 | #define CX700_113_309M 0x005D0801 | ||
890 | #define CX700_118_840M 0x00A40803 | ||
891 | #define CX700_119_000M 0x00830802 | ||
892 | #define CX700_121_750M 0x00420800 /* 121.704MHz */ | ||
893 | #define CX700_125_104M 0x00AD0803 | ||
894 | #define CX700_133_308M 0x00930802 | ||
895 | #define CX700_135_000M 0x00950802 | ||
896 | #define CX700_136_700M 0x00BD0803 | ||
897 | #define CX700_138_400M 0x00720801 | ||
898 | #define CX700_146_760M 0x00CC0803 | ||
899 | #define CX700_148_500M 0x00a40802 | ||
900 | #define CX700_153_920M 0x00540402 | ||
901 | #define CX700_156_000M 0x006B0403 | ||
902 | #define CX700_157_500M 0x006C0403 | ||
903 | #define CX700_162_000M 0x006F0403 | ||
904 | #define CX700_172_798M 0x00770403 | ||
905 | #define CX700_187_000M 0x00810403 | ||
906 | #define CX700_193_295M 0x00850403 | ||
907 | #define CX700_202_500M 0x008C0403 | ||
908 | #define CX700_204_000M 0x008D0403 | ||
909 | #define CX700_218_500M 0x00970403 | ||
910 | #define CX700_234_000M 0x00600401 | ||
911 | #define CX700_267_250M 0x00B90403 | ||
912 | #define CX700_297_500M 0x00CE0403 | ||
913 | #define CX700_122_614M 0x00870802 | ||
914 | |||
915 | /* PLL for VX855 */ | ||
916 | #define VX855_22_000M 0x007B1005 | ||
917 | #define VX855_25_175M 0x008D1005 | ||
918 | #define VX855_26_719M 0x00961005 | ||
919 | #define VX855_26_880M 0x00961005 | ||
920 | #define VX855_27_000M 0x00971005 | ||
921 | #define VX855_29_581M 0x00A51005 | ||
922 | #define VX855_29_829M 0x00641003 | ||
923 | #define VX855_31_490M 0x00B01005 | ||
924 | #define VX855_31_500M 0x00B01005 | ||
925 | #define VX855_31_728M 0x008E1004 | ||
926 | #define VX855_32_668M 0x00921004 | ||
927 | #define VX855_36_000M 0x00A11004 | ||
928 | #define VX855_40_000M 0x00700C05 | ||
929 | #define VX855_41_291M 0x00730C05 | ||
930 | #define VX855_43_163M 0x00790C05 | ||
931 | #define VX855_45_250M 0x007F0C05 /* 45.46MHz */ | ||
932 | #define VX855_46_000M 0x00670C04 | ||
933 | #define VX855_46_996M 0x00690C04 | ||
934 | #define VX855_48_000M 0x00860C05 | ||
935 | #define VX855_48_875M 0x00890C05 | ||
936 | #define VX855_49_500M 0x00530C03 | ||
937 | #define VX855_52_406M 0x00580C03 | ||
938 | #define VX855_52_977M 0x00940C05 | ||
939 | #define VX855_56_250M 0x009D0C05 | ||
940 | #define VX855_57_275M 0x009D8C85 /* Used by XO panel */ | ||
941 | #define VX855_60_466M 0x00A90C05 | ||
942 | #define VX855_61_500M 0x00AC0C05 | ||
943 | #define VX855_65_000M 0x006D0C03 | ||
944 | #define VX855_65_178M 0x00B60C05 | ||
945 | #define VX855_66_750M 0x00700C03 /*67.116MHz */ | ||
946 | #define VX855_67_295M 0x00BC0C05 | ||
947 | #define VX855_68_179M 0x00BF0C05 | ||
948 | #define VX855_68_369M 0x00BF0C05 | ||
949 | #define VX855_69_924M 0x00C30C05 | ||
950 | #define VX855_70_159M 0x00C30C05 | ||
951 | #define VX855_72_000M 0x00A10C04 | ||
952 | #define VX855_73_023M 0x00CC0C05 | ||
953 | #define VX855_74_481M 0x00D10C05 | ||
954 | #define VX855_78_750M 0x006E0805 | ||
955 | #define VX855_79_466M 0x006F0805 | ||
956 | #define VX855_80_136M 0x00700805 | ||
957 | #define VX855_81_627M 0x00720805 | ||
958 | #define VX855_83_375M 0x00750805 | ||
959 | #define VX855_83_527M 0x00750805 | ||
960 | #define VX855_83_950M 0x00750805 | ||
961 | #define VX855_84_537M 0x00760805 | ||
962 | #define VX855_84_750M 0x00760805 /* 84.537Mhz */ | ||
963 | #define VX855_85_500M 0x00760805 /* 85.909080 MHz*/ | ||
964 | #define VX855_85_860M 0x00760805 | ||
965 | #define VX855_85_909M 0x00760805 | ||
966 | #define VX855_88_750M 0x007C0805 | ||
967 | #define VX855_89_489M 0x007D0805 | ||
968 | #define VX855_94_500M 0x00840805 | ||
969 | #define VX855_96_648M 0x00870805 | ||
970 | #define VX855_97_750M 0x00890805 | ||
971 | #define VX855_101_000M 0x008D0805 | ||
972 | #define VX855_106_500M 0x00950805 | ||
973 | #define VX855_108_000M 0x00970805 | ||
974 | #define VX855_110_125M 0x00990805 | ||
975 | #define VX855_112_000M 0x009D0805 | ||
976 | #define VX855_113_309M 0x009F0805 | ||
977 | #define VX855_115_000M 0x00A10805 | ||
978 | #define VX855_118_840M 0x00A60805 | ||
979 | #define VX855_119_000M 0x00A70805 | ||
980 | #define VX855_121_750M 0x00AA0805 /* 121.704MHz */ | ||
981 | #define VX855_122_614M 0x00AC0805 | ||
982 | #define VX855_126_266M 0x00B10805 | ||
983 | #define VX855_130_250M 0x00B60805 /* 130.250 */ | ||
984 | #define VX855_135_000M 0x00BD0805 | ||
985 | #define VX855_136_700M 0x00BF0805 | ||
986 | #define VX855_137_750M 0x00C10805 | ||
987 | #define VX855_138_400M 0x00C20805 | ||
988 | #define VX855_144_300M 0x00CA0805 | ||
989 | #define VX855_146_760M 0x00CE0805 | ||
990 | #define VX855_148_500M 0x00D00805 | ||
991 | #define VX855_153_920M 0x00540402 | ||
992 | #define VX855_156_000M 0x006C0405 | ||
993 | #define VX855_156_867M 0x006E0405 | ||
994 | #define VX855_157_500M 0x006E0405 | ||
995 | #define VX855_162_000M 0x00710405 | ||
996 | #define VX855_172_798M 0x00790405 | ||
997 | #define VX855_187_000M 0x00830405 | ||
998 | #define VX855_193_295M 0x00870405 | ||
999 | #define VX855_202_500M 0x008E0405 | ||
1000 | #define VX855_204_000M 0x008F0405 | ||
1001 | #define VX855_218_500M 0x00990405 | ||
1002 | #define VX855_229_500M 0x00A10405 | ||
1003 | #define VX855_234_000M 0x00A40405 | ||
1004 | #define VX855_267_250M 0x00BB0405 | ||
1005 | #define VX855_297_500M 0x00D00405 | ||
1006 | #define VX855_339_500M 0x00770005 | ||
1007 | #define VX855_340_772M 0x00770005 | ||
1008 | |||
1009 | 700 | ||
1010 | /* Definition CRTC Timing Index */ | 701 | /* Definition CRTC Timing Index */ |
1011 | #define H_TOTAL_INDEX 0 | 702 | #define H_TOTAL_INDEX 0 |