source: svn/trunk/newcon3bcm2_21bu/dst/dhl/api/include/DHL_SYS.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 9.0 KB
Line 
1/**
2        @file
3                DHL_SYS.h
4
5        @brief
6                System Control APIs
7
8        Copyright 2006~2010 Digital STREAM Technology, Inc.
9        All Rights Reserved
10*/
11
12
13#ifndef __DHL_SYS_API_H__
14#define __DHL_SYS_API_H__
15
16
17#include "DHL_OSAL.h"
18
19
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25
26
27#if COMMENT
28____Overview____(){}
29#endif
30
31/**
32        @file DHL_SYS.h
33
34        module overview
35
36        APIs
37       
38        implementations
39       
40        dependencies           
41       
42
43*/
44
45
46#if COMMENT
47____Config____(){}
48#endif
49
50/**
51        GPIO ¹øÈ£ µîÀº platform ¸¶´Ù ´Þ¶óÁú ¼ö ÀÖ´Â ³»¿ëÀ̹ǷÎ,
52        º°µµÀÇ ÆÄÀÏ·Î °ü¸®ÇÑ´Ù.
53*/
54#include "DHL_SYS_Config.h"
55
56
57
58#if COMMENT
59____Types____(){}
60#endif
61
62enum DHL_HOST_ENDIAN {
63        eENDIAN_UNKNOWN = 0,
64        eENDIAN_BIG,
65        eENDIAN_LITTLE
66};
67
68typedef enum
69{
70        eDHL_SYS_CB_MIN = 0,
71        eDHL_SYS_CB_SWITCH = 100,
72        /* define your own switch info in Impl.. */
73
74        eDHL_SYS_CB_BUTTON = 200,
75        /* define your own button info in Impl.. */
76
77        eDHL_SYS_CB_CUSTOM = 300,
78        /* define your own info in Impl.. */
79
80        eDHL_SYS_CB_MAX = 400,
81
82} DHL_SYS_CB_TYPE;
83
84
85/** @brief HAL¿¡¼­ Áö¿øÇÏ´Â º¸µå ŸÀÔ.
86
87        revision Á¤º¸·Î ±¸ºÐÀÌ ¾ÈµÇ´Â º¸µåµéÀº
88        ¾Æ·¡¿¡ ¼­·Î ±¸ºÐµÈ typeÀ¸·Î Ãß°¡ ÇÊ¿äÇÏ´Ù.
89
90        runtime ½Ã¿¡ üũ°¡ ¾ÈµÇ´Â º¸µå ŸÀÔÀº DHL_CONFIG.h ¿¡¼­
91        DHL_CFG_BOARDTYPE_XXX À¸·Î build time È®Á¤ µÇ¾î¾ß ÇÔ.
92*/
93typedef enum
94{
95        eDHL_BOARD_UNKNOWN, ///<
96
97        /*==== Broadcom STB SoC base (bcm7xxx) ==== */
98        eDHL_BOARD_CRUX,
99        eDHL_BOARD_DCAS,
100        eDHL_BOARD_NEO,
101        eDHL_BOARD_TRINITY,
102        eDHL_BOARD_UDCP,
103        eDHL_BOARD_HOTIP,
104
105        /*==== Renesas EMMA3 SL/P based ==== */
106        /**
107                NEC´Â Renesas·Î º¯°æµÇ¾úÀ¸¹Ç·Î EMMA¶ó´Â À̸§À» »ç¿ëÇÏÀÚ.
108               
109                ¶ÇÇÑ Eval º¸µå´Â Tube3 Proto, ES1, ES2 µî ´Ù¾çÇϸç,
110                Proto´Â FE°¡ ÂøÅ»½ÄÀÌ¶ó¼­ Å¸ÀÔÀÇ Àǹ̰¡ ¹Ý°¨µÈ´Ù.
111                ÀÏ´Ü ÇϳªÀÇ TypeÀ¸·Î ÅëÀÏÇÑ´Ù.
112                ³ªÁß¿¡¶óµµ SubTypeÀ» ±¸ºÐÇÏ°í ½Í´Ù¸é Ãß°¡Çϱ⠹ٶ÷.
113        */             
114        eDHL_BOARD_EMMA3EVAL = 0x10, ///< Renesas EMMA3 SL/P Board
115       
116        eDHL_BOARD_NEWBY = 0x20,
117        eDHL_BOARD_NEWCON,
118        eDHL_BOARD_NEWCON2,
119        eDHL_BOARD_NEWCON3
120} DHL_BOARD_TYPE;
121
122
123/** @brief °¢ º¸µå ŸÀÔ ³»¿¡¼­ °ü¸®ÇÏ´Â º¸µå ¸®ºñÀü.
124
125        DHL_SYS_GetBoardTypeVersion() API¿¡¼­ ¸®ÅϵǴ °ªÀÌ´Ù.
126
127        ÀϹÝÀûÀ¸·Î º¸µå ¸®ºñÀüÀ» °ü¸®ÇÏ´Â ¹æ¹ýÀº GPIOÀÇ HWBITÀ» ÀÌ¿ëÇϴµ¥,
128        °¢ HWBIT °ªÀÇ Àǹ̴ º¸µå ŸÀÔ º°·Î ´Þ¶óÁú ¼ö ÀÖ´Ù.
129       
130        ¿¹¸¦ µé¾î NEO º¸µå´Â ³× ºñÆ®¸¦ »ç¿ëÇϴµ¥ 0010b ÀÌ R0.2 ¸¦ ÀǹÌÇÏÁö¸¸,
131        ÇâÈÄ ³ª¿Ã »õ ÇÁ·ÎÁ§Æ®¿¡¼­´Â ¼¼ ºñÆ®¸¸ »ç¿ëÇϰí 010b°¡ 0.3ÀÌ µÉ ¼öµµ ÀÖÀ» °ÍÀÓ.
132
133        enum °ª¿¡ ´ëÀÀÇÏ´Â ½ÇÁ¦ °ªÀ¸·Î´Â 16-bit °ªÀ» »ç¿ëÇÑ´Ù.
134*/
135typedef enum
136{
137        eREV_None = 0,
138        eREV_010 = 0x0010,
139        eREV_015 = 0x0015,
140        eREV_020 = 0x0020,
141        eREV_021 = 0x0021,
142        eREV_025 = 0x0025,
143        eREV_030 = 0x0030,
144        eREV_035 = 0x0035,
145        eREV_040 = 0x0040,
146        eREV_045 = 0x0045,
147        eREV_050 = 0x0050,
148        eREV_055 = 0x0055,
149        eREV_060 = 0x0060,
150        eREV_065 = 0x0065,
151        eREV_070 = 0x0070,
152        eREV_075 = 0x0075,
153        eREV_080 = 0x0080,
154        eREV_085 = 0x0085,
155        eREV_090 = 0x0090,
156        eREV_095 = 0x0095,
157        eREV_100 = 0x0100,
158                       
159} DHL_BOARD_REV;
160
161
162
163/** @brief Àü¿ø ¸ðµå
164
165        DHL_SYS_Reset APIÀÇ ÀÎÀÚ·Î »ç¿ëµÈ´Ù.
166*/
167typedef enum 
168{
169        eDHL_RESET_Standby, ///< ÀúÀü·Â »óÅÂ. CPU ¿Ü ÀϺΠȸ·Î¸¸ ON.
170        eDHL_RESET_Normal,  ///< full powered mode
171        eDHL_RESET_Reboot,  ///< ÀçºÎÆÃ.
172       
173} DHL_RESET_MODE;
174
175
176/** @brief ½Ã½ºÅÛ ÀÏ¹Ý Á¦¾î ŸÀÔ.
177
178        DHL_SYS_Control APIÀÇ ÀÎÀÚ·Î »ç¿ëµÈ´Ù.
179        °¢ ŸÀÔ º°·Î param ÀÎÀÚÀÇ type ¹× Àǹ̰¡ Á¤ÀǵȴÙ.
180*/
181typedef enum
182{
183        /** system reset
184                ÇÏ´Â ÀÏÀº º°µµÀÇ APIÀÎ DHL_SYS_Reset API¿Í µ¿ÀÏÇÏ´Ù.
185                param: DHL_RESET_MODE
186        */
187        eSYSCTL_Reset,
188
189        /**
190        */
191        //eSYSCTL_Watchdog,
192       
193} DHL_SYSCTL_TYPE;
194
195
196/** @breif ½Ã½ºÅÛ ÀÏ¹Ý query ŸÀÔ.
197        DHL_SYS_Query APIÀÇ ÀÎÀÚ·Î »ç¿ëµÈ´Ù.
198        °¢ query ŸÀÔ º°·Î pdata ÀÎÀÚÀÇ Å¸ÀÔ/Àǹ̰¡ Á¤ÀǵȴÙ.
199*/
200typedef enum
201{
202        /** get ddr clock frequency in MHz.
203                pdata: UINT32 *
204        */
205        eSYSQRY_DDRClock,
206       
207} DHL_SYSQRY_TYPE;
208
209
210
211#if COMMENT
212____Defines____(){}
213#endif
214
215
216
217
218
219
220
221
222#if COMMENT
223____GPIO____(){}
224#endif
225
226/** @name GPIO APIs
227        @{
228*/
229
230
231/** @brief GPIO direction mode
232
233        TriState output Áö¿øÇÏÁö ¾Ê´Â systemÀÇ °æ¿ì ±×³É output À¸·Î µ¿ÀÛÇϵµ·Ï ÇÔ.
234*/
235typedef enum 
236{
237        eDHL_GPIO_MODE_Input,
238        eDHL_GPIO_MODE_Output,
239        eDHL_GPIO_MODE_OutputZ, ///< Tristate output. hard wired AND logic.
240        eDHL_GPIO_MODE_Max,
241       
242} DHL_GPIO_MODE;
243
244
245/** @brief GPIO ÀÎÅÍ·´Æ® ¸ðµå
246
247*/
248typedef enum 
249{
250        eDHL_GPIO_INT_Disabled,      /*! No interrupt */
251        eDHL_GPIO_INT_RisingEdge,    /*! Interrupt on a 0->1 transition */
252        eDHL_GPIO_INT_FallingEdge,   /*! Interrupt on a 1->0 transition */
253        eDHL_GPIO_INT_Edge,           /*! Interrupt on both a 0->1 and a 1->0 transition */
254        eDHL_GPIO_INT_Low,            /*! Interrupt on a 0 value */
255        eDHL_GPIO_INT_High,           /*! Interrupt on a 1 value */
256        eDHL_GPIO_INT_Max
257   
258} DHL_GPIO_INT_MODE;
259
260
261/** @brief »ç¿ëÀÚ GPIO ISR Äݹé ÇÔ¼ö prototype.
262
263        DHL_SYS_EnableGpioInt ¿¡¼­ »ç¿ë.
264*/
265typedef void (*DHL_GPIO_CALLBACK)(int gpio_num, UINT32 user_param);
266
267
268/** @file DHL_SYS.h
269
270        @todo
271        ¾Æ·¡ ÇÔ¼ö´Â API·Î Á¦°øµÉ Çʿ䰡 ¾øÀ¸¹Ç·Î Á¦°Å.
272        ÀÌ ±â´ÉÀº init ÇÒ ¶§ ³»ºÎÀûÀ¸·Î ¼öÇàµÇ¾î¾ß ÇÑ´Ù.
273       
274DHL_RESULT DHL_SYS_GpioConfig(void);
275*/
276
277
278/** @file DHL_SYS.h
279
280        @todo ¾Æ·¡ API´Â »ç¿ëÇÏ´Â °÷ÀÌ ¾øÀ¸¹Ç·Î Á¦°Å.
281       
282// reset all GPIO pins that configured as a "RESET"..
283# define DHL_SYS_GpioResetAll(void) (DHL_OK)
284*/
285
286
287#if SUPPORT_MICOM       
288
289/** @brief GPIO ¹æÇâ ¼³Á¤ API
290
291        @param[in] gpio   GPIO ¹øÈ£. ¼ýÀÚ ´ë½Å »ó¼ö °ªÀ» »ç¿ëÇÒ °Í.
292        @param[in] eMode  Àû¿ë ÇÒ GPIO µ¿ÀÛ ¸ðµå.
293        @param[in] value  output ¸ðµåÀÎ °æ¿ì ¼³Á¤ ÇÒ »óÅ °ª.
294        @return
295*/
296//DHL_RESULT DHL_SYS_SetGpioDirection(int gpio, DHL_GPIO_MODE eMode, BOOL value);
297#endif
298
299/** @brief ƯÁ¤ GPIO¿¡ ÀÎÅÍ·´Æ®¸¦ ¼³Á¤.
300
301        @param[in] gpio     GPIO ¹øÈ£. ¼ýÀÚ ´ë½Å »ó¼ö °ªÀ» »ç¿ëÇÒ °Í.
302        @param[in] eIntMode ¼³Á¤ ÇÒ ÀÎÅÍ·´Æ® ¸ðµå.
303        @param[in] cb       ÀÎÅÍ·´Æ® ¹ß»ý ½Ã È£Ãâ µÉ »ç¿ëÀÚ Äݹé ÇÔ¼ö.
304        @param[in] param    Äݹé È£Ã⠽à Àü´Þ µÉ »ç¿ëÀÚ ÆÄ¶ó¹ÌÅÍ.
305        @return
306*/
307//DHL_RESULT DHL_SYS_EnableGpioInt(int gpio, DHL_GPIO_INT_MODE eIntMode, DHL_GPIO_CALLBACK cb, UINT32 param);
308
309
310/** @file DHL_SYS.h
311        @todo ¾Æ·¡ ÇÔ¼ö´Â »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î »èÁ¦.
312       
313//void DHL_SYS_InstallGpioISR(DHL_GPIO_CALLBACK cb);
314*/
315
316/*@}*/
317
318
319
320//DHL_RESULT DHL_SYS_GpioConfig(void);
321
322// reset all GPIO pins that configured as a "RESET"..
323#define DHL_SYS_GpioResetAll(void) (DHL_OK)
324
325
326/*
327        following APIs are deprecated now. will be re-visited in future.
328*/
329#define DHL_SYS_GpioName(gpio) ("ERR")
330#define DHL_SYS_GpioNum(gpio) (gpio)
331#define DHL_SYS_GpioPad(gpio) (0)
332
333
334/*
335        gpio read/write routines.
336*/
337/** @brief GPIO set API
338
339        @param[in] gpio GPIO ¹øÈ£. ¼ýÀÚ ´ë½Å »ó¼ö °ªÀ» »ç¿ëÇÒ °Í.
340*/
341#define DHL_SYS_SetGPIO(gpio)   dhl_sys_gpio_rw((gpio), 1, TRUE)
342/** @brief GPIO reset API
343
344        @param[in] gpio GPIO ¹øÈ£. ¼ýÀÚ ´ë½Å »ó¼ö °ªÀ» »ç¿ëÇÒ °Í.
345*/
346
347#define DHL_SYS_ResetGPIO(gpio)  dhl_sys_gpio_rw((gpio), 0, TRUE)
348
349/** @brief GPIO status read API
350
351        @param[in] gpio GPIO ¹øÈ£. ¼ýÀÚ ´ë½Å »ó¼ö °ªÀ» »ç¿ëÇÒ °Í.
352*/
353#define DHL_SYS_ReadGPIO(gpio) dhl_sys_gpio_rw((gpio), 0, FALSE)
354
355
356/*
357        GPIO control routines.
358        usually, this api is not needed. only DHL_SYS_Impl use it.
359*/
360#define DHL_SYS_SetGpioDirection(gpio, bOutput) \
361        dhl_sys_gpio_config((gpio), (bOutput) ? DHL_GPIO_OUTPUT : DHL_GPIO_INPUT)
362
363#define DHL_SYS_InstallGpioISR(gpio, routine) (DHL_FAIL_NOT_IMPLEMENTED)
364#define DHL_SYS_EnableGpioInt(gpio, bEnable) (DHL_FAIL_NOT_IMPLEMENTED)
365
366
367
368#if COMMENT
369____API____(){}
370#endif
371
372
373/** @brief º¸µåÀÇ Å¸ÀÔ ¹× ¸®ºñÀü Á¤º¸.
374
375        @param[out] pType º¸µå ŸÀÔ
376        @param[out] pVer  º¸µå ¸®ºñÀü Á¤º¸.
377*/
378DHL_RESULT DHL_SYS_GetBoardTypeVersion(DHL_BOARD_TYPE *pType, DHL_BOARD_REV *pVer);
379
380
381
382/** @brief º¸µåÀÇ power »óÅ ¼³Á¤.
383
384        - ÀúÀü·Â »óÅ ÁøÀÔ (½ºÅĹÙÀÌ ¸ðµå)
385        - ÀÏ¹Ý »óÅ·Π±ú¾î³²
386        - ÀÏ¹Ý »óÅ¿¡¼­ ¸®ºÎÆÃ
387
388        @param[in] mode Àüȯ ÇÒ º¸µå Àü¿ø »óÅÂ.
389*/
390DHL_RESULT DHL_SYS_Reset(DHL_RESET_MODE mode);
391
392
393
394
395/** @brief ½Ã½ºÅÛÀÇ °¢Á¾ Á¦¾î
396        @param[in]  type  Á¦¾î ŸÀÔ.
397        @param[in]  param type º° Ãß°¡ ÆÄ¶ó¹ÌÅÍ.
398*/
399DHL_RESULT DHL_SYS_Control(DHL_SYSCTL_TYPE type, UINT32 param);
400
401
402/** @brief ½Ã½ºÅÛ °¢Á¾ »óÅ query
403
404        @param[in]  type   queryÇÒ µ¥ÀÌÅÍ Á¾·ù.
405        @param[out] pdata  query µÈ °á°ú°¡ Àü´ÞµÉ Æ÷ÀÎÅÍ. ½ÇÁ¦ ŸÀÔÀº type¿¡ µû¶ó ´Þ¶óÁü.
406*/
407DHL_RESULT DHL_SYS_Query(DHL_SYSQRY_TYPE type, void *pdata);
408
409#if COMMENT
410____Watchdog____(){}
411#endif
412
413BOOL DHL_SYS_IsWatchdogEnabled(void);
414void DHL_SYS_EnableWatchdog(void);
415void DHL_SYS_DisableWatchdog(void);
416
417
418#if COMMENT
419____Init____(){}
420#endif
421
422
423/** @brief SYS ¸ðµâ ÃʱâÈ­.
424
425        GPIO µî SYS ¸ðµâ ³» ±â´É ÃʱâÈ­.
426       
427*/
428DHL_RESULT DHL_SYS_Init(void);
429
430/** @brief SYS ¸ðµâ shutdown
431*/
432DHL_RESULT DHL_SYS_Uninit(void);
433
434
435#if COMMENT
436____PlatformInit____(){}
437#endif
438
439
440
441/** @brief Ç÷§Æû ¸ÞÀÎ ÃʱâÈ­ ÇÔ¼ö.
442
443        °¢ Ç÷§Æû º°·Î ÃʱâÈ­ ÇÏ´Â ¼ø¼­ µîÀÌ ´Ù¸¦ ¼ö ÀÖÀ¸¹Ç·Î,
444        ¸ÞÀÎ ÃʱâÈ­ ÇÔ¼ö ÀÚü¸¦ platform ¿¡¼­ Á¦°øÇÏ´Â Çü½ÄÀ¸·Î ÇÏÀÚ.
445
446        SYS ÃʱâÈ­, OSAL ÃʱâÈ­, Dbg Module ÃʱâÈ­ µî ¸ðµç HAL ÃʱâÈ­ ¼ø¼­¸¦
447        ÀÌ ÇÔ¼ö ¾È¿¡¼­ °áÁ¤Çؼ­ ÁøÇàÇÑ´Ù.
448*/
449void DHL_SYS_PlatformInit(void);
450
451/** @brief Ç÷§Æû ¸ÞÀÎ ¼Ë´Ù¿î ÇÔ¼ö.
452
453*/
454void DHL_SYS_PlatformUninit(void);
455
456
457#ifdef __cplusplus
458} /* extern "C" */
459#endif
460
461
462
463#endif  /* __DHL_SYS_API_H__ */
464
Note: See TracBrowser for help on using the repository browser.