s5p_fimc.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 S5P_FIMC_H_
  12. #define S5P_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 s5p_fimc_isp_info - image sensor information required for host
  26. * interace configuration.
  27. *
  28. * @board_info: pointer to I2C subdevice's board info
  29. * @clk_frequency: frequency of the clock the host interface provides to sensor
  30. * @bus_type: determines bus type, MIPI, ITU-R BT.601 etc.
  31. * @csi_data_align: MIPI-CSI interface data alignment in bits
  32. * @i2c_bus_num: i2c control bus id the sensor is attached to
  33. * @mux_id: FIMC camera interface multiplexer index (separate for MIPI and ITU)
  34. * @flags: flags defining bus signals polarity inversion (High by default)
  35. */
  36. struct s5p_fimc_isp_info {
  37. struct i2c_board_info *board_info;
  38. unsigned long clk_frequency;
  39. enum cam_bus_type bus_type;
  40. u16 csi_data_align;
  41. u16 i2c_bus_num;
  42. u16 mux_id;
  43. u16 flags;
  44. };
  45. /**
  46. * struct s5p_platform_fimc - camera host interface platform data
  47. *
  48. * @isp_info: properties of camera sensor required for host interface setup
  49. * @num_clients: the number of attached image sensors
  50. */
  51. struct s5p_platform_fimc {
  52. struct s5p_fimc_isp_info *isp_info;
  53. int num_clients;
  54. };
  55. #endif /* S5P_FIMC_H_ */