tizen 2.4 release
[profile/mobile/platform/kernel/u-boot-tm1.git] / arch / arm / include / asm / arch-sc9630 / ldo_reg_v3.h
1 /******************************************************************************
2  ** File Name:    ldo_reg_v3.h                                            *
3  ** Author:       mingwei.zhang                                                 *
4  ** DATE:         06/11/2010                                                  *
5  ** Copyright:    2010 Spreatrum, Incoporated. All Rights Reserved.           *
6  ** Description:                                                              *
7  ******************************************************************************/
8 /******************************************************************************
9  **                   Edit    History                                         *
10  **---------------------------------------------------------------------------*
11  ** DATE          NAME            DESCRIPTION                                 *
12  ** 06/11/2010    mingwei.zhang   Create.                                     *
13  ******************************************************************************/
14 #ifndef _LDO_REG_V3_H_
15 #define _LDO_REG_V3_H_
16 /*----------------------------------------------------------------------------*
17  **                         Dependencies                                      *
18  **------------------------------------------------------------------------- */
19
20 /**---------------------------------------------------------------------------*
21  **                             Compiler Flag                                 *
22  **--------------------------------------------------------------------------*/
23 #ifdef   __cplusplus
24 extern   "C"
25 {
26 #endif
27 /**---------------------------------------------------------------------------*
28 **                               Micro Define                                **
29 **---------------------------------------------------------------------------*/
30 /* save value for register */
31 #define LOCAL_VAR_DEF   uint32 reg_val;
32
33 #define REG_SETCLRBIT(_reg_addr, _set_bit, _clr_bit)    \
34     do  \
35     {   \
36         reg_val = ANA_REG_GET(_reg_addr);   \
37         reg_val |= (_set_bit);  \
38         reg_val &= ~(_clr_bit); \
39         ANA_REG_SET(_reg_addr,reg_val);   \
40     }while(0);
41
42 #define REG_SETBIT(_reg_addr, _bit_mask, _bit_set) ANA_REG_MSK_OR(_reg_addr, _bit_set, _bit_mask);
43
44 #define GET_LEVELBIT(_reg_addr, _bit_mask, _bit_set, _level_var)   \
45     {   \
46         (_level_var) |= \
47                         ((ANA_REG_GET(_reg_addr)&(_bit_mask))?(_bit_set):0);    \
48     }
49
50 #define GET_LEVEL(_reg_addr, _bit0_mask, _bit1_mask, _level_var)    \
51     {   \
52         (_level_var) |= \
53                         (((ANA_REG_GET(_reg_addr)&(_bit0_mask))?(BIT_0):0)|    \
54                          ((ANA_REG_GET(_reg_addr)&(_bit1_mask))?(BIT_1):0)); \
55     }
56
57 /* macro used to set voltage level according to bit field */
58 #define SET_LEVELBIT(_reg_addr, _bit_mask, _set_bit, _rst_bit)  \
59     {   \
60         REG_SETBIT( \
61                     _reg_addr,  \
62                     (_set_bit) | (_rst_bit),    \
63                     ((_set_bit)&(_bit_mask)) | ((_rst_bit)&(~_bit_mask))    \
64                   )   \
65     }
66
67 /* macro used to set voltage level according to two bits */
68 #define SET_LEVEL(_reg_addr, _bit0_mask, _bit1_mask, _set_bit0,     \
69                   _rst_bit0, _set_bit1, _rst_bit1)    \
70 {   \
71     REG_SETBIT( \
72                 (_reg_addr),    \
73                 ((_set_bit0)|(_rst_bit0) | (_set_bit1)|(_rst_bit1)),  \
74                 (((_set_bit0)&(_bit0_mask)) | ((_rst_bit0)&(~_bit0_mask))|  \
75                  ((_set_bit1)&(_bit1_mask)) | ((_rst_bit1)&(~_bit1_mask)))   \
76               )   \
77 }
78
79 #define LDO_REG_OR ANA_REG_OR
80 #define LDO_REG_AND ANA_REG_AND
81 #define LDO_REG_GET  ANA_REG_GET
82
83 /**----------------------------------------------------------------------------*
84 **                         Compiler Flag                                      **
85 **----------------------------------------------------------------------------*/
86
87 #ifdef   __cplusplus
88 }
89 #endif
90 /**---------------------------------------------------------------------------*/
91 #endif  //_LDO_REG_V3_H_
92
93