upload tizen1.0 source
[kernel/linux-2.6.36.git] / include / linux / input / gp2a.h
1 #ifndef __GP2A_H__
2 #define __GP2A_H__
3
4 #define I2C_M_WR 0              /* for i2c Write */
5 #define I2c_M_RD 1              /* for i2c Read */
6
7 #define I2C_DF_NOTIFY                   0x01    /* for i2c */
8
9 /* Registers */
10 #define COMMAND1    0x00
11 #define COMMAND2    0x01        /* Read&Write */
12 #define COMMAND3    0x02        /* Read&Write */
13 #define COMMAND4    0x03        /* Read&Write */
14 #define INT_LT_LSB  0x04        /* Read&Write */
15 #define INT_LT_MSB  0x05        /* Read&Write */
16 #define INT_HT_LSB  0x06        /* Read&Write */
17 #define INT_HT_MSB  0x07        /* Read&Write */
18 #define PS_LT_LSB   0x08        /* Read&Write */
19 #define PS_LT_MSB   0x09        /* Read&Write */
20 #define PS_HT_LSB   0x0A        /* Read&Write */
21 #define PS_HT_MSB   0x0B        /* Read&Write */
22 #define DATA0_LSB   0x0C        /* Read Only */
23 #define DATA0_MSB   0x0D        /* Read Only */
24 #define DATA1_LSB   0x0E        /* Read Only */
25 #define DATA1_MSB   0x0F        /* Read Only */
26 #define DATA2_LSB   0x10        /* Read Only */
27 #define DATA2_MSB   0x11        /* Read Only */
28
29 #define ADC_BUFFER_NUM  6
30
31 /* 16 level for premium model*/
32 enum {
33         LIGHT_DIM   = 0,
34         LIGHT_LEVEL1   = 1,
35         LIGHT_LEVEL2   = 2,
36         LIGHT_LEVEL3   = 3,
37         LIGHT_LEVEL4   = 4,
38         LIGHT_LEVEL5   = 5,
39         LIGHT_LEVEL6   = 6,
40         LIGHT_LEVEL7   = 7,
41         LIGHT_LEVEL8   = 8,
42         LIGHT_LEVEL9   = 9,
43         LIGHT_LEVEL10   = 10,
44         LIGHT_LEVEL11   = 11,
45         LIGHT_LEVEL12   = 12,
46         LIGHT_LEVEL13   = 13,
47         LIGHT_LEVEL14   = 14,
48         LIGHT_LEVEL15   = 15,
49         LIGHT_LEVEL16   = 16,
50         LIGHT_INIT  = 17,
51 };
52
53 /* extern variables */
54 extern u8 lightsensor_mode;     /* 0 = low, 1 = high */
55 extern int proximity_enable;
56 extern char proximity_sensor_detection;
57
58 /* prototype */
59 int opt_i2c_read(u8 reg, unsigned char *rbuf, int len);
60 int opt_i2c_write(u8 reg, u8 *val);
61 int lightsensor_get_adcvalue(void);
62
63 struct gp2a_platform_data {
64         int (*gp2a_led_on) (bool);
65         int p_out; /* proximity-sensor-output gpio */
66         int (*gp2a_get_low_threshold)(void);
67 };
68 #endif