| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
| 2 | /* |
| 3 | * s3c24xx/s3c64xx SoC series Camera Interface (CAMIF) driver |
| 4 | * |
| 5 | * Copyright (C) 2012 Sylwester Nawrocki <sylvester.nawrocki@gmail.com> |
| 6 | */ |
| 7 | |
| 8 | #ifndef MEDIA_S3C_CAMIF_ |
| 9 | #define MEDIA_S3C_CAMIF_ |
| 10 | |
| 11 | #include <linux/i2c.h> |
| 12 | #include <media/v4l2-mediabus.h> |
| 13 | |
| 14 | /** |
| 15 | * struct s3c_camif_sensor_info - an image sensor description |
| 16 | * @i2c_board_info: pointer to an I2C sensor subdevice board info |
| 17 | * @clock_frequency: frequency of the clock the host provides to a sensor |
| 18 | * @mbus_type: media bus type |
| 19 | * @i2c_bus_num: i2c control bus id the sensor is attached to |
| 20 | * @flags: the parallel bus flags defining signals polarity (V4L2_MBUS_*) |
| 21 | * @use_field: 1 if parallel bus FIELD signal is used (only s3c64xx) |
| 22 | */ |
| 23 | struct s3c_camif_sensor_info { |
| 24 | struct i2c_board_info i2c_board_info; |
| 25 | unsigned long clock_frequency; |
| 26 | enum v4l2_mbus_type mbus_type; |
| 27 | u16 i2c_bus_num; |
| 28 | u16 flags; |
| 29 | u8 use_field; |
| 30 | }; |
| 31 | |
| 32 | struct s3c_camif_plat_data { |
| 33 | struct s3c_camif_sensor_info sensor; |
| 34 | int (*gpio_get)(void); |
| 35 | int (*gpio_put)(void); |
| 36 | }; |
| 37 | |
| 38 | /* Platform default helper functions */ |
| 39 | int s3c_camif_gpio_get(void); |
| 40 | int s3c_camif_gpio_put(void); |
| 41 | |
| 42 | #endif /* MEDIA_S3C_CAMIF_ */ |