Merge remote-tracking branch 'origin/v3.10/topic/android-fixes' into linux-linaro...
[firefly-linux-kernel-4.4.55.git] / include / media / s3c_camif.h
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_ */