diff options
Diffstat (limited to 'drivers/staging/dream/include/mach/camera.h')
-rw-r--r-- | drivers/staging/dream/include/mach/camera.h | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/drivers/staging/dream/include/mach/camera.h b/drivers/staging/dream/include/mach/camera.h deleted file mode 100644 index c20f0423abd4..000000000000 --- a/drivers/staging/dream/include/mach/camera.h +++ /dev/null @@ -1,279 +0,0 @@ -/* - * Copyright (C) 2008-2009 QUALCOMM Incorporated. - */ - -#ifndef __ASM__ARCH_CAMERA_H -#define __ASM__ARCH_CAMERA_H - -#include <linux/list.h> -#include <linux/poll.h> -#include <linux/cdev.h> -#include <linux/platform_device.h> -#include "linux/types.h" - -#include <mach/board.h> -#include <media/msm_camera.h> - -#ifdef CONFIG_MSM_CAMERA_DEBUG -#define CDBG(fmt, args...) printk(KERN_INFO "msm_camera: " fmt, ##args) -#else -#define CDBG(fmt, args...) do { } while (0) -#endif - -#define MSM_CAMERA_MSG 0 -#define MSM_CAMERA_EVT 1 -#define NUM_WB_EXP_NEUTRAL_REGION_LINES 4 -#define NUM_WB_EXP_STAT_OUTPUT_BUFFERS 3 -#define NUM_AUTOFOCUS_MULTI_WINDOW_GRIDS 16 -#define NUM_AF_STAT_OUTPUT_BUFFERS 3 - -enum msm_queue { - MSM_CAM_Q_CTRL, /* control command or control command status */ - MSM_CAM_Q_VFE_EVT, /* adsp event */ - MSM_CAM_Q_VFE_MSG, /* adsp message */ - MSM_CAM_Q_V4L2_REQ, /* v4l2 request */ -}; - -enum vfe_resp_msg { - VFE_EVENT, - VFE_MSG_GENERAL, - VFE_MSG_SNAPSHOT, - VFE_MSG_OUTPUT1, - VFE_MSG_OUTPUT2, - VFE_MSG_STATS_AF, - VFE_MSG_STATS_WE, -}; - -struct msm_vfe_phy_info { - uint32_t sbuf_phy; - uint32_t y_phy; - uint32_t cbcr_phy; -}; - -struct msm_vfe_resp { - enum vfe_resp_msg type; - struct msm_vfe_evt_msg evt_msg; - struct msm_vfe_phy_info phy; - void *extdata; - int32_t extlen; -}; - -struct msm_vfe_callback { - void (*vfe_resp)(struct msm_vfe_resp *, - enum msm_queue, void *syncdata); - void* (*vfe_alloc)(int, void *syncdata); -}; - -struct msm_camvfe_fn { - int (*vfe_init)(struct msm_vfe_callback *, struct platform_device *); - int (*vfe_enable)(struct camera_enable_cmd *); - int (*vfe_config)(struct msm_vfe_cfg_cmd *, void *); - int (*vfe_disable)(struct camera_enable_cmd *, - struct platform_device *dev); - void (*vfe_release)(struct platform_device *); -}; - -struct msm_sensor_ctrl { - int (*s_init)(const struct msm_camera_sensor_info *); - int (*s_release)(void); - int (*s_config)(void __user *); -}; - -struct msm_sync { - /* These two queues are accessed from a process context only. */ - struct hlist_head frame; /* most-frequently accessed */ - struct hlist_head stats; - - /* The message queue is used by the control thread to send commands - * to the config thread, and also by the DSP to send messages to the - * config thread. Thus it is the only queue that is accessed from - * both interrupt and process context. - */ - spinlock_t msg_event_q_lock; - struct list_head msg_event_q; - wait_queue_head_t msg_event_wait; - - /* This queue contains preview frames. It is accessed by the DSP (in - * in interrupt context, and by the frame thread. - */ - spinlock_t prev_frame_q_lock; - struct list_head prev_frame_q; - wait_queue_head_t prev_frame_wait; - int unblock_poll_frame; - - /* This queue contains snapshot frames. It is accessed by the DSP (in - * interrupt context, and by the control thread. - */ - spinlock_t pict_frame_q_lock; - struct list_head pict_frame_q; - wait_queue_head_t pict_frame_wait; - - struct msm_camera_sensor_info *sdata; - struct msm_camvfe_fn vfefn; - struct msm_sensor_ctrl sctrl; - struct platform_device *pdev; - uint8_t opencnt; - void *cropinfo; - int croplen; - unsigned pict_pp; - - const char *apps_id; - - struct mutex lock; - struct list_head list; -}; - -#define MSM_APPS_ID_V4L2 "msm_v4l2" -#define MSM_APPS_ID_PROP "msm_qct" - -struct msm_device { - struct msm_sync *sync; /* most-frequently accessed */ - struct device *device; - struct cdev cdev; - /* opened is meaningful only for the config and frame nodes, - * which may be opened only once. - */ - atomic_t opened; -}; - -struct msm_control_device_queue { - spinlock_t ctrl_status_q_lock; - struct list_head ctrl_status_q; - wait_queue_head_t ctrl_status_wait; -}; - -struct msm_control_device { - struct msm_device *pmsm; - - /* This queue used by the config thread to send responses back to the - * control thread. It is accessed only from a process context. - */ - struct msm_control_device_queue ctrl_q; -}; - -/* this structure is used in kernel */ -struct msm_queue_cmd { - struct list_head list; - enum msm_queue type; - void *command; -}; - -struct register_address_value_pair { - uint16_t register_address; - uint16_t register_value; -}; - -struct msm_pmem_region { - struct hlist_node list; - int type; - void *vaddr; - unsigned long paddr; - unsigned long len; - struct file *file; - uint32_t y_off; - uint32_t cbcr_off; - int fd; - uint8_t active; -}; - -struct axidata { - uint32_t bufnum1; - uint32_t bufnum2; - struct msm_pmem_region *region; -}; - -#ifdef CONFIG_MSM_CAMERA_FLASH -int msm_camera_flash_set_led_state(unsigned led_state); -#else -static inline int msm_camera_flash_set_led_state(unsigned led_state) -{ - return -ENOTSUPP; -} -#endif - -/* Below functions are added for V4L2 kernel APIs */ -struct msm_v4l2_driver { - struct msm_sync *sync; - int (*open)(struct msm_sync *, const char *apps_id); - int (*release)(struct msm_sync *); - int (*ctrl)(struct msm_sync *, struct msm_ctrl_cmd *); - int (*reg_pmem)(struct msm_sync *, struct msm_pmem_info *); - int (*get_frame) (struct msm_sync *, struct msm_frame *); - int (*put_frame) (struct msm_sync *, struct msm_frame *); - int (*get_pict) (struct msm_sync *, struct msm_ctrl_cmd *); - unsigned int (*drv_poll) (struct msm_sync *, struct file *, - struct poll_table_struct *); -}; - -int msm_v4l2_register(struct msm_v4l2_driver *); -int msm_v4l2_unregister(struct msm_v4l2_driver *); - -void msm_camvfe_init(void); -int msm_camvfe_check(void *); -void msm_camvfe_fn_init(struct msm_camvfe_fn *, void *); -int msm_camera_drv_start(struct platform_device *dev, - int (*sensor_probe)(const struct msm_camera_sensor_info *, - struct msm_sensor_ctrl *)); - -enum msm_camio_clk_type { - CAMIO_VFE_MDC_CLK, - CAMIO_MDC_CLK, - CAMIO_VFE_CLK, - CAMIO_VFE_AXI_CLK, - - CAMIO_MAX_CLK -}; - -enum msm_camio_clk_src_type { - MSM_CAMIO_CLK_SRC_INTERNAL, - MSM_CAMIO_CLK_SRC_EXTERNAL, - MSM_CAMIO_CLK_SRC_MAX -}; - -enum msm_s_test_mode { - S_TEST_OFF, - S_TEST_1, - S_TEST_2, - S_TEST_3 -}; - -enum msm_s_resolution { - S_QTR_SIZE, - S_FULL_SIZE, - S_INVALID_SIZE -}; - -enum msm_s_reg_update { - /* Sensor egisters that need to be updated during initialization */ - S_REG_INIT, - /* Sensor egisters that needs periodic I2C writes */ - S_UPDATE_PERIODIC, - /* All the sensor Registers will be updated */ - S_UPDATE_ALL, - /* Not valid update */ - S_UPDATE_INVALID -}; - -enum msm_s_setting { - S_RES_PREVIEW, - S_RES_CAPTURE -}; - -int msm_camio_enable(struct platform_device *dev); - -int msm_camio_clk_enable(enum msm_camio_clk_type clk); -int msm_camio_clk_disable(enum msm_camio_clk_type clk); -int msm_camio_clk_config(uint32_t freq); -void msm_camio_clk_rate_set(int rate); -void msm_camio_clk_axi_rate_set(int rate); - -void msm_camio_camif_pad_reg_reset(void); -void msm_camio_camif_pad_reg_reset_2(void); - -void msm_camio_vfe_blk_reset(void); - -void msm_camio_clk_sel(enum msm_camio_clk_src_type); -void msm_camio_disable(struct platform_device *); -int msm_camio_probe_on(struct platform_device *); -int msm_camio_probe_off(struct platform_device *); -#endif |