1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Samsung EXYNOS4x12 FIMC-IS (Imaging Subsystem) driver 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2013 Samsung Electronics Co., Ltd. 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Authors: Sylwester Nawrocki <s.nawrocki@samsung.com> 8*4882a593Smuzhiyun * Younghwan Joo <yhwan.joo@samsung.com> 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun #ifndef FIMC_IS_SENSOR_H_ 11*4882a593Smuzhiyun #define FIMC_IS_SENSOR_H_ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #include <linux/of.h> 14*4882a593Smuzhiyun #include <linux/types.h> 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #define S5K6A3_OPEN_TIMEOUT 2000 /* ms */ 17*4882a593Smuzhiyun #define S5K6A3_SENSOR_WIDTH 1392 18*4882a593Smuzhiyun #define S5K6A3_SENSOR_HEIGHT 1392 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun enum fimc_is_sensor_id { 21*4882a593Smuzhiyun FIMC_IS_SENSOR_ID_S5K3H2 = 1, 22*4882a593Smuzhiyun FIMC_IS_SENSOR_ID_S5K6A3, 23*4882a593Smuzhiyun FIMC_IS_SENSOR_ID_S5K4E5, 24*4882a593Smuzhiyun FIMC_IS_SENSOR_ID_S5K3H7, 25*4882a593Smuzhiyun FIMC_IS_SENSOR_ID_CUSTOM, 26*4882a593Smuzhiyun FIMC_IS_SENSOR_ID_END 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #define IS_SENSOR_CTRL_BUS_I2C0 0 30*4882a593Smuzhiyun #define IS_SENSOR_CTRL_BUS_I2C1 1 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun struct sensor_drv_data { 33*4882a593Smuzhiyun enum fimc_is_sensor_id id; 34*4882a593Smuzhiyun /* sensor open timeout in ms */ 35*4882a593Smuzhiyun unsigned short open_timeout; 36*4882a593Smuzhiyun }; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun /** 39*4882a593Smuzhiyun * struct fimc_is_sensor - fimc-is sensor data structure 40*4882a593Smuzhiyun * @drvdata: a pointer to the sensor's parameters data structure 41*4882a593Smuzhiyun * @i2c_bus: ISP I2C bus index (0...1) 42*4882a593Smuzhiyun * @test_pattern: true to enable video test pattern 43*4882a593Smuzhiyun */ 44*4882a593Smuzhiyun struct fimc_is_sensor { 45*4882a593Smuzhiyun const struct sensor_drv_data *drvdata; 46*4882a593Smuzhiyun unsigned int i2c_bus; 47*4882a593Smuzhiyun u8 test_pattern; 48*4882a593Smuzhiyun }; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun const struct sensor_drv_data *fimc_is_sensor_get_drvdata( 51*4882a593Smuzhiyun struct device_node *node); 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun #endif /* FIMC_IS_SENSOR_H_ */ 54