s5p_fimc.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. * @clk_id: index of the SoC peripheral clock for sensors
  35. * @flags: flags defining bus signals polarity inversion (High by default)
  36. */
  37. struct s5p_fimc_isp_info {
  38. struct i2c_board_info *board_info;
  39. unsigned long clk_frequency;
  40. enum cam_bus_type bus_type;
  41. u16 csi_data_align;
  42. u16 i2c_bus_num;
  43. u16 mux_id;
  44. u16 flags;
  45. u8 clk_id;
  46. };
  47. /**
  48. * struct s5p_platform_fimc - camera host interface platform data
  49. *
  50. * @isp_info: properties of camera sensor required for host interface setup
  51. * @num_clients: the number of attached image sensors
  52. */
  53. struct s5p_platform_fimc {
  54. struct s5p_fimc_isp_info *isp_info;
  55. int num_clients;
  56. };
  57. #endif /* S5P_FIMC_H_ */