app_i2c.h
2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*
** Copyright (C) 2002 Optek. All rights reserved.
**
** The information and source code contained herein is the exclusive
** property of Mediamatics and may not be disclosed, examined or
** reproduced in whole or in part without explicit written authorization
** from the company.
*/
/*
** Author:
**
** Date:
**
** Description:
*/
#ifndef _APP_I2C_H_
#define _APP_I2C_H_
#include "c_def.h"
#include "oem.h"
//#define OTK5282P
//#define OTK5283P // remove to oem.h
//#define I2C_PIN_SWITCH
#define MAX_I2C_TRY 4
/*
@enum I2C_RETURN | Return status for driver calls
*/
typedef enum {
I2C_SUCCESS, /* @emem Success */
I2C_ERROR /* @emem Failure */
} I2C_RETURN;
/*
typedef struct {
U8 addr;
U8 sub_addr;
U8 *sbuf;
I16 slen;
U8 *rbuf;
I16 rlen;
} I2C_BUF;
*/
void app_i2c0_init (void);
void app_i2c0_open (void);
void app_i2c0_close (void);
void app_i2c0_fini (void);
void app_i2c2_init (void);
void app_i2c2_open (void);
void app_i2c2_close (void);
void app_i2c2_fini (void);
void app_i2c3_init (void);
I2C_RETURN I2C_write (BYTE i2c_addr, BYTE *wbuf, WORD len);
I2C_RETURN I2C_write_sub (BYTE i2c_addr, BYTE sub_addr, BYTE *wbuf, WORD len);
I2C_RETURN I2C_read (BYTE i2c_addr, BYTE *rbuf, WORD len);
I2C_RETURN I2C_read_sub (BYTE i2c_addr, BYTE sub_addr, BYTE *rbuf, WORD len);
#ifndef EMBEDED_HW_I2C
I2C_RETURN I2C0_write (BYTE i2c_addr, BYTE *wbuf, WORD len);
I2C_RETURN I2C0_write_sub (BYTE i2c_addr, BYTE sub_addr, BYTE *wbuf, WORD len);
I2C_RETURN I2C0_read (BYTE i2c_addr, BYTE *rbuf, WORD len);
I2C_RETURN I2C0_read_sub (BYTE i2c_addr, BYTE sub_addr, BYTE *rbuf, WORD len);
#else
I2C_RETURN I2C0_write (U8 i2c_addr, U8 *wbuf, U16 len);
I2C_RETURN I2C0_write_sub (U8 i2c_addr, U8 sub_addr, U8 *wbuf, U16 len);
I2C_RETURN I2C0_read (U8 i2c_addr, U8 *rbuf, U16 len);
I2C_RETURN I2C0_read_sub (BYTE i2c_addr, BYTE sub_addr, BYTE *rbuf, WORD len);
#endif
/***************PMU Section*****************************/
enum{
enCHARGE_0mA,
enCHARGE_5mA,
enCHARGE_10mA,
enCHARGE_20mA,
enCHARGE_50mA,
enCHARGE_75mA,
enCHARGE_100mA,
enCHARGE_150mA,
};
enum{
enLDO_CORE1V1,
enLDO_CORE1V0,
enLDO_CORE1V2,
};
enum{
enDC_BUCK_1V6,
enDC_BUCK_1V3,
enDC_BUCK_1V2,
enDC_BUCK_1V5,
};
enum{
enCODEC_LDO_3V2,
enCODEC_LDO_2V5,
enCODEC_LDO_1V8,
};
void app_otk5310_pmu_init(void);
void app_otk5310_pmu_recharge_ctl(U8 charge_mA);
void app_pmu_voltage_ctl(U8 buck_v, U8 core_v, U8 codec_v);
#endif //_APP_I2C_H_