1 /******************************************************************************
2 ** File Name: ldo_reg_v3.h *
3 ** Author: mingwei.zhang *
5 ** Copyright: 2010 Spreatrum, Incoporated. All Rights Reserved. *
7 ******************************************************************************/
8 /******************************************************************************
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 /*----------------------------------------------------------------------------*
18 **------------------------------------------------------------------------- */
20 /**---------------------------------------------------------------------------*
22 **--------------------------------------------------------------------------*/
27 /**---------------------------------------------------------------------------*
29 **---------------------------------------------------------------------------*/
30 /* save value for register */
31 #define LOCAL_VAR_DEF uint32 reg_val;
33 #define REG_SETCLRBIT(_reg_addr, _set_bit, _clr_bit) \
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); \
42 #define REG_SETBIT(_reg_addr, _bit_mask, _bit_set) ANA_REG_MSK_OR(_reg_addr, _bit_set, _bit_mask);
44 #define GET_LEVELBIT(_reg_addr, _bit_mask, _bit_set, _level_var) \
47 ((ANA_REG_GET(_reg_addr)&(_bit_mask))?(_bit_set):0); \
50 #define GET_LEVEL(_reg_addr, _bit0_mask, _bit1_mask, _level_var) \
53 (((ANA_REG_GET(_reg_addr)&(_bit0_mask))?(BIT_0):0)| \
54 ((ANA_REG_GET(_reg_addr)&(_bit1_mask))?(BIT_1):0)); \
57 /* macro used to set voltage level according to bit field */
58 #define SET_LEVELBIT(_reg_addr, _bit_mask, _set_bit, _rst_bit) \
62 (_set_bit) | (_rst_bit), \
63 ((_set_bit)&(_bit_mask)) | ((_rst_bit)&(~_bit_mask)) \
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) \
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))) \
79 #define LDO_REG_OR ANA_REG_OR
80 #define LDO_REG_AND ANA_REG_AND
81 #define LDO_REG_GET ANA_REG_GET
83 /**----------------------------------------------------------------------------*
85 **----------------------------------------------------------------------------*/
90 /**---------------------------------------------------------------------------*/
91 #endif //_LDO_REG_V3_H_