diff options
Diffstat (limited to 'include/linux/sensor/gp2a.h')
-rw-r--r-- | include/linux/sensor/gp2a.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/include/linux/sensor/gp2a.h b/include/linux/sensor/gp2a.h new file mode 100644 index 0000000..20b2014 --- /dev/null +++ b/include/linux/sensor/gp2a.h @@ -0,0 +1,74 @@ +#ifndef __GP2A_H__ +#define __GP2A_H__ + +#define I2C_M_WR 0 /* for i2c Write */ +#define I2c_M_RD 1 /* for i2c Read */ + +#define I2C_DF_NOTIFY 0x01 /* for i2c */ + +/* Registers */ +#define COMMAND1 0x00 +#define COMMAND2 0x01 /* Read&Write */ +#define COMMAND3 0x02 /* Read&Write */ +#define COMMAND4 0x03 /* Read&Write */ +#define INT_LT_LSB 0x04 /* Read&Write */ +#define INT_LT_MSB 0x05 /* Read&Write */ +#define INT_HT_LSB 0x06 /* Read&Write */ +#define INT_HT_MSB 0x07 /* Read&Write */ +#define PS_LT_LSB 0x08 /* Read&Write */ +#define PS_LT_MSB 0x09 /* Read&Write */ +#define PS_HT_LSB 0x0A /* Read&Write */ +#define PS_HT_MSB 0x0B /* Read&Write */ +#define DATA0_LSB 0x0C /* Read Only */ +#define DATA0_MSB 0x0D /* Read Only */ +#define DATA1_LSB 0x0E /* Read Only */ +#define DATA1_MSB 0x0F /* Read Only */ +#define DATA2_LSB 0x10 /* Read Only */ +#define DATA2_MSB 0x11 /* Read Only */ + +#define ADC_BUFFER_NUM 6 + +#define DEFAULT_LO_THR 0x07 /* sharp recommand Loff */ +#define DEFAULT_HI_THR 0x08 /* sharp recommand Lon */ + +#define OFFSET_ARRAY_LENGTH 10 + +/* 16 level for premium model*/ +enum { + LIGHT_DIM = 0, + LIGHT_LEVEL1 = 1, + LIGHT_LEVEL2 = 2, + LIGHT_LEVEL3 = 3, + LIGHT_LEVEL4 = 4, + LIGHT_LEVEL5 = 5, + LIGHT_LEVEL6 = 6, + LIGHT_LEVEL7 = 7, + LIGHT_LEVEL8 = 8, + LIGHT_LEVEL9 = 9, + LIGHT_LEVEL10 = 10, + LIGHT_LEVEL11 = 11, + LIGHT_LEVEL12 = 12, + LIGHT_LEVEL13 = 13, + LIGHT_LEVEL14 = 14, + LIGHT_LEVEL15 = 15, + LIGHT_LEVEL16 = 16, + LIGHT_INIT = 17, +}; + +/* extern variables */ +extern u8 lightsensor_mode; /* 0 = low, 1 = high */ +extern int proximity_enable; +extern char proximity_sensor_detection; + +/* prototype */ +int opt_i2c_read(u8 reg, unsigned char *rbuf, int len); +int opt_i2c_write(u8 reg, u8 *val); +int lightsensor_get_adcvalue(void); +int is_gp2a030a(void); + +struct gp2a_platform_data { + int (*gp2a_led_on) (bool); + int p_out; /* proximity-sensor-output gpio */ + unsigned long (*gp2a_get_threshold)(u8 *); +}; +#endif |