s5p_fimc.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. struct i2c_board_info;
  20. /**
  21. * struct s5p_fimc_isp_info - image sensor information required for host
  22. * interace configuration.
  23. *
  24. * @board_info: pointer to I2C subdevice's board info
  25. * @clk_frequency: frequency of the clock the host interface provides to sensor
  26. * @bus_type: determines bus type, MIPI, ITU-R BT.601 etc.
  27. * @csi_data_align: MIPI-CSI interface data alignment in bits
  28. * @i2c_bus_num: i2c control bus id the sensor is attached to
  29. * @mux_id: FIMC camera interface multiplexer index (separate for MIPI and ITU)
  30. * @clk_id: index of the SoC peripheral clock for sensors
  31. * @flags: the parallel bus flags defining signals polarity (V4L2_MBUS_*)
  32. */
  33. struct s5p_fimc_isp_info {
  34. struct i2c_board_info *board_info;
  35. unsigned long clk_frequency;
  36. enum cam_bus_type bus_type;
  37. u16 csi_data_align;
  38. u16 i2c_bus_num;
  39. u16 mux_id;
  40. u16 flags;
  41. u8 clk_id;
  42. };
  43. /**
  44. * struct s5p_platform_fimc - camera host interface platform data
  45. *
  46. * @isp_info: properties of camera sensor required for host interface setup
  47. * @num_clients: the number of attached image sensors
  48. */
  49. struct s5p_platform_fimc {
  50. struct s5p_fimc_isp_info *isp_info;
  51. int num_clients;
  52. };
  53. /*
  54. * v4l2_device notification id. This is only for internal use in the kernel.
  55. * Sensor subdevs should issue S5P_FIMC_TX_END_NOTIFY notification in single
  56. * frame capture mode when there is only one VSYNC pulse issued by the sensor
  57. * at begining of the frame transmission.
  58. */
  59. #define S5P_FIMC_TX_END_NOTIFY _IO('e', 0)
  60. #endif /* S5P_FIMC_H_ */