blob: 33033627d1fa9c970378a0cd25aedffd3ef8fa27 [file] [log] [blame]
/******************************************************************************
* isl290xx_common.h - Linux kernel module for intersil ambient light sensor
* and proximity sensor
*
*
********************************************************/
#ifndef __ISL290XX_COMMON_H__
#define __ISL290XX_COMMON_H__
#define ISL290XX_IOCTL_MAGIC 0XCF
#define ISL290XX_IOCTL_ALS_ON _IO(ISL290XX_IOCTL_MAGIC, 1)
#define ISL290XX_IOCTL_ALS_OFF _IO(ISL290XX_IOCTL_MAGIC, 2)
#define ISL290XX_IOCTL_ALS_DATA _IOR(ISL290XX_IOCTL_MAGIC, 3, short)
#define ISL290XX_IOCTL_ALS_CALIBRATE _IO(ISL290XX_IOCTL_MAGIC, 4)
#define ISL290XX_IOCTL_CONFIG_GET _IOR(ISL290XX_IOCTL_MAGIC, 5, \
struct isl290xx_cfg_s)
#define ISL290XX_IOCTL_CONFIG_SET _IOW(ISL290XX_IOCTL_MAGIC, \
6, struct isl290xx_cfg_s)
#define ISL290XX_IOCTL_PROX_ON _IO(ISL290XX_IOCTL_MAGIC, 7)
#define ISL290XX_IOCTL_PROX_OFF _IO(ISL290XX_IOCTL_MAGIC, 8)
#define ISL290XX_IOCTL_PROX_DATA _IOR(ISL290XX_IOCTL_MAGIC, \
9, struct isl290xx_prox_info_s)
#define ISL290XX_IOCTL_PROX_EVENT _IO(ISL290XX_IOCTL_MAGIC, 10)
#define ISL290XX_IOCTL_PROX_CALIBRATE _IO(ISL290XX_IOCTL_MAGIC, 11)
#define ISL290XX_IOCTL_PROX_GET_ENABLED _IOR(ISL290XX_IOCTL_MAGIC, \
12, int*)
#define ISL290XX_IOCTL_ALS_GET_ENABLED _IOR(ISL290XX_IOCTL_MAGIC, \
13, int*)
#define u32 unsigned int
#define u16 unsigned short
#define u8 unsigned char
struct isl290xx_cfg_s {
u8 prox_threshold_hi;
u8 prox_threshold_lo;
u8 prox_threshold_hi_def;
u8 prox_threshold_lo_def;
u8 aps_config;
u8 aps_config1;
u8 aps_config2;
u8 aps_intr;
u8 prox_offset;
u8 prox_boot_cali;
u8 scale_factor;
};
struct isl290xx_prox_info_s {
u8 prox_clear;
u8 prox_data;
int prox_event;
};
#endif