2010-10-07 10:06:16 -03:00
/*
* Samsung S5P SoC camera interface driver header
*
* Copyright ( c ) 2010 Samsung Electronics Co . , Ltd
* Author : Sylwester Nawrocki , < s . nawrocki @ samsung . com >
*
* 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 .
*/
2010-12-27 14:42:15 -03:00
# ifndef S5P_FIMC_H_
# define S5P_FIMC_H_
2010-10-07 10:06:16 -03:00
enum cam_bus_type {
FIMC_ITU_601 = 1 ,
FIMC_ITU_656 ,
FIMC_MIPI_CSI2 ,
FIMC_LCD_WB , /* FIFO link from LCD mixer */
} ;
struct i2c_board_info ;
/**
2010-12-27 14:42:15 -03:00
* struct s5p_fimc_isp_info - image sensor information required for host
2010-10-07 10:06:16 -03:00
* interace configuration .
*
* @ board_info : pointer to I2C subdevice ' s board info
2010-12-27 15:34:43 -03:00
* @ clk_frequency : frequency of the clock the host interface provides to sensor
2010-10-07 10:06:16 -03:00
* @ bus_type : determines bus type , MIPI , ITU - R BT .601 etc .
2011-02-21 12:09:01 -03:00
* @ csi_data_align : MIPI - CSI interface data alignment in bits
2010-10-07 10:06:16 -03:00
* @ i2c_bus_num : i2c control bus id the sensor is attached to
* @ mux_id : FIMC camera interface multiplexer index ( separate for MIPI and ITU )
2011-09-01 06:01:08 -03:00
* @ clk_id : index of the SoC peripheral clock for sensors
2011-09-19 12:38:35 -03:00
* @ flags : the parallel bus flags defining signals polarity ( V4L2_MBUS_ * )
2010-10-07 10:06:16 -03:00
*/
2010-12-27 14:42:15 -03:00
struct s5p_fimc_isp_info {
2010-10-07 10:06:16 -03:00
struct i2c_board_info * board_info ;
2010-12-27 15:34:43 -03:00
unsigned long clk_frequency ;
2010-10-07 10:06:16 -03:00
enum cam_bus_type bus_type ;
2011-02-21 12:09:01 -03:00
u16 csi_data_align ;
2010-10-07 10:06:16 -03:00
u16 i2c_bus_num ;
u16 mux_id ;
u16 flags ;
2011-09-01 06:01:08 -03:00
u8 clk_id ;
2010-10-07 10:06:16 -03:00
} ;
/**
2010-12-27 14:42:15 -03:00
* struct s5p_platform_fimc - camera host interface platform data
2010-10-07 10:06:16 -03:00
*
* @ isp_info : properties of camera sensor required for host interface setup
2011-02-28 11:12:19 -03:00
* @ num_clients : the number of attached image sensors
2010-10-07 10:06:16 -03:00
*/
2010-12-27 14:42:15 -03:00
struct s5p_platform_fimc {
2011-02-28 11:12:19 -03:00
struct s5p_fimc_isp_info * isp_info ;
int num_clients ;
2010-10-07 10:06:16 -03:00
} ;
2011-06-10 15:36:58 -03:00
/*
* v4l2_device notification id . This is only for internal use in the kernel .
* Sensor subdevs should issue S5P_FIMC_TX_END_NOTIFY notification in single
* frame capture mode when there is only one VSYNC pulse issued by the sensor
* at begining of the frame transmission .
*/
# define S5P_FIMC_TX_END_NOTIFY _IO('e', 0)
2012-04-27 09:33:10 -03:00
enum fimc_subdev_index {
IDX_SENSOR ,
IDX_CSIS ,
IDX_FLITE ,
IDX_FIMC ,
IDX_MAX ,
} ;
struct media_pipeline ;
struct v4l2_subdev ;
struct fimc_pipeline {
struct v4l2_subdev * subdevs [ IDX_MAX ] ;
struct media_pipeline * m_pipeline ;
} ;
2010-12-27 14:42:15 -03:00
# endif /* S5P_FIMC_H_ */