You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.5 KiB
125 lines
4.5 KiB
/* |
|
* amba_lens_interface.h |
|
* |
|
* History: |
|
* 2014/10/10 - [Peter Jiao] Mod base on amba_piris.h |
|
* |
|
* Copyright (c) 2016 Ambarella, Inc. |
|
* |
|
* This file and its contents ("Software") are protected by intellectual |
|
* property rights including, without limitation, U.S. and/or foreign |
|
* copyrights. This Software is also the confidential and proprietary |
|
* information of Ambarella, Inc. and its licensors. You may not use, reproduce, |
|
* disclose, distribute, modify, or otherwise prepare derivative works of this |
|
* Software or any portion thereof except pursuant to a signed license agreement |
|
* or nondisclosure agreement with Ambarella, Inc. or its authorized affiliates. |
|
* In the absence of such an agreement, you agree to promptly notify and return |
|
* this Software to Ambarella, Inc. |
|
* |
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, |
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, |
|
* MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
* IN NO EVENT SHALL AMBARELLA, INC. OR ITS AFFILIATES BE LIABLE FOR ANY DIRECT, |
|
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
|
* LOSS OF USE, DATA, OR PROFITS; COMPUTER FAILURE OR MALFUNCTION; OR BUSINESS |
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
* POSSIBILITY OF SUCH DAMAGE. |
|
* |
|
*/ |
|
|
|
#ifndef __AMBA_LENS_INTERFACE_H__ |
|
#define __AMBA_LENS_INTERFACE_H__ |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
|
|
enum P_IRIS_WORK_STATE { |
|
P_IRIS_WORK_STATE_NOT_INIT = 0, //uninitialized |
|
P_IRIS_WORK_STATE_PREPARING = 1, //doing init |
|
P_IRIS_WORK_STATE_READY = 2, //init done , ready to adjust p-iris (normal working), or run stop (back to ready) |
|
P_IRIS_WORK_STATE_RUNNING = 3, //running. |
|
}; |
|
|
|
#define P_IRIS_IOC_MAGIC 'p' |
|
|
|
enum P_IRIS_IOC_ENUM { |
|
IOC_P_IRIS_SET_POS = 0, |
|
IOC_P_IRIS_RESET = 1, |
|
IOC_P_IRIS_MOVE_STEPS = 2, |
|
IOC_P_IRIS_GET_POS = 3, |
|
IOC_P_IRIS_GET_STATE = 4, |
|
IOC_P_IRIS_CONFIG = 5, |
|
}; |
|
|
|
#define AMBA_IOC_P_IRIS_SET_POS _IOW(P_IRIS_IOC_MAGIC, IOC_P_IRIS_SET_POS, int) |
|
#define AMBA_IOC_P_IRIS_RESET _IOW(P_IRIS_IOC_MAGIC, IOC_P_IRIS_RESET, int) |
|
#define AMBA_IOC_P_IRIS_MOVE_STEPS _IOW(P_IRIS_IOC_MAGIC, IOC_P_IRIS_MOVE_STEPS, int) |
|
#define AMBA_IOC_P_IRIS_GET_POS _IOR(P_IRIS_IOC_MAGIC, IOC_P_IRIS_GET_POS, int *) |
|
#define AMBA_IOC_P_IRIS_GET_STATE _IOR(P_IRIS_IOC_MAGIC, IOC_P_IRIS_GET_STATE, int *) |
|
#define AMBA_IOC_P_IRIS_CONFIG _IOR(P_IRIS_IOC_MAGIC, IOC_P_IRIS_CONFIG, int) |
|
|
|
#define P_IRIS_CONTROLLER_MAX_GPIO_NUM 3 |
|
typedef struct amba_p_iris_cfg_s{ |
|
int gpio_id[P_IRIS_CONTROLLER_MAX_GPIO_NUM]; //gpio_id[0]= IN1, gpio_id[1]=IN2, gpio_id[2]=EN |
|
int gpio_val; //bit0 is IN1, bit1 is IN2 |
|
int timer_period; //in ms |
|
int max_mechanical; |
|
int min_mechanical ; |
|
int max_optical; |
|
int min_optical; |
|
}amba_p_iris_cfg_t; |
|
|
|
|
|
#define MFZ_IOC_MAGIC 'p' |
|
|
|
enum MFZ_IOC_ENUM { |
|
IOC_MFZ_GET_STATUS = 0, |
|
IOC_MFZ_SET_ENABLE = 1, |
|
IOC_MFZ_ZOOM_SET = 2, |
|
IOC_MFZ_FOCUS_SET = 3, |
|
IOC_MFZ_IRIS_SET = 4, |
|
IOC_MFZ_ZOOM_STOP = 5, |
|
IOC_MFZ_FOCUS_STOP = 6, |
|
}; |
|
|
|
#define AMBA_IOC_MFZ_GET_STATUS _IOW(MFZ_IOC_MAGIC, IOC_MFZ_GET_STATUS, u32 *) |
|
#define AMBA_IOC_MFZ_SET_ENABLE _IOW(MFZ_IOC_MAGIC, IOC_MFZ_SET_ENABLE, u32) |
|
#define AMBA_IOC_MFZ_ZOOM_SET _IOR(MFZ_IOC_MAGIC, IOC_MFZ_ZOOM_SET, u32) |
|
#define AMBA_IOC_MFZ_FOCUS_SET _IOR(MFZ_IOC_MAGIC, IOC_MFZ_FOCUS_SET, u32) |
|
#define AMBA_IOC_MFZ_IRIS_SET _IOR(MFZ_IOC_MAGIC, IOC_MFZ_IRIS_SET, u32) |
|
#define AMBA_IOC_MFZ_ZOOM_STOP _IOW(MFZ_IOC_MAGIC, IOC_MFZ_ZOOM_STOP, u32 *) |
|
#define AMBA_IOC_MFZ_FOCUS_STOP _IOW(MFZ_IOC_MAGIC, IOC_MFZ_FOCUS_STOP, u32 *) |
|
|
|
#define MFZ_COUNT_SHIFT 16 |
|
#define MFZ_COUNT_MASK 0xFFF |
|
#define MFZ_DOCMD_SHIFT 28 |
|
#define MFZ_DOCMD_MASK 0xF |
|
#define MFZ_STATUS_MASK 0xFF |
|
#define MFZ_STATUS_MASK_ALL 0xFFFFFF |
|
#define MFZ_STEP_MASK 0xFFFF |
|
#define MFZ_EXCEPT_FLAG 0xFFFF8000 |
|
#define MFZ_ZSTEP_SHIFT 48 |
|
#define MFZ_FSTEP_SHIFT 32 |
|
#define MFZ_TDN_SHIFT 24 |
|
#define MFZ_IRIS_SHIFT 16 |
|
#define MFZ_ZOOM_SHIFT 8 |
|
#define MFZ_ENABLE_MASK 0xF |
|
#define MFZ_CONFIG_MASK 0xF0 |
|
#define MFZ_ENABLE 0x11 |
|
#define MFZ_DISABLE 0x10 |
|
#define MFZ_DAY 0x10 |
|
#define MFZ_NIGHT 0x11 |
|
|
|
#define FULL_SHIFT_STEP 8 |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif // __AMBA_LENS_INTERFACE_H__ |
|
|
|
|