tizen 2.4 release
[profile/mobile/platform/kernel/u-boot-tm1.git] / arch / arm / include / asm / arch-sc8800g / adi_hal_internal.h
1 /******************************************************************************
2  ** File Name:      adi_hal_internal.h                                                 *
3  ** Author:         tim.luo                                             *
4  ** DATE:           2/25/2010                                                *
5  ** Copyright:      2010 Spreatrum, Incoporated. All Rights Reserved.         *
6  ** Description:    This file defines the basic operation interfaces of       *
7  **                 Analog to Digital Module.                                       *
8  **                                                                                             *
9  ******************************************************************************
10
11  ******************************************************************************
12  **                        Edit History                                       *
13  ** ------------------------------------------------------------------------- *
14  ** DATE           NAME             DESCRIPTION                               *
15  ** 2/25/2010     Tim Luo      Create.                                   *
16  **                                                                                                *
17  ******************************************************************************/
18
19
20 #ifndef _ADI_HAL_INTERNAL_H_
21 #define  _ADI_HAL_INTERNAL_H_
22
23 #include "sci_types.h"
24
25     
26 unsigned short ADI_Analogdie_reg_read (unsigned int addr);
27
28 void ADI_Analogdie_reg_write (unsigned int addr, unsigned short data);
29
30
31 void ADI_init (void);
32
33 ///for analog die register operation
34 #define ANA_REG_OR(reg_addr, value)     \
35     do{\
36         unsigned short adi_tmp_val = ADI_Analogdie_reg_read(reg_addr); \
37         adi_tmp_val |= (uint16)(value); \
38         ADI_Analogdie_reg_write(reg_addr, adi_tmp_val); \
39     }while(0)
40 #define ANA_REG_MSK_OR(reg_addr, value, msk)        \
41     do{\
42         unsigned short adi_tmp_val = ADI_Analogdie_reg_read(reg_addr); \
43         adi_tmp_val &= (unsigned short)(~(msk)); \
44         adi_tmp_val |= (unsigned short)((value)&(msk)); \
45         ADI_Analogdie_reg_write(reg_addr, adi_tmp_val); \
46     }while(0)
47 #define ANA_REG_AND(reg_addr, value)    \
48     do{\
49         unsigned short adi_tmp_val = ADI_Analogdie_reg_read(reg_addr); \
50         adi_tmp_val &= (unsigned short)(value); \
51         ADI_Analogdie_reg_write(reg_addr, adi_tmp_val); \
52     }while(0)
53
54 #define ANA_REG_SET(reg_addr, value)    ADI_Analogdie_reg_write(reg_addr, (unsigned short)(value))
55
56 #define ANA_REG_GET(reg_addr)           ADI_Analogdie_reg_read(reg_addr)
57
58
59 #endif  //_ADI_HAL_INTERNAL_H_