#ifndef __DRV201_H__ #define __DRV201_H__ #include "../../include/linux/atomisp_platform.h" #include #include #define DRV201_VCM_ADDR 0x0e /* drv201 device structure */ struct drv201_device { const struct camera_af_platform_data *platform_data; struct timespec timestamp_t_focus_abs; struct timespec focus_time; /* Time when focus was last time set */ s32 focus; /* Current focus value */ s16 number_of_steps; bool initialized; /* true if drv201 is detected */ }; #define DRV201_INVALID_CONFIG 0xffffffff #define DRV201_MAX_FOCUS_POS 1023 #define DELAY_PER_STEP_NS 1000000 #define DELAY_MAX_PER_STEP_NS (1000000 * 1023) #define DRV201_CONTROL 2 #define DRV201_VCM_CURRENT 3 #define DRV201_STATUS 5 #define DRV201_MODE 6 #define DRV201_VCM_FREQ 7 #define DEFAULT_CONTROL_VAL 2 #define DRV201_RESET 1 #define WAKEUP_DELAY_US 100 #define VCM_CODE_MASK 0x03ff #endif