diff options
Diffstat (limited to 'drivers/media/platform/exynos4-is/fimc-is-sensor.h')
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-is-sensor.h | 49 |
1 files changed, 8 insertions, 41 deletions
diff --git a/drivers/media/platform/exynos4-is/fimc-is-sensor.h b/drivers/media/platform/exynos4-is/fimc-is-sensor.h index 6036d49a6c68..173ccffa4bcd 100644 --- a/drivers/media/platform/exynos4-is/fimc-is-sensor.h +++ b/drivers/media/platform/exynos4-is/fimc-is-sensor.h | |||
@@ -13,24 +13,13 @@ | |||
13 | #ifndef FIMC_IS_SENSOR_H_ | 13 | #ifndef FIMC_IS_SENSOR_H_ |
14 | #define FIMC_IS_SENSOR_H_ | 14 | #define FIMC_IS_SENSOR_H_ |
15 | 15 | ||
16 | #include <linux/clk.h> | 16 | #include <linux/of.h> |
17 | #include <linux/device.h> | 17 | #include <linux/types.h> |
18 | #include <linux/kernel.h> | ||
19 | #include <linux/platform_device.h> | ||
20 | #include <linux/regulator/consumer.h> | ||
21 | #include <linux/videodev2.h> | ||
22 | #include <media/v4l2-subdev.h> | ||
23 | |||
24 | #define FIMC_IS_SENSOR_OPEN_TIMEOUT 2000 /* ms */ | ||
25 | |||
26 | #define FIMC_IS_SENSOR_DEF_PIX_WIDTH 1296 | ||
27 | #define FIMC_IS_SENSOR_DEF_PIX_HEIGHT 732 | ||
28 | 18 | ||
19 | #define S5K6A3_OPEN_TIMEOUT 2000 /* ms */ | ||
29 | #define S5K6A3_SENSOR_WIDTH 1392 | 20 | #define S5K6A3_SENSOR_WIDTH 1392 |
30 | #define S5K6A3_SENSOR_HEIGHT 1392 | 21 | #define S5K6A3_SENSOR_HEIGHT 1392 |
31 | 22 | ||
32 | #define SENSOR_NUM_SUPPLIES 2 | ||
33 | |||
34 | enum fimc_is_sensor_id { | 23 | enum fimc_is_sensor_id { |
35 | FIMC_IS_SENSOR_ID_S5K3H2 = 1, | 24 | FIMC_IS_SENSOR_ID_S5K3H2 = 1, |
36 | FIMC_IS_SENSOR_ID_S5K6A3, | 25 | FIMC_IS_SENSOR_ID_S5K6A3, |
@@ -45,45 +34,23 @@ enum fimc_is_sensor_id { | |||
45 | 34 | ||
46 | struct sensor_drv_data { | 35 | struct sensor_drv_data { |
47 | enum fimc_is_sensor_id id; | 36 | enum fimc_is_sensor_id id; |
48 | const char * const subdev_name; | 37 | /* sensor open timeout in ms */ |
49 | unsigned int width; | 38 | unsigned short open_timeout; |
50 | unsigned int height; | ||
51 | }; | 39 | }; |
52 | 40 | ||
53 | /** | 41 | /** |
54 | * struct fimc_is_sensor - fimc-is sensor data structure | 42 | * struct fimc_is_sensor - fimc-is sensor data structure |
55 | * @dev: pointer to this I2C client device structure | ||
56 | * @subdev: the image sensor's v4l2 subdev | ||
57 | * @pad: subdev media source pad | ||
58 | * @supplies: image sensor's voltage regulator supplies | ||
59 | * @gpio_reset: GPIO connected to the sensor's reset pin | ||
60 | * @drvdata: a pointer to the sensor's parameters data structure | 43 | * @drvdata: a pointer to the sensor's parameters data structure |
61 | * @i2c_bus: ISP I2C bus index (0...1) | 44 | * @i2c_bus: ISP I2C bus index (0...1) |
62 | * @test_pattern: true to enable video test pattern | 45 | * @test_pattern: true to enable video test pattern |
63 | * @lock: mutex protecting the structure's members below | ||
64 | * @format: media bus format at the sensor's source pad | ||
65 | */ | 46 | */ |
66 | struct fimc_is_sensor { | 47 | struct fimc_is_sensor { |
67 | struct device *dev; | ||
68 | struct v4l2_subdev subdev; | ||
69 | struct media_pad pad; | ||
70 | struct regulator_bulk_data supplies[SENSOR_NUM_SUPPLIES]; | ||
71 | int gpio_reset; | ||
72 | const struct sensor_drv_data *drvdata; | 48 | const struct sensor_drv_data *drvdata; |
73 | unsigned int i2c_bus; | 49 | unsigned int i2c_bus; |
74 | bool test_pattern; | 50 | u8 test_pattern; |
75 | |||
76 | struct mutex lock; | ||
77 | struct v4l2_mbus_framefmt format; | ||
78 | }; | 51 | }; |
79 | 52 | ||
80 | static inline | 53 | const struct sensor_drv_data *fimc_is_sensor_get_drvdata( |
81 | struct fimc_is_sensor *sd_to_fimc_is_sensor(struct v4l2_subdev *sd) | 54 | struct device_node *node); |
82 | { | ||
83 | return container_of(sd, struct fimc_is_sensor, subdev); | ||
84 | } | ||
85 | |||
86 | int fimc_is_register_sensor_driver(void); | ||
87 | void fimc_is_unregister_sensor_driver(void); | ||
88 | 55 | ||
89 | #endif /* FIMC_IS_SENSOR_H_ */ | 56 | #endif /* FIMC_IS_SENSOR_H_ */ |