FreeCalypso > hg > tcs211-fcmodem
comparison chipsetsw/drivers/drv_core/clkm/clkm.h @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:509db1a7b7b8 |
---|---|
1 /****************************************************************************** | |
2 TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION | |
3 | |
4 Property of Texas Instruments -- For Unrestricted Internal Use Only | |
5 Unauthorized reproduction and/or distribution is strictly prohibited. This | |
6 product is protected under copyright law and trade secret law as an | |
7 unpublished work. Created 1987, (C) Copyright 1997 Texas Instruments. All | |
8 rights reserved. | |
9 | |
10 | |
11 Filename : clkm.h | |
12 | |
13 Description : Header file for the CLKM module | |
14 | |
15 Project : drivers | |
16 | |
17 Author : pmonteil@tif.ti.com Patrice Monteil. | |
18 | |
19 Version number : 1.19 | |
20 | |
21 Date and time : 07/01/03 | |
22 | |
23 Previous delta : 10/19/01 15:25:25 | |
24 | |
25 SCCS file : /db/gsm_asp/db_ht96/dsp_0/gsw/rel_0/mcu_l1/release_gprs/mod/emu_p/EMU_P_FRED_CLOCK/drivers1/common/SCCS/s.clkm.h | |
26 | |
27 Sccs Id (SID) : '@(#) clkm.h 1.10 10/23/01 14:34:54 ' | |
28 | |
29 | |
30 *****************************************************************************/ | |
31 | |
32 #include "l1sw.cfg" | |
33 #include "chipset.cfg" | |
34 #include "board.cfg" | |
35 | |
36 #if (OP_L1_STANDALONE == 0) | |
37 #include "main/sys_types.h" | |
38 #else | |
39 #include "sys_types.h" | |
40 #endif | |
41 | |
42 #if (CHIPSET == 12) | |
43 #include "sys_map.h" | |
44 #endif | |
45 | |
46 #if (CHIPSET == 12) | |
47 #define CLKM_ARM_CLK C_MAP_CLKM_BASE /* CLKM registers addr. */ | |
48 #else | |
49 #define CLKM_ARM_CLK MEM_CLKM_ADDR /* CLKM ARM CLock Control reg.*/ | |
50 #endif | |
51 #define CLKM_MCLK_EN 0x0001 | |
52 | |
53 | |
54 #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
55 #define MASK_CLKIN 0x0006 | |
56 #endif | |
57 | |
58 #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
59 #define CLKM_CLKIN0 0x0002 // Mask to select between DPLL and VTCXO or CLKIN | |
60 #else | |
61 #define CLKM_LOW_FRQ 0x0002 // Mask to select low frequency input CLK_32K | |
62 #endif | |
63 #define CLKM_CLKIN_SEL 0x0004 // Mask to select between VTCXO and CLKIN | |
64 | |
65 #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
66 #define CLKM_ARM_MCLK_XP5 0x0008 // Mask to enable the 1.5 or 2.5 division factor | |
67 #define CLKM_MCLK_DIV 0x0070 // Mask to configure the division factor | |
68 #else | |
69 #define MASK_ARM_MCLK_1P5 0x0008 // Mask to enable the 1.5 division factor | |
70 #define CLKM_MCLK_DIV 0x0030 // Mask to configure the division factor | |
71 #endif | |
72 | |
73 #define CLKM_DEEP_PWR 0x0f00 // Mask to configure deep power | |
74 #define CLKM_DEEP_SLEEP 0x1000 // Mask to configure deep sleep | |
75 | |
76 #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
77 #define CLKM_SEL_DPLL 0x0000 // Selection of DPLL for ARM clock generation | |
78 #define CLKM_SEL_VTCXO 0x0001 // Selection of VTCXO for ARM clock generation | |
79 #define CLKM_SEL_CLKIN 0x0003 // Selection of CLKIN for ARM clock generation | |
80 | |
81 #define CLKM_ENABLE_XP5 0x0001 // Enable 1.5 or 2.5 division factor | |
82 #define CLKM_DISABLE_XP5 0x0000 // Disable 1.5 or 2.5 division factor | |
83 | |
84 #define CLKM_ARM_MCLK_DIV_OFFSET 4 // Offset of ARM_MCLK_DIV bits in CNTL_ARM_CLK register | |
85 | |
86 #define CLKM_ARM_CLK_RESET 0x1081 // Reset value of CNTL_ARM_CLK register | |
87 #endif | |
88 | |
89 #if (CHIPSET == 12) | |
90 #define CLKM_CNTL_ARM_CLK (C_MAP_CLKM_BASE + 0x00) | |
91 #define CLKM_CNTL_CLK (C_MAP_CLKM_BASE + 2) /* CLKM Clock Control reg. */ | |
92 #else | |
93 #define CLKM_CNTL_ARM_CLK (MEM_CLKM_ADDR + 0x00) | |
94 #define CLKM_CNTL_CLK (MEM_CLKM_ADDR + 2) /* CLKM Clock Control reg. */ | |
95 #endif | |
96 | |
97 #define CLKM_IRQ_DIS 0x0001 // IRQ clock is disabled and enabled according to the sleep command | |
98 #define CLKM_BRIDGE_DIS 0x0002 // BRIDGE clock is disabled and enabled according to the sleep command | |
99 #define CLKM_TIMER_DIS 0x0004 // TIMER clock is disabled and enabled according to the sleep command | |
100 #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
101 #define CLKM_DPLL_DIS 0x0008 // DPLL is set in IDLE when both DSP and ARM are respectively in IDLE3 and sleep mode | |
102 #else | |
103 #define CLKM_PLL_SEL 0x0008 // CLKIN input is connected to the PLL | |
104 #endif | |
105 #define CLKM_CLKOUT_EN 0x0010 // Enable CLKOUT(2:0) output clocks | |
106 #if (CHIPSET == 4) | |
107 #define CLKM_EN_IDLE3_FLG 0x0020 // DSP idle flag control the API wait state | |
108 #define CLKM_VTCXO_26 0x0040 // VTCXO is divided by 2 | |
109 #elif (CHIPSET == 6) | |
110 #define CLKM_VTCXO_26 0x0040 // VTCXO is divided by 2 | |
111 #elif (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12) | |
112 #define CLKM_EN_IDLE3_FLG 0x0020 // DSP idle flag control the API wait state | |
113 #define CLKM_VCLKOUT_2 0x0040 // VTCXO is divided by 2 | |
114 #define CLKM_VTCXO_2 0x0080 // Input clock to DPLL is divided by 2 | |
115 #endif | |
116 | |
117 #if (CHIPSET == 12) | |
118 #define CLKM_CNTL_RST (C_MAP_CLKM_BASE + 4) /* CLKM Reset Control reg. */ | |
119 #else | |
120 #define CLKM_CNTL_RST (MEM_CLKM_ADDR + 4) /* CLKM Reset Control reg. */ | |
121 #endif | |
122 #define CLKM_LEAD_RST 0x0002 | |
123 #define CLKM_EXT_RST 0x0004 | |
124 | |
125 #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
126 #define DPLL_LOCK 0x0001 // Mask of DPLL lock status | |
127 #define DPLL_BYPASS_DIV 0x000C // Mask of bypass mode configuration | |
128 #define DPLL_PLL_ENABLE 0x0010 // Enable DPLL | |
129 #define DPLL_PLL_DIV 0x0060 // Mask of division factor configuration | |
130 #define DPLL_PLL_MULT 0x0F80 // Mask of multiply factor configuration | |
131 | |
132 #define DPLL_BYPASS_DIV_1 0x00 // Configuration of bypass mode divided by 1 | |
133 #define DPLL_BYPASS_DIV_2 0x01 // Configuration of bypass mode divided by 2 | |
134 #define DPLL_BYPASS_DIV_4 0x10 // Configuration of bypass mode divided by 4 | |
135 | |
136 #define DPLL_BYPASS_DIV_OFFSET 2 // Offset of bypass bits configuration | |
137 #define DPLL_PLL_DIV_OFFSET 5 // Offset of division bits configuration | |
138 #define DPLL_PLL_MULT_OFFSET 7 // Offset of multiply bits configuration | |
139 | |
140 #define DPLL_LOCK_DIV_1 0x0000 // Divide by 1 when DPLL is locked | |
141 #define DPLL_LOCK_DIV_2 0x0001 // Divide by 2 when DPLL is locked | |
142 #define DPLL_LOCK_DIV_3 0x0002 // Divide by 3 when DPLL is locked | |
143 #define DPLL_LOCK_DIV_4 0x0003 // Divide by 4 when DPLL is locked | |
144 | |
145 #else | |
146 #define CLKM_LEAD_PLL_CNTL (MEM_CLKM_ADDR + 6) /* Lead PLL */ | |
147 #define CLKM_PLONOFF 0x0001 // PLL enable signal | |
148 #define CLKM_PLMUL 0x001e // Mask of multiply factor configuration | |
149 #define CLKM_PLLNDIV 0x0020 // PLL or divide mode selection | |
150 #define CLKM_PLDIV 0x0040 // Mask of multiply factor configuration | |
151 #define CLKM_LEAD_PLL_CNTL_MSK 0x00ef // Mask of PLL control register | |
152 #endif | |
153 | |
154 #if (CHIPSET == 12) | |
155 #define CLKM_CNTL_CLK_DSP (C_MAP_CLKM_BASE + 0x8A) /* CLKM CNTL_CLK_REG register */ | |
156 | |
157 #define CLKM_NB_DSP_DIV_VALUE 4 | |
158 | |
159 #define CLKM_DSP_DIV_1 0x00 | |
160 #define CLKM_DSP_DIV_1_5 0x01 | |
161 #define CLKM_DSP_DIV_2 0x02 | |
162 #define CLKM_DSP_DIV_3 0x03 | |
163 | |
164 #define CLKM_DSP_DIV_MASK 0x0003 | |
165 | |
166 extern const double dsp_div_value[CLKM_NB_DSP_DIV_VALUE]; | |
167 | |
168 /*--------------------------------------------------------------- | |
169 * CLKM_DSP_DIV_FACTOR() | |
170 *-------------------------------------------------------------- | |
171 * Parameters : none | |
172 * Return : none | |
173 * Functionality : Set the DSP division factor | |
174 *--------------------------------------------------------------*/ | |
175 | |
176 #define CLKM_DSP_DIV_FACTOR(d_dsp_div) (* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK_DSP = d_dsp_div) | |
177 | |
178 | |
179 /*--------------------------------------------------------------- | |
180 * CLKM_READ_DSP_DIV() | |
181 *-------------------------------------------------------------- | |
182 * Parameters : none | |
183 * Return : none | |
184 * Functionality : Read DSP division factor | |
185 *--------------------------------------------------------------*/ | |
186 | |
187 #define CLKM_READ_DSP_DIV ((* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK_DSP) & CLKM_DSP_DIV_MASK) | |
188 | |
189 #define CLKM_GET_DSP_DIV_VALUE dsp_div_value[CLKM_READ_DSP_DIV] | |
190 | |
191 #endif | |
192 | |
193 | |
194 /*--------------------------------------------------------------- | |
195 * CLKM_SETLEADRESET() | |
196 *-------------------------------------------------------------- | |
197 * Parameters : none | |
198 * Return : none | |
199 * Functionality : Set the LEAD reset signal | |
200 *--------------------------------------------------------------*/ | |
201 | |
202 #define CLKM_SETLEADRESET (* (volatile SYS_UWORD16 *) CLKM_CNTL_RST |= CLKM_LEAD_RST) | |
203 | |
204 /*--------------------------------------------------------------- | |
205 * CLKM_RELEASELEADRESET() | |
206 *-------------------------------------------------------------- | |
207 * Parameters : none | |
208 * Return : none | |
209 * Functionality : Release the LEAD reset signal | |
210 *--------------------------------------------------------------*/ | |
211 | |
212 #define CLKM_RELEASELEADRESET (* (volatile SYS_UWORD16 *) CLKM_CNTL_RST &= ~CLKM_LEAD_RST) | |
213 | |
214 /*--------------------------------------------------------------- | |
215 * CLKM_SETEXTRESET() | |
216 *-------------------------------------------------------------- | |
217 * Parameters : none | |
218 * Return : none | |
219 * Functionality : Set the external reset signal | |
220 *--------------------------------------------------------------*/ | |
221 | |
222 #define CLKM_SETEXTRESET ( * (volatile SYS_UWORD16 *) CLKM_CNTL_RST |= CLKM_EXT_RST) | |
223 | |
224 /*--------------------------------------------------------------- | |
225 * CLKM_CLEAREXTRESET() | |
226 *-------------------------------------------------------------- | |
227 * Parameters : none | |
228 * Return : none | |
229 * Functionality : Clear the external reset signal | |
230 *--------------------------------------------------------------*/ | |
231 | |
232 #define CLKM_CLEAREXTRESET (* (volatile SYS_UWORD16 *) CLKM_CNTL_RST &= ~CLKM_EXT_RST) | |
233 | |
234 | |
235 /*--------------------------------------------------------------- | |
236 * CLKM_POWERDOWNARM() | |
237 *-------------------------------------------------------------- | |
238 * Parameters : none | |
239 * Return : none | |
240 * Functionality : Power down the ARM mcu | |
241 *--------------------------------------------------------------*/ | |
242 #define CLKM_POWERDOWNARM (* (volatile SYS_UWORD16 *) CLKM_ARM_CLK &= ~CLKM_MCLK_EN) | |
243 | |
244 /*--------------------------------------------------------------- | |
245 * CLKM_SET1P5() | |
246 *-------------------------------------------------------------- | |
247 * Parameters : none | |
248 * Return : none | |
249 * Functionality : Set ARM_MCLK_1P5 bit | |
250 *--------------------------------------------------------------*/ | |
251 | |
252 #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
253 #define CLKM_SETXP5 ( * (volatile SYS_UWORD16 *) CLKM_ARM_CLK |= CLKM_ARM_MCLK_XP5) | |
254 #else | |
255 #define CLKM_SET1P5 ( * (volatile SYS_UWORD16 *) CLKM_ARM_CLK |= 0x0008) | |
256 #endif | |
257 | |
258 /*--------------------------------------------------------------- | |
259 * CLKM_RESET1P5() | |
260 *-------------------------------------------------------------- | |
261 * Parameters : none | |
262 * Return : none | |
263 * Functionality : Reset ARM_MCLK_1P5 bit | |
264 *--------------------------------------------------------------*/ | |
265 | |
266 #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
267 #define CLKM_RESETXP5 ( * (volatile SYS_UWORD16 *) CLKM_ARM_CLK &= ~CLKM_ARM_MCLK_XP5) | |
268 #else | |
269 #define CLKM_RESET1P5 ( * (volatile SYS_UWORD16 *) CLKM_ARM_CLK &= 0xfff7) | |
270 #endif | |
271 | |
272 /*--------------------------------------------------------------- | |
273 * CLKM_INITCNTL() | |
274 *-------------------------------------------------------------- | |
275 * Parameters : value to write in the CNTL register | |
276 * Return : none | |
277 * Functionality :Initialize the CLKM Control Clock register | |
278 *--------------------------------------------------------------*/ | |
279 | |
280 #define CLKM_INITCNTL(value) (* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK |= value) | |
281 | |
282 | |
283 #if ((CHIPSET != 4) && (CHIPSET != 7) && (CHIPSET != 8) && (CHIPSET != 10) && (CHIPSET != 11) && (CHIPSET != 12)) | |
284 /*--------------------------------------------------------------- | |
285 * CLKM_INITLEADPLL() | |
286 *-------------------------------------------------------------- | |
287 * Parameters : value to write in the CNTL_PLL LEAD register | |
288 * Return : none | |
289 * Functionality :Initialize LEAD PLL control register | |
290 *--------------------------------------------------------------*/ | |
291 | |
292 #define CLKM_INITLEADPLL(value) (* (volatile SYS_UWORD16 *) CLKM_LEAD_PLL_CNTL = value) | |
293 #endif | |
294 | |
295 #if ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
296 /*-------------------------------------------------------------- | |
297 * CLKM_DPLL_SWITH_OFF_MODE_CONFIG() | |
298 *-------------------------------------------------------------- | |
299 * Parameters : None | |
300 * Return : none | |
301 * Functionality : Configure DPLL switch off mode | |
302 *--------------------------------------------------------------*/ | |
303 | |
304 #define CLKM_DPLL_SWITH_OFF_MODE_CONFIG (* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK |= \ | |
305 (CLKM_DPLL_DIS | CLKM_IRQ_DIS | CLKM_BRIDGE_DIS | CLKM_TIMER_DIS)) | |
306 | |
307 /*-------------------------------------------------------------- | |
308 * CLKM_RESET_DPLL_SWITH_OFF_MODE_CONFIG() | |
309 *-------------------------------------------------------------- | |
310 * Parameters : None | |
311 * Return : none | |
312 * Functionality : Reset configuration of DPLL switch off mode | |
313 *--------------------------------------------------------------*/ | |
314 | |
315 #define CLKM_RESET_DPLL_SWITH_OFF_MODE_CONFIG (* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK &=\ | |
316 ~(CLKM_DPLL_DIS | CLKM_IRQ_DIS | CLKM_BRIDGE_DIS | CLKM_TIMER_DIS)) | |
317 | |
318 /*-------------------------------------------------------------- | |
319 * CLKM_FORCE_API_HOM_IN_IDLE3() | |
320 *-------------------------------------------------------------- | |
321 * Parameters : None | |
322 * Return : none | |
323 * Functionality : SAM/HOM wait-state register force to HOM when | |
324 * DSP is in IDLE3 mode */ | |
325 /*--------------------------------------------------------------*/ | |
326 | |
327 #define CLKM_FORCE_API_HOM_IN_IDLE3 (* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK |= (CLKM_EN_IDLE3_FLG)) | |
328 | |
329 #if (CHIPSET == 4) | |
330 /*-------------------------------------------------------------- | |
331 * CLKM_USE_VTCXO_26MHZ() | |
332 *-------------------------------------------------------------- | |
333 * Parameters : None | |
334 * Return : none | |
335 * Functionality : Divide by 2 the clock used by the peripheral | |
336 * when using external VTCXO at 26 MHz instead | |
337 * of 13MHz | |
338 *--------------------------------------------------------------*/ | |
339 | |
340 #define CLKM_USE_VTCXO_26MHZ (* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK |= (CLKM_VTCXO_26)) | |
341 | |
342 /*-------------------------------------------------------------- | |
343 * CLKM_UNUSED_VTCXO_26MHZ() | |
344 *-------------------------------------------------------------- | |
345 * Parameters : None | |
346 * Return : none | |
347 * Functionality : Use VTCXO=13MHz | |
348 *--------------------------------------------------------------*/ | |
349 | |
350 #define CLKM_UNUSED_VTCXO_26MHZ (* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK &= ~(CLKM_VTCXO_26)) | |
351 #elif (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12) | |
352 /*-------------------------------------------------------------- | |
353 * CLKM_UNUSED_VTCXO_26MHZ() | |
354 *-------------------------------------------------------------- | |
355 * Parameters : None | |
356 * Return : none | |
357 * Functionality : Use VTCXO=13MHz | |
358 *--------------------------------------------------------------*/ | |
359 | |
360 #define CLKM_USE_VTCXO_26MHZ (* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK |= (CLKM_VTCXO_2)) | |
361 | |
362 #define CLKM_UNUSED_VTCXO_26MHZ (* (volatile SYS_UWORD16 *) CLKM_CNTL_CLK &= ~(CLKM_VCLKOUT_2 | CLKM_VTCXO_2)) | |
363 #endif | |
364 | |
365 #if (CHIPSET == 12) | |
366 #define DPLL_SET_PLL_ENABLE (* (volatile SYS_UWORD16 *) C_MAP_DPLL_BASE |= DPLL_PLL_ENABLE) | |
367 #define DPLL_RESET_PLL_ENABLE (* (volatile SYS_UWORD16 *) C_MAP_DPLL_BASE &= ~DPLL_PLL_ENABLE) | |
368 | |
369 #define DPLL_INIT_BYPASS_MODE(d_bypass_mode) { \ | |
370 *((volatile SYS_UWORD16 *) C_MAP_DPLL_BASE) &= ~DPLL_BYPASS_DIV; \ | |
371 *((volatile SYS_UWORD16 *) C_MAP_DPLL_BASE) |= (d_bypass_mode << DPLL_BYPASS_DIV_OFFSET); \ | |
372 } | |
373 | |
374 #define DPLL_INIT_DPLL_CLOCK(d_pll_div, d_pll_mult) { \ | |
375 *((volatile SYS_UWORD16 *) C_MAP_DPLL_BASE) &= ~(DPLL_PLL_DIV | DPLL_PLL_MULT); \ | |
376 *((volatile SYS_UWORD16 *) C_MAP_DPLL_BASE) |= (d_pll_div << DPLL_PLL_DIV_OFFSET) |\ | |
377 (d_pll_mult << DPLL_PLL_MULT_OFFSET); \ | |
378 } | |
379 | |
380 #define DPLL_READ_DPLL_DIV ( ((* (volatile SYS_UWORD16 *) C_MAP_DPLL_BASE) & DPLL_PLL_DIV) >> DPLL_PLL_DIV_OFFSET) | |
381 #define DPLL_READ_DPLL_MUL ( ((* (volatile SYS_UWORD16 *) C_MAP_DPLL_BASE) & DPLL_PLL_MULT)>> DPLL_PLL_MULT_OFFSET) | |
382 #define DPLL_READ_DPLL_LOCK ( (* (volatile SYS_UWORD16 *) C_MAP_DPLL_BASE) & DPLL_LOCK) | |
383 #else | |
384 #define DPLL_SET_PLL_ENABLE (* (volatile SYS_UWORD16 *) MEM_DPLL_ADDR |= DPLL_PLL_ENABLE) | |
385 #define DPLL_RESET_PLL_ENABLE (* (volatile SYS_UWORD16 *) MEM_DPLL_ADDR &= ~DPLL_PLL_ENABLE) | |
386 | |
387 #define DPLL_INIT_BYPASS_MODE(d_bypass_mode) { \ | |
388 *((volatile SYS_UWORD16 *) MEM_DPLL_ADDR) &= ~DPLL_BYPASS_DIV; \ | |
389 *((volatile SYS_UWORD16 *) MEM_DPLL_ADDR) |= (d_bypass_mode << DPLL_BYPASS_DIV_OFFSET); \ | |
390 } | |
391 | |
392 #define DPLL_INIT_DPLL_CLOCK(d_pll_div, d_pll_mult) { \ | |
393 *((volatile SYS_UWORD16 *) MEM_DPLL_ADDR) &= ~(DPLL_PLL_DIV | DPLL_PLL_MULT); \ | |
394 *((volatile SYS_UWORD16 *) MEM_DPLL_ADDR) |= (d_pll_div << DPLL_PLL_DIV_OFFSET) |\ | |
395 (d_pll_mult << DPLL_PLL_MULT_OFFSET); \ | |
396 } | |
397 | |
398 #define DPLL_READ_DPLL_DIV ( ((* (volatile SYS_UWORD16 *) MEM_DPLL_ADDR) & DPLL_PLL_DIV) >> DPLL_PLL_DIV_OFFSET) | |
399 #define DPLL_READ_DPLL_MUL ( ((* (volatile SYS_UWORD16 *) MEM_DPLL_ADDR) & DPLL_PLL_MULT)>> DPLL_PLL_MULT_OFFSET) | |
400 #define DPLL_READ_DPLL_LOCK ( (* (volatile SYS_UWORD16 *) MEM_DPLL_ADDR) & DPLL_LOCK) | |
401 #endif /* (CHIPSET == 12) */ | |
402 | |
403 | |
404 #endif | |
405 | |
406 /* ----- Prototypes ----- */ | |
407 | |
408 #if (BOARD == 34) | |
409 void CLKM_InitARMClock(int src, int div); | |
410 #elif ((CHIPSET == 4) || (CHIPSET == 7) || (CHIPSET == 8) || (CHIPSET == 10) || (CHIPSET == 11) || (CHIPSET == 12)) | |
411 void CLKM_InitARMClock(SYS_UWORD16 clk_src, SYS_UWORD16 clk_div, SYS_UWORD16 clk_xp5); | |
412 #else | |
413 void CLKM_InitARMClock(SYS_UWORD16 clk_src, SYS_UWORD16 clk_div); | |
414 #endif | |
415 | |
416 #if (BOARD == 34) | |
417 void CLKM_SetMclkDiv(int div); | |
418 void CLKM_EnableDPLL(int enable); | |
419 void CLKM_EnableSharedMemClock(int enable); | |
420 void CLKM_InitLeadClock(int onoff, int mul, int ndiv, int div); | |
421 #endif | |
422 | |
423 void wait_ARM_cycles(SYS_UWORD32 cpt_loop); | |
424 void initialize_wait_loop(void); | |
425 SYS_UWORD32 convert_nanosec_to_cycles(SYS_UWORD32 time); | |
426 |