s3c_fimc.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * Samsung S5P SoC camera interface driver header
  3. *
  4. * Copyright (c) 2010 Samsung Electronics Co., Ltd
  5. * Author: Sylwester Nawrocki, <s.nawrocki@samsung.com>
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License version 2 as
  9. * published by the Free Software Foundation.
  10. */
  11. #ifndef S3C_FIMC_H_
  12. #define S3C_FIMC_H_
  13. enum cam_bus_type {
  14. FIMC_ITU_601 = 1,
  15. FIMC_ITU_656,
  16. FIMC_MIPI_CSI2,
  17. FIMC_LCD_WB, /* FIFO link from LCD mixer */
  18. };
  19. #define FIMC_CLK_INV_PCLK (1 << 0)
  20. #define FIMC_CLK_INV_VSYNC (1 << 1)
  21. #define FIMC_CLK_INV_HREF (1 << 2)
  22. #define FIMC_CLK_INV_HSYNC (1 << 3)
  23. struct i2c_board_info;
  24. /**
  25. * struct s3c_fimc_isp_info - image sensor information required for host
  26. * interace configuration.
  27. *
  28. * @board_info: pointer to I2C subdevice's board info
  29. * @bus_type: determines bus type, MIPI, ITU-R BT.601 etc.
  30. * @i2c_bus_num: i2c control bus id the sensor is attached to
  31. * @mux_id: FIMC camera interface multiplexer index (separate for MIPI and ITU)
  32. * @bus_width: camera data bus width in bits
  33. * @flags: flags defining bus signals polarity inversion (High by default)
  34. */
  35. struct s3c_fimc_isp_info {
  36. struct i2c_board_info *board_info;
  37. enum cam_bus_type bus_type;
  38. u16 i2c_bus_num;
  39. u16 mux_id;
  40. u16 bus_width;
  41. u16 flags;
  42. };
  43. #define FIMC_MAX_CAMIF_CLIENTS 2
  44. /**
  45. * struct s3c_platform_fimc - camera host interface platform data
  46. *
  47. * @isp_info: properties of camera sensor required for host interface setup
  48. */
  49. struct s3c_platform_fimc {
  50. struct s3c_fimc_isp_info *isp_info[FIMC_MAX_CAMIF_CLIENTS];
  51. };
  52. #endif /* S3C_FIMC_H_ */