source: svn/trunk/newcon3bcm2_21bu/dta/src/bootloader7574/clocks.c @ 31

Last change on this file since 31 was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 17.2 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2011, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile: $
11 * $brcm_Revision: $
12 * $brcm_Date: $
13 *
14 * Module Description: Setup MEMC ARB client and Clocks
15 *
16 * Revision History:
17 *
18 * $brcm_Log: $
19 *
20 *
21 ***************************************************************************/
22#include "bstd.h"
23#include "bmips.h"
24#include "bchp_common.h"
25#include "bchp_clkgen.h"
26#include "bchp_memc_arb_0.h"
27#include "memc_0_1_core_val.h"
28
29#include "bchp_aon_ctrl.h"
30#include "bchp_ufe_afe.h"
31#include "bchp_gio_aon.h"
32
33/* Description:
34 * set_memc0_rts_val and set_clocks_for_profile is coming from
35 * CFE's bcm97358_devs.c
36 *
37 * ARB_0_CLIENT value is defined in memc_0_1_core_val.h
38 * CLOCK info comes from bootloader.mk
39 */
40
41void set_memc0_rts_val(void)
42{
43        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_0) = BCHP_MEMC_ARB_0_CLIENT_INFO_0_VAL;
44
45        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_1) = BCHP_MEMC_ARB_0_CLIENT_INFO_1_VAL;
46
47        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_2) = BCHP_MEMC_ARB_0_CLIENT_INFO_2_VAL;
48
49        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_3) = BCHP_MEMC_ARB_0_CLIENT_INFO_3_VAL;
50
51        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_4) = BCHP_MEMC_ARB_0_CLIENT_INFO_4_VAL;
52
53        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_5) = BCHP_MEMC_ARB_0_CLIENT_INFO_5_VAL;
54
55        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_6) = BCHP_MEMC_ARB_0_CLIENT_INFO_6_VAL;
56
57        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_7) = BCHP_MEMC_ARB_0_CLIENT_INFO_7_VAL;
58
59        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_8) = BCHP_MEMC_ARB_0_CLIENT_INFO_8_VAL;
60
61        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_9) = BCHP_MEMC_ARB_0_CLIENT_INFO_9_VAL;
62
63        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_10) = BCHP_MEMC_ARB_0_CLIENT_INFO_10_VAL;
64
65        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_11) = BCHP_MEMC_ARB_0_CLIENT_INFO_11_VAL;
66
67        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_12) = BCHP_MEMC_ARB_0_CLIENT_INFO_12_VAL;
68
69        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_13) = BCHP_MEMC_ARB_0_CLIENT_INFO_13_VAL;
70
71        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_14) = BCHP_MEMC_ARB_0_CLIENT_INFO_14_VAL;
72
73        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_15) = BCHP_MEMC_ARB_0_CLIENT_INFO_15_VAL;
74
75        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_16) = BCHP_MEMC_ARB_0_CLIENT_INFO_16_VAL;
76
77        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_17) = BCHP_MEMC_ARB_0_CLIENT_INFO_17_VAL;
78
79        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_18) = BCHP_MEMC_ARB_0_CLIENT_INFO_18_VAL;
80
81        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_19) = BCHP_MEMC_ARB_0_CLIENT_INFO_19_VAL;
82
83        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_20) = BCHP_MEMC_ARB_0_CLIENT_INFO_20_VAL;
84
85        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_21) = BCHP_MEMC_ARB_0_CLIENT_INFO_21_VAL;
86
87        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_22) = BCHP_MEMC_ARB_0_CLIENT_INFO_22_VAL;
88
89        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_23) = BCHP_MEMC_ARB_0_CLIENT_INFO_23_VAL;
90
91        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_24) = BCHP_MEMC_ARB_0_CLIENT_INFO_24_VAL;
92
93        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_25) = BCHP_MEMC_ARB_0_CLIENT_INFO_25_VAL;
94
95        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_26) = BCHP_MEMC_ARB_0_CLIENT_INFO_26_VAL;
96
97        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_27) = BCHP_MEMC_ARB_0_CLIENT_INFO_27_VAL;
98
99        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_28) = BCHP_MEMC_ARB_0_CLIENT_INFO_28_VAL;
100
101        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_29) = BCHP_MEMC_ARB_0_CLIENT_INFO_29_VAL;
102
103        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_30) = BCHP_MEMC_ARB_0_CLIENT_INFO_30_VAL;
104
105        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_31) = BCHP_MEMC_ARB_0_CLIENT_INFO_31_VAL;
106
107        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_32) = BCHP_MEMC_ARB_0_CLIENT_INFO_32_VAL;
108
109        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_33) = BCHP_MEMC_ARB_0_CLIENT_INFO_33_VAL;
110
111        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_34) = BCHP_MEMC_ARB_0_CLIENT_INFO_34_VAL;
112
113        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_35) = BCHP_MEMC_ARB_0_CLIENT_INFO_35_VAL;
114
115        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_36) = BCHP_MEMC_ARB_0_CLIENT_INFO_36_VAL;
116
117        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_37) = BCHP_MEMC_ARB_0_CLIENT_INFO_37_VAL;
118
119        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_38) = BCHP_MEMC_ARB_0_CLIENT_INFO_38_VAL;
120
121        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_39) = BCHP_MEMC_ARB_0_CLIENT_INFO_39_VAL;
122
123        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_40) = BCHP_MEMC_ARB_0_CLIENT_INFO_40_VAL;
124
125        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_41) = BCHP_MEMC_ARB_0_CLIENT_INFO_41_VAL;
126
127        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_42) = BCHP_MEMC_ARB_0_CLIENT_INFO_42_VAL;
128
129        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_43) = BCHP_MEMC_ARB_0_CLIENT_INFO_43_VAL;
130
131        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_44) = BCHP_MEMC_ARB_0_CLIENT_INFO_44_VAL;
132
133        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_45) = BCHP_MEMC_ARB_0_CLIENT_INFO_45_VAL;
134
135        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_46) = BCHP_MEMC_ARB_0_CLIENT_INFO_46_VAL;
136
137        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_47) = BCHP_MEMC_ARB_0_CLIENT_INFO_47_VAL;
138
139        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_48) = BCHP_MEMC_ARB_0_CLIENT_INFO_48_VAL;
140
141        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_49) = BCHP_MEMC_ARB_0_CLIENT_INFO_49_VAL;
142
143        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_50) = BCHP_MEMC_ARB_0_CLIENT_INFO_50_VAL;
144
145        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_51) = BCHP_MEMC_ARB_0_CLIENT_INFO_51_VAL;
146
147        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_52) = BCHP_MEMC_ARB_0_CLIENT_INFO_52_VAL;
148
149        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_53) = BCHP_MEMC_ARB_0_CLIENT_INFO_53_VAL;
150
151        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_54) = BCHP_MEMC_ARB_0_CLIENT_INFO_54_VAL;
152
153        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_55) = BCHP_MEMC_ARB_0_CLIENT_INFO_55_VAL;
154
155        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_56) = BCHP_MEMC_ARB_0_CLIENT_INFO_56_VAL;
156
157        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_57) = BCHP_MEMC_ARB_0_CLIENT_INFO_57_VAL;
158
159        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_58) = BCHP_MEMC_ARB_0_CLIENT_INFO_58_VAL;
160
161        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_59) = BCHP_MEMC_ARB_0_CLIENT_INFO_59_VAL;
162
163        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_60) = BCHP_MEMC_ARB_0_CLIENT_INFO_60_VAL;
164
165        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_61) = BCHP_MEMC_ARB_0_CLIENT_INFO_61_VAL;
166
167        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_62) = BCHP_MEMC_ARB_0_CLIENT_INFO_62_VAL;
168
169        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_63) = BCHP_MEMC_ARB_0_CLIENT_INFO_63_VAL;
170
171        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_64) = BCHP_MEMC_ARB_0_CLIENT_INFO_64_VAL;
172
173        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_65) = BCHP_MEMC_ARB_0_CLIENT_INFO_65_VAL;
174
175        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_66) = BCHP_MEMC_ARB_0_CLIENT_INFO_66_VAL;
176
177        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_67) = BCHP_MEMC_ARB_0_CLIENT_INFO_67_VAL;
178
179        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_68) = BCHP_MEMC_ARB_0_CLIENT_INFO_68_VAL;
180
181        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_69) = BCHP_MEMC_ARB_0_CLIENT_INFO_69_VAL;
182
183        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_70) = BCHP_MEMC_ARB_0_CLIENT_INFO_70_VAL;
184
185        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_71) = BCHP_MEMC_ARB_0_CLIENT_INFO_71_VAL;
186
187        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_72) = BCHP_MEMC_ARB_0_CLIENT_INFO_72_VAL;
188
189        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_73) = BCHP_MEMC_ARB_0_CLIENT_INFO_73_VAL;
190
191        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_74) = BCHP_MEMC_ARB_0_CLIENT_INFO_74_VAL;
192
193        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_75) = BCHP_MEMC_ARB_0_CLIENT_INFO_75_VAL;
194
195        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_76) = BCHP_MEMC_ARB_0_CLIENT_INFO_76_VAL;
196
197        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_77) = BCHP_MEMC_ARB_0_CLIENT_INFO_77_VAL;
198
199        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_78) = BCHP_MEMC_ARB_0_CLIENT_INFO_78_VAL;
200
201        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_79) = BCHP_MEMC_ARB_0_CLIENT_INFO_79_VAL;
202
203        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_80) = BCHP_MEMC_ARB_0_CLIENT_INFO_80_VAL;
204
205        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_81) = BCHP_MEMC_ARB_0_CLIENT_INFO_81_VAL;
206
207        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_82) = BCHP_MEMC_ARB_0_CLIENT_INFO_82_VAL;
208
209        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_83) = BCHP_MEMC_ARB_0_CLIENT_INFO_83_VAL;
210
211        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_84) = BCHP_MEMC_ARB_0_CLIENT_INFO_84_VAL;
212
213        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_85) = BCHP_MEMC_ARB_0_CLIENT_INFO_85_VAL;
214
215        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_86) = BCHP_MEMC_ARB_0_CLIENT_INFO_86_VAL;
216
217        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_87) = BCHP_MEMC_ARB_0_CLIENT_INFO_87_VAL;
218
219        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_88) = BCHP_MEMC_ARB_0_CLIENT_INFO_88_VAL;
220
221        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_89) = BCHP_MEMC_ARB_0_CLIENT_INFO_89_VAL;
222
223        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_90) = BCHP_MEMC_ARB_0_CLIENT_INFO_90_VAL;
224
225        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_91) = BCHP_MEMC_ARB_0_CLIENT_INFO_91_VAL;
226
227        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_92) = BCHP_MEMC_ARB_0_CLIENT_INFO_92_VAL;
228
229        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_93)= BCHP_MEMC_ARB_0_CLIENT_INFO_93_VAL;
230
231        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_94) = BCHP_MEMC_ARB_0_CLIENT_INFO_94_VAL;
232
233        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_95) = BCHP_MEMC_ARB_0_CLIENT_INFO_95_VAL;
234
235        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_96) = BCHP_MEMC_ARB_0_CLIENT_INFO_96_VAL;
236
237        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_97) = BCHP_MEMC_ARB_0_CLIENT_INFO_97_VAL;
238
239        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_98) = BCHP_MEMC_ARB_0_CLIENT_INFO_98_VAL;
240
241        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_99) = BCHP_MEMC_ARB_0_CLIENT_INFO_99_VAL;
242
243        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_100) = BCHP_MEMC_ARB_0_CLIENT_INFO_100_VAL;
244
245        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_101) = BCHP_MEMC_ARB_0_CLIENT_INFO_101_VAL;
246
247        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_102) = BCHP_MEMC_ARB_0_CLIENT_INFO_102_VAL;
248
249        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_103) = BCHP_MEMC_ARB_0_CLIENT_INFO_103_VAL;
250
251        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_104) = BCHP_MEMC_ARB_0_CLIENT_INFO_104_VAL;
252
253        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_105) = BCHP_MEMC_ARB_0_CLIENT_INFO_105_VAL;
254
255        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_106) = BCHP_MEMC_ARB_0_CLIENT_INFO_106_VAL;
256
257        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_107) = BCHP_MEMC_ARB_0_CLIENT_INFO_107_VAL;
258
259        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_108) = BCHP_MEMC_ARB_0_CLIENT_INFO_108_VAL;
260
261        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_109) = BCHP_MEMC_ARB_0_CLIENT_INFO_109_VAL;
262
263        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_110) = BCHP_MEMC_ARB_0_CLIENT_INFO_110_VAL;
264
265        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_111) = BCHP_MEMC_ARB_0_CLIENT_INFO_111_VAL;
266
267        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_112) = BCHP_MEMC_ARB_0_CLIENT_INFO_112_VAL;
268
269        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_113) = BCHP_MEMC_ARB_0_CLIENT_INFO_113_VAL;
270
271        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_114) = BCHP_MEMC_ARB_0_CLIENT_INFO_114_VAL;
272
273        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_115) = BCHP_MEMC_ARB_0_CLIENT_INFO_115_VAL;
274
275        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_116) = BCHP_MEMC_ARB_0_CLIENT_INFO_116_VAL;
276
277        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_117) = BCHP_MEMC_ARB_0_CLIENT_INFO_117_VAL;
278
279        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_118) = BCHP_MEMC_ARB_0_CLIENT_INFO_118_VAL;
280
281        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_119) = BCHP_MEMC_ARB_0_CLIENT_INFO_119_VAL;
282
283        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_120) = BCHP_MEMC_ARB_0_CLIENT_INFO_120_VAL;
284
285        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_121) = BCHP_MEMC_ARB_0_CLIENT_INFO_121_VAL;
286
287        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_122) = BCHP_MEMC_ARB_0_CLIENT_INFO_122_VAL;
288
289        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_123) = BCHP_MEMC_ARB_0_CLIENT_INFO_123_VAL;
290
291        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_124) = BCHP_MEMC_ARB_0_CLIENT_INFO_124_VAL;
292
293        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_125) = BCHP_MEMC_ARB_0_CLIENT_INFO_125_VAL;
294
295        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_126) = BCHP_MEMC_ARB_0_CLIENT_INFO_126_VAL;
296
297        REG(BCHP_MEMC_ARB_0_CLIENT_INFO_127) = BCHP_MEMC_ARB_0_CLIENT_INFO_127_VAL;
298}
299
300void set_clocks_for_profile(void)
301{
302        volatile unsigned long temp_reg;
303
304        /* set SPI clock */
305        temp_reg =      *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_4);
306        temp_reg &= ~(BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_4_MDIV_CH4_MASK | BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_4_POST_DIVIDER_LOAD_EN_CH4_MASK);
307        temp_reg |= (32 << BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_4_MDIV_CH4_SHIFT);
308        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_4) = temp_reg;
309        temp_reg |= BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_4_POST_DIVIDER_LOAD_EN_CH4_MASK;
310        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_4) = temp_reg;
311
312        /* Setting CPU clock */
313        temp_reg = *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_0);
314        temp_reg &= ~BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_0_MDIV_CH0_MASK;
315        temp_reg |= (CPU_MDIV << BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_0_MDIV_CH0_SHIFT);
316        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_0) = temp_reg;
317
318        /* Generate the pulse by writing 1 followed by 0 to POST_DIVIDER_LOAD_EN_CH0 bit*/
319        temp_reg |= (1 << BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_0_POST_DIVIDER_LOAD_EN_CH0_SHIFT);
320        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_0) = temp_reg;
321        /* clear the POST_DIVIDER_LOAD_EN_CH0 bit */
322        temp_reg &= ~BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_0_POST_DIVIDER_LOAD_EN_CH0_MASK;
323        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_0) = temp_reg;
324
325        /* Setting AVD core clock */
326        temp_reg = *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_1);
327        temp_reg &= ~BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_1_MDIV_CH1_MASK;
328        temp_reg |= (AVD_MDIV << BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_1_MDIV_CH1_SHIFT);
329        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_1) = temp_reg;
330
331        /* Generate the pulse by writing 1 followed by 0 to POST_DIVIDER_LOAD_EN_CH1 bit*/
332        temp_reg |= (1 << BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_1_POST_DIVIDER_LOAD_EN_CH1_SHIFT);
333        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_1) = temp_reg;
334        /* clear the POST_DIVIDER_LOAD_EN_CH1 bit */
335        temp_reg &= ~BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_1_POST_DIVIDER_LOAD_EN_CH1_MASK;
336        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_1) = temp_reg;
337
338        /* Setting AVD CPU clock */
339        temp_reg = *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_2);
340        temp_reg &= ~BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_2_MDIV_CH2_MASK;
341        temp_reg |= (AVD_CPU_MDIV << BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_2_MDIV_CH2_SHIFT);
342        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_2) = temp_reg;
343
344        /* Generate the pulse by writing 1 followed by 0 to POST_DIVIDER_LOAD_EN_CH2 bit*/
345        temp_reg |= (1 << BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_2_POST_DIVIDER_LOAD_EN_CH2_SHIFT);
346        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_2) = temp_reg;
347        /* clear the POST_DIVIDER_LOAD_EN_CH2 bit */
348        temp_reg &= ~BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_2_POST_DIVIDER_LOAD_EN_CH2_MASK;
349        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_2) = temp_reg;
350
351        /* Setting DSP clock */
352        temp_reg = *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_3);
353        temp_reg &= ~BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_3_MDIV_CH3_MASK;
354        temp_reg |= (DSP_MDIV << BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_3_MDIV_CH3_SHIFT);
355        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_3) = temp_reg;
356
357        /* Generate the pulse by writing 1 followed by 0 to POST_DIVIDER_LOAD_EN_CH3 bit*/
358        temp_reg |= (1 << BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_3_POST_DIVIDER_LOAD_EN_CH3_SHIFT);
359        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_3) = temp_reg;
360        /* clear the POST_DIVIDER_LOAD_EN_CH3 bit */
361        temp_reg &= ~BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_3_POST_DIVIDER_LOAD_EN_CH3_MASK;
362        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_AVD_MIPS_PLL_CHANNEL_CTRL_CH_3) = temp_reg;
363
364        /* Setting SCB clock */
365        temp_reg = *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_3);
366        temp_reg &= ~BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_3_MDIV_CH3_MASK;
367        temp_reg |= (SCB_MDIV << BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_3_MDIV_CH3_SHIFT);
368        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_3) = temp_reg;
369
370        /* Generate the pulse by writing 1 followed by 0 to POST_DIVIDER_LOAD_EN_CH3 bit*/
371        temp_reg |= (1 << BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_3_POST_DIVIDER_LOAD_EN_CH3_SHIFT);
372        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_3) = temp_reg;
373        /* clear the POST_DIVIDER_LOAD_EN_CH3 bit */
374        temp_reg &= ~BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_3_POST_DIVIDER_LOAD_EN_CH3_MASK;
375        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_CLKGEN_PLL_SYS0_PLL_CHANNEL_CTRL_CH_3) = temp_reg;
376
377        /* turn off tuner loop */
378        temp_reg = REG(BCHP_UFE_AFE_TNR0_PWRUP_01);
379        temp_reg &= ~BCHP_UFE_AFE_TNR0_PWRUP_01_i_pwrup_LT_MASK;
380        /*  power off daisy */
381        temp_reg &= ~BCHP_UFE_AFE_TNR0_PWRUP_01_i_pwrup_DAISY_UHF_MASK;
382        temp_reg &= ~BCHP_UFE_AFE_TNR0_PWRUP_01_i_pwrup_DAISY_VHF_MASK;
383        REG(BCHP_UFE_AFE_TNR0_PWRUP_01) = temp_reg;
384        /* turn off THD clocks */
385        REG(BCHP_CLKGEN_THD_TOP_CLOCK_ENABLE) = 0;
386        /* set m2mc to lowest rate */
387        REG(BCHP_CLKGEN_INTERNAL_MUX_SELECT) = 0;
388}
389
390/*
391 * Description:
392 * when waking up, turn on Green LED. It's been called only when CONFIG_STANDBY is enabled
393 */
394void turn_on_led(void)
395{
396        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_AON_CTRL_PM_LED_CTRL) = BCHP_AON_CTRL_PM_LED_CTRL_led_turn_off_MASK;
397}
398
399
400void AOV_turn_on_led(void)
401{
402        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_GIO_AON_DATA_LO) = 0x200;               /* set LED to green AON_GPIO_09 */
403        *(volatile unsigned long *)PHYS_TO_K1(BCHP_PHYSICAL_OFFSET+BCHP_GIO_AON_IODIR_LO) = 0xFFFFFDEF;
404}
405
Note: See TracBrowser for help on using the repository browser.