blob: 7e00a9f9cbe6ff52ef2c42666a32e3bcd71ed355 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001 /*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 *
38 * Filename:
39 * ---------
40 * fm.h
41 *
42 * Project:
43 * --------
44 * TK6291
45 *
46 * Description:
47 * ------------
48 * Resource Management Central control configuration.
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 * removed!
59 * removed!
60 * removed!
61 *
62 * removed!
63 * removed!
64 * removed!
65 * removed!
66 * removed!
67 *
68 * removed!
69 * removed!
70 * removed!
71 * removed!
72 *
73 * removed!
74 * removed!
75 * removed!
76 * removed!
77 *
78 * removed!
79 * removed!
80 * removed!
81 *
82 * removed!
83 * removed!
84 * removed!
85 * removed!
86 *
87 * removed!
88 * removed!
89 * removed!
90 * removed!
91 *
92 * removed!
93 * removed!
94 * removed!
95 * removed!
96 *
97 * removed!
98 * removed!
99 *
100 * removed!
101 * removed!
102 *
103 * removed!
104 * removed!
105 * removed!
106 *
107 * removed!
108 * removed!
109 *
110 * removed!
111 * removed!
112 *
113 * removed!
114 * removed!
115 *
116 * removed!
117 * removed!
118 *
119 * removed!
120 * removed!
121 *
122 * removed!
123 * removed!
124 * removed!
125 *
126 * removed!
127 * removed!
128 * removed!
129 *
130 * removed!
131 * removed!
132 * removed!
133 * removed!
134 *
135 * removed!
136 * removed!
137 * removed!
138 *
139 * removed!
140 * removed!
141 * removed!
142 *
143 * removed!
144 * removed!
145 * removed!
146 * removed!
147 *
148 * removed!
149 * removed!
150 * removed!
151 * removed!
152 *
153 * removed!
154 * removed!
155 * removed!
156 * removed!
157 *
158 * removed!
159 * removed!
160 * removed!
161 * removed!
162 *
163 * removed!
164 * removed!
165 * removed!
166 *
167 * removed!
168 * removed!
169 *
170 * removed!
171 * removed!
172 *
173 * removed!
174 * removed!
175 *
176 * removed!
177 * removed!
178 *
179 * removed!
180 * removed!
181 *
182 * removed!
183 * removed!
184 *
185 * removed!
186 * removed!
187 * removed!
188 *
189 * removed!
190 * removed!
191 *
192 * removed!
193 * removed!
194 * removed!
195 *------------------------------------------------------------------------------
196 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
197 *============================================================================
198 ****************************************************************************/
199
200
201#ifndef FM_H
202#define FM_H
203
204#include "kal_general_types.h"
205#include "kal_public_defs.h"
206#include "reg_base.h"
207#include "mml1_rf_global.h" /* for MML1_RF_VCXO_TYPE_E */
208
209#if defined(__MD93__) || defined(__MD95__) || defined(__MD97__) || defined(__MD97P__)
210#define FREQM_FRC_CON ((volatile kal_uint32*)(L1_BASE_MADDR_FREQM+0x00))
211#define FREQM_FRC_VAL_R ((volatile kal_uint32*)(L1_BASE_MADDR_FREQM+0x10))
212#define FREQM_FM_CON ((volatile kal_uint32*)(L1_BASE_MADDR_FREQM+0x20))
213#define FREQM_FM_CAL ((volatile kal_uint32*)(L1_BASE_MADDR_FREQM+0x30))
214#define FREQM_FM_T0 ((volatile kal_uint32*)(L1_BASE_MADDR_FREQM+0x40))
215#define FREQM_FM_T1 ((volatile kal_uint32*)(L1_BASE_MADDR_FREQM+0x50))
216#else /*address definition*/
217#error "please check the address definition of frequence management"
218#endif /*address definition*/
219
220
221/******************** MD_TOPSM ASSERT Macro ********************/
222#ifdef __MTK_INTERNAL__
223 #define FM_ASSERT_Bypass( st ) ASSERT( st )
224 #define FM_ASSERT_Reboot( st ) ASSERT( st )
225 #define FM_EXT_ASSERT_Bypass( st, d1, d2, d3 ) EXT_ASSERT( st, d1, d2, d3 )
226 #define FM_EXT_ASSERT_Reboot( st, d1, d2, d3 ) EXT_ASSERT( st, d1, d2, d3 )
227#else
228 #define FM_ASSERT_Bypass( st ) (void)0
229 #define FM_ASSERT_Reboot( st ) ASSERT( st )
230 #define FM_EXT_ASSERT_Bypass( st, d1, d2, d3 ) (void)0
231 #define FM_EXT_ASSERT_Reboot( st, d1, d2, d3 ) EXT_ASSERT( st, d1, d2, d3 )
232#endif
233
234/*Global MD TOPSM data structure*/
235typedef struct
236{
237 kal_bool calibrating; /* A flag to record if doing SW manual K action. */
238 kal_bool ReK; /* trigger ReCalibration form inject message or at command. */
239 kal_uint16 re_K_cnt;
240 kal_uint32 curr_FM_DUR;
241 kal_uint32 curr_FM_FREQ;
242 volatile kal_uint32 fmResult;
243 MML1_RF_VCXO_TYPE_E vcxo_type;
244 kal_atomic_int32 fm_count;
245} FM_Globals;
246
247void FM_Init(void);
248void FM_ReCalibration(void);
249kal_bool FM_IsCalibrating( void );
250
251#define FM_DURATION_SHORT (1024)
252#define FM_DURATION_LONG (1024*4)
253#define FM_DURATION_DEFAULT FM_DURATION_LONG
254#define FM_FREQUENCY (208000000)
255
256extern void FM_SetCalibrationResult( kal_uint32 fm_dur, kal_uint32 fm_freq, kal_uint32 fmResult );
257extern void FM_GetCalibrationResult( kal_uint32 *fm_dur_ptr, kal_uint32 *fm_freq_ptr, kal_uint32 *fmResult_ptr );
258extern kal_bool FM_CheckEverCalibrated( void );
259
260#endif /* !MD_TOPSM_PRIVATE_H*/