111 else
112 {
113 clkdiv = clk_power->CLKDIVN;
114 camdiv = clk_power->CAMDIVN;
115
116 /* 计算分频比 */
117
118 switch (clkdiv & S3C2440_CLKDIVN_HDIVN_MASK) {
119 case S3C2440_CLKDIVN_HDIVN_1:
120 hdiv = 1;
121 break;
122
123 case S3C2440_CLKDIVN_HDIVN_2:
124 hdiv = 2;
125 break;
126
127 case S3C2440_CLKDIVN_HDIVN_4_8:
128 hdiv = (camdiv & S3C2440_CAMDIVN_HCLK4_HALF) ? 8 : 4;
129 break;
130
131 case S3C2440_CLKDIVN_HDIVN_3_6:
132 hdiv = (camdiv & S3C2440_CAMDIVN_HCLK3_HALF) ? 6 : 3;
133 break;
134 }
135
136 return get_FCLK() / hdiv;
137 }
138 }
139
140 /* return PCLK frequency */
141 ulong get_PCLK(void)
142 {
143 S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
144 unsigned long clkdiv;
145 unsigned long camdiv;
146 int hdiv = 1;
147
148 /* 同时支持S3C2410和S3C2440, by */
149 if (gd->bd->bi_arch_number == MACH_TYPE_SMDK2410)
150 return((clk_power->CLKDIVN & 0x1) ? get_HCLK()/2 : get_HCLK());
151 else
152 {
153 clkdiv = clk_power->CLKDIVN;
154 camdiv = clk_power->CAMDIVN;
155
156 /* 计算分频比 */
157
158 switch (clkdiv & S3C2440_CLKDIVN_HDIVN_MASK) {
159 case S3C2440_CLKDIVN_HDIVN_1:
160 hdiv = 1;
161 break;
162
163 case S3C2440_CLKDIVN_HDIVN_2:
164 hdiv = 2;
165 break;
166
167 case S3C2440_CLKDIVN_HDIVN_4_8:
168 hdiv = (camdiv & S3C2440_CAMDIVN_HCLK4_HALF) ? 8 : 4;
169 break;
170
171 case S3C2440_CLKDIVN_HDIVN_3_6:
172 hdiv = (camdiv & S3C2440_CAMDIVN_HCLK3_HALF) ? 6 : 3;
173 break;
174 }
175
176 return get_FCLK() / hdiv / ((clkdiv & S3C2440_CLKDIVN_PDIVN)? 2:1);
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-65990-21.html
网友们理智多了
不会再拖了
我们的卫星雷达预警系统