2011-02-13 00:05:06 +03:00
/*
* ispccp2 . h
*
* TI OMAP3 ISP - CCP2 module
*
* Copyright ( C ) 2010 Nokia Corporation
* Copyright ( C ) 2010 Texas Instruments , Inc .
*
* Contacts : Laurent Pinchart < laurent . pinchart @ ideasonboard . com >
* Sakari Ailus < sakari . ailus @ iki . fi >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# ifndef OMAP3_ISP_CCP2_H
# define OMAP3_ISP_CCP2_H
# include <linux/videodev2.h>
struct isp_device ;
struct isp_csiphy ;
/* Sink and source ccp2 pads */
# define CCP2_PAD_SINK 0
# define CCP2_PAD_SOURCE 1
# define CCP2_PADS_NUM 2
/* CCP2 input media entity */
enum ccp2_input_entity {
CCP2_INPUT_NONE ,
CCP2_INPUT_SENSOR ,
CCP2_INPUT_MEMORY ,
} ;
/* CCP2 output media entity */
enum ccp2_output_entity {
CCP2_OUTPUT_NONE ,
CCP2_OUTPUT_CCDC ,
CCP2_OUTPUT_MEMORY ,
} ;
/* Logical channel configuration */
struct isp_interface_lcx_config {
int crc ;
u32 data_start ;
u32 data_size ;
u32 format ;
} ;
/* Memory channel configuration */
struct isp_interface_mem_config {
u32 dst_port ;
u32 vsize_count ;
u32 hsize_count ;
u32 src_ofst ;
u32 dst_ofst ;
} ;
/* CCP2 device */
struct isp_ccp2_device {
struct v4l2_subdev subdev ;
struct v4l2_mbus_framefmt formats [ CCP2_PADS_NUM ] ;
struct media_pad pads [ CCP2_PADS_NUM ] ;
enum ccp2_input_entity input ;
enum ccp2_output_entity output ;
struct isp_interface_lcx_config if_cfg ;
struct isp_interface_mem_config mem_cfg ;
struct isp_video video_in ;
struct isp_csiphy * phy ;
2011-05-03 14:41:22 +04:00
struct regulator * vdds_csib ;
2011-02-13 00:05:06 +03:00
enum isp_pipeline_stream_state state ;
wait_queue_head_t wait ;
atomic_t stopping ;
} ;
/* Function declarations */
int omap3isp_ccp2_init ( struct isp_device * isp ) ;
void omap3isp_ccp2_cleanup ( struct isp_device * isp ) ;
int omap3isp_ccp2_register_entities ( struct isp_ccp2_device * ccp2 ,
struct v4l2_device * vdev ) ;
void omap3isp_ccp2_unregister_entities ( struct isp_ccp2_device * ccp2 ) ;
2011-12-07 15:34:50 +04:00
void omap3isp_ccp2_isr ( struct isp_ccp2_device * ccp2 ) ;
2011-02-13 00:05:06 +03:00
# endif /* OMAP3_ISP_CCP2_H */