|
1 /* |
|
2 * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * ne1_tb\inc\resmanpsl.h |
|
16 * |
|
17 */ |
|
18 |
|
19 |
|
20 |
|
21 #ifndef __RESOURCECONTROLPSL_H__ |
|
22 #define __RESOURCECONTROLPSL_H__ |
|
23 |
|
24 #include <naviengine.h> |
|
25 #include "powerresources.h" |
|
26 #include <resourcecontrol.h> |
|
27 |
|
28 #define SHIFT_BY_8 8 |
|
29 #define SHIFT_BY_9 9 |
|
30 #define SHIFT_BY_16 16 |
|
31 #define SHIFT_BY_24 24 |
|
32 |
|
33 #define CSI_UNIT_ENABLE 0x80 |
|
34 #define CSI_RESET 0x10000000 |
|
35 |
|
36 const TUint KClearBit0 = 0x1; |
|
37 const TUint KClearBit0_2 = 0x7; |
|
38 const TUint KClearBit0_3 = 0xF; |
|
39 const TUint KClearBit09 = 0x200; |
|
40 const TUint KSetBit09 = 0x200; |
|
41 const TUint KClearBit18 = 0x40000; |
|
42 const TUint KSetBit18 = 0x40000; |
|
43 const TUint KClearBit8_11 = 0xF00; |
|
44 const TUint KClearBit19 = 0x80000; |
|
45 const TUint KSetBit19 = 0x80000; |
|
46 const TUint KClearBit16_19 = 0xF0000; |
|
47 const TUint KClearBit20 = 0x100000; |
|
48 const TUint KSetBit20 = 0x100000; |
|
49 const TUint KClearBit24_27 = 0xF000000; |
|
50 const TUint KClearBit21 = 0x200000; |
|
51 const TUint KSetBit21 = 0x200000; |
|
52 |
|
53 //Initial resource controller pool definition |
|
54 #define KERNEL_CLIENTS 14 |
|
55 #define USER_CLIENTS 1 |
|
56 #define CLIENT_LEVELS 14 |
|
57 #define REQUESTS 0 |
|
58 |
|
59 const TUint KDfcQThreadPriority = 28; |
|
60 _LIT(KResmanName, "NE1_TBResMan"); |
|
61 |
|
62 /** Macro definition to register resource */ |
|
63 #define REGISTER_RESOURCE(resource, resourceArray, resourceCount) \ |
|
64 { \ |
|
65 pR = new resource(); \ |
|
66 if(!pR) \ |
|
67 { \ |
|
68 for(TUint count = 0; count < resourceCount; count++) \ |
|
69 { \ |
|
70 delete resourceArray[count]; \ |
|
71 } \ |
|
72 delete[] resourceArray; \ |
|
73 return KErrNoMemory; \ |
|
74 } \ |
|
75 resourceArray[resourceCount++] = pR; \ |
|
76 } |
|
77 |
|
78 //Power Resource Controller derived class for naviengine. |
|
79 class DNE1_TBPowerResourceController : public DPowerResourceController |
|
80 { |
|
81 public: |
|
82 DNE1_TBPowerResourceController(); |
|
83 TInt DoInitController(); |
|
84 TInt DoRegisterStaticResources(DStaticPowerResource**& aStaticResourceArray, TUint16& aStaticResourceCount); |
|
85 }; |
|
86 |
|
87 |
|
88 // Resource definition for I2S0 MCLK frequency divider setting |
|
89 class DNE1_TBI2S0MclkResource : public DStaticPowerResource |
|
90 { |
|
91 public: |
|
92 DNE1_TBI2S0MclkResource(); |
|
93 TInt GetInfo(TDes8* aInfo)const; |
|
94 TInt DoRequest(TPowerRequest& aRequest); |
|
95 }; |
|
96 |
|
97 //Resource definition for I2S1 MCLK frequency divider setting |
|
98 class DNE1_TBI2S1MclkResource : public DStaticPowerResource |
|
99 { |
|
100 public: |
|
101 DNE1_TBI2S1MclkResource(); |
|
102 TInt GetInfo(TDes8* aInfo)const; |
|
103 TInt DoRequest(TPowerRequest& aRequest); |
|
104 }; |
|
105 |
|
106 //Resource definition for I2S2 MCLK frequency divider setting |
|
107 class DNE1_TBI2S2MclkResource : public DStaticPowerResource |
|
108 { |
|
109 public: |
|
110 DNE1_TBI2S2MclkResource(); |
|
111 TInt GetInfo(TDes8* aInfo)const; |
|
112 TInt DoRequest(TPowerRequest& aRequest); |
|
113 }; |
|
114 |
|
115 //Resource definition for I2S3 MCLK frequency divider setting |
|
116 class DNE1_TBI2S3MclkResource : public DStaticPowerResource |
|
117 { |
|
118 public: |
|
119 DNE1_TBI2S3MclkResource(); |
|
120 TInt GetInfo(TDes8* aInfo)const; |
|
121 TInt DoRequest(TPowerRequest& aRequest); |
|
122 }; |
|
123 |
|
124 //Resource definition for I2S0 Sampling frequency setting |
|
125 class DNE1_TBI2S0SclkResource : public DStaticPowerResource |
|
126 { |
|
127 public: |
|
128 DNE1_TBI2S0SclkResource(); |
|
129 TInt GetInfo(TDes8* aInfo)const; |
|
130 TInt DoRequest(TPowerRequest& aRequest); |
|
131 }; |
|
132 |
|
133 //Resource definition for I2S1 sampling frequency setting |
|
134 class DNE1_TBI2S1SclkResource : public DStaticPowerResource |
|
135 { |
|
136 public: |
|
137 DNE1_TBI2S1SclkResource(); |
|
138 TInt GetInfo(TDes8* aInfo)const; |
|
139 TInt DoRequest(TPowerRequest& aRequest); |
|
140 }; |
|
141 |
|
142 //Resource definition for I2S2 sampling frequency setting |
|
143 class DNE1_TBI2S2SclkResource : public DStaticPowerResource |
|
144 { |
|
145 public: |
|
146 DNE1_TBI2S2SclkResource(); |
|
147 TInt GetInfo(TDes8* aInfo)const; |
|
148 TInt DoRequest(TPowerRequest& aRequest); |
|
149 }; |
|
150 |
|
151 //Resource definition for I2S3 sampling frequency setting |
|
152 class DNE1_TBI2S3SclkResource : public DStaticPowerResource |
|
153 { |
|
154 public: |
|
155 DNE1_TBI2S3SclkResource(); |
|
156 TInt GetInfo(TDes8* aInfo)const; |
|
157 TInt DoRequest(TPowerRequest& aRequest); |
|
158 }; |
|
159 |
|
160 //Resource definition for Display clock (DCLK) setting |
|
161 class DNE1_TBDisplayDclkResource : public DStaticPowerResource |
|
162 { |
|
163 public: |
|
164 DNE1_TBDisplayDclkResource(); |
|
165 TInt GetInfo(TDes8* aInfo)const; |
|
166 TInt DoRequest(TPowerRequest& aRequest); |
|
167 }; |
|
168 |
|
169 //Resource definition for LCD power |
|
170 class DNE1_TBLcdResource : public DStaticPowerResource |
|
171 { |
|
172 public: |
|
173 DNE1_TBLcdResource(); |
|
174 TInt GetInfo(TDes8* aInfo)const; |
|
175 TInt DoRequest(TPowerRequest& aRequest); |
|
176 }; |
|
177 |
|
178 //Resource definition for board power |
|
179 class DNE1_TBBoardPowerResource : public DStaticPowerResource |
|
180 { |
|
181 public: |
|
182 DNE1_TBBoardPowerResource(); |
|
183 TInt GetInfo(TDes8* aInfo)const; |
|
184 TInt DoRequest(TPowerRequest& aRequest); |
|
185 }; |
|
186 |
|
187 //Resource definition for CSI0 clock select |
|
188 class DNE1_TBCSI0ClockResource : public DStaticPowerResource |
|
189 { |
|
190 public: |
|
191 DNE1_TBCSI0ClockResource(); |
|
192 TInt GetInfo(TDes8* aInfo)const; |
|
193 TInt DoRequest(TPowerRequest& aRequest); |
|
194 }; |
|
195 |
|
196 //Resource definition for CSI1 clock select |
|
197 class DNE1_TBCSI1ClockResource : public DStaticPowerResource |
|
198 { |
|
199 public: |
|
200 DNE1_TBCSI1ClockResource(); |
|
201 TInt GetInfo(TDes8* aInfo)const; |
|
202 TInt DoRequest(TPowerRequest& aRequest); |
|
203 }; |
|
204 |
|
205 //Resource definition for PCL clock enable |
|
206 class DNE1_TBPCIClockResource : public DStaticPowerResource |
|
207 { |
|
208 public: |
|
209 DNE1_TBPCIClockResource(); |
|
210 TInt GetInfo(TDes8* aInfo)const; |
|
211 TInt DoRequest(TPowerRequest& aRequest); |
|
212 }; |
|
213 |
|
214 //Resource definition for PCL clock enable |
|
215 class DNE1_WakeupLatencyResource : public DStaticPowerResource |
|
216 { |
|
217 public: |
|
218 DNE1_WakeupLatencyResource(); |
|
219 TInt GetInfo(TDes8* aInfo)const; |
|
220 TInt DoRequest(TPowerRequest& aRequest); |
|
221 }; |
|
222 |
|
223 #endif //__RESOURCECONTROLPSL_H__ |
|
224 |