ov772x.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * ov772x Camera
  4. *
  5. * Copyright (C) 2008 Renesas Solutions Corp.
  6. * Kuninori Morimoto <[email protected]>
  7. */
  8. #ifndef __OV772X_H__
  9. #define __OV772X_H__
  10. /* for flags */
  11. #define OV772X_FLAG_VFLIP (1 << 0) /* Vertical flip image */
  12. #define OV772X_FLAG_HFLIP (1 << 1) /* Horizontal flip image */
  13. /*
  14. * for Edge ctrl
  15. *
  16. * strength also control Auto or Manual Edge Control Mode
  17. * see also OV772X_MANUAL_EDGE_CTRL
  18. */
  19. struct ov772x_edge_ctrl {
  20. unsigned char strength;
  21. unsigned char threshold;
  22. unsigned char upper;
  23. unsigned char lower;
  24. };
  25. #define OV772X_MANUAL_EDGE_CTRL 0x80 /* un-used bit of strength */
  26. #define OV772X_EDGE_STRENGTH_MASK 0x1F
  27. #define OV772X_EDGE_THRESHOLD_MASK 0x0F
  28. #define OV772X_EDGE_UPPER_MASK 0xFF
  29. #define OV772X_EDGE_LOWER_MASK 0xFF
  30. #define OV772X_AUTO_EDGECTRL(u, l) \
  31. { \
  32. .upper = (u & OV772X_EDGE_UPPER_MASK), \
  33. .lower = (l & OV772X_EDGE_LOWER_MASK), \
  34. }
  35. #define OV772X_MANUAL_EDGECTRL(s, t) \
  36. { \
  37. .strength = (s & OV772X_EDGE_STRENGTH_MASK) | \
  38. OV772X_MANUAL_EDGE_CTRL, \
  39. .threshold = (t & OV772X_EDGE_THRESHOLD_MASK), \
  40. }
  41. /**
  42. * struct ov772x_camera_info - ov772x driver interface structure
  43. * @flags: Sensor configuration flags
  44. * @edgectrl: Sensor edge control
  45. */
  46. struct ov772x_camera_info {
  47. unsigned long flags;
  48. struct ov772x_edge_ctrl edgectrl;
  49. };
  50. #endif /* __OV772X_H__ */