1 /*
2  * s3c24xx/s3c64xx SoC series Camera Interface (CAMIF) driver
3  *
4  * Copyright (C) 2012 Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9 */
10 
11 #ifndef MEDIA_S3C_CAMIF_
12 #define MEDIA_S3C_CAMIF_
13 
14 #include <linux/i2c.h>
15 #include <media/v4l2-mediabus.h>
16 
17 /**
18  * struct s3c_camif_sensor_info - an image sensor description
19  * @i2c_board_info: pointer to an I2C sensor subdevice board info
20  * @clock_frequency: frequency of the clock the host provides to a sensor
21  * @mbus_type: media bus type
22  * @i2c_bus_num: i2c control bus id the sensor is attached to
23  * @flags: the parallel bus flags defining signals polarity (V4L2_MBUS_*)
24  * @use_field: 1 if parallel bus FIELD signal is used (only s3c64xx)
25  */
26 struct s3c_camif_sensor_info {
27 	struct i2c_board_info i2c_board_info;
28 	unsigned long clock_frequency;
29 	enum v4l2_mbus_type mbus_type;
30 	u16 i2c_bus_num;
31 	u16 flags;
32 	u8 use_field;
33 };
34 
35 struct s3c_camif_plat_data {
36 	struct s3c_camif_sensor_info sensor;
37 	int (*gpio_get)(void);
38 	int (*gpio_put)(void);
39 };
40 
41 /* Platform default helper functions */
42 int s3c_camif_gpio_get(void);
43 int s3c_camif_gpio_put(void);
44 
45 #endif /* MEDIA_S3C_CAMIF_ */
46