video.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef _THEAD_VIDEO_H_
  2. #define _THEAD_VIDEO_H_
  3. #include <linux/cdev.h>
  4. #include <linux/ioctl.h>
  5. #include <linux/delay.h>
  6. #include <linux/kernel.h>
  7. #include <linux/module.h>
  8. #include <linux/io.h>
  9. #include <linux/phy/phy.h>
  10. #include <linux/delay.h>
  11. #include <linux/interrupt.h>
  12. #include <linux/of.h>
  13. #include <linux/of_graph.h>
  14. #include <linux/platform_device.h>
  15. #include <linux/ratelimit.h>
  16. #include <linux/reset.h>
  17. #include <linux/videodev2.h>
  18. #include <linux/wait.h>
  19. #include "subdev.h"
  20. #define video_info(fmt, ...) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
  21. #define video_warn(fmt, ...) printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
  22. #define video_err(fmt, ...) printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
  23. typedef struct {
  24. int sub_dev_num;
  25. sub_dev_info_t sub_dev[20];
  26. } pipline_t;
  27. typedef struct video_drvdata {
  28. struct cdev cdev;
  29. struct device *dev;
  30. dev_t devt;
  31. struct class *class;
  32. int device_idx;
  33. struct mutex mutex;
  34. bool actived;
  35. pid_t actived_owner;
  36. int pipline_num;
  37. pipline_t piplines[20];
  38. int vi_mem_pool_region_id;
  39. void *private;
  40. } video_drvdata_t;
  41. typedef struct {
  42. char *subdev_name;
  43. char *sensor_name;
  44. unsigned int path_type;
  45. unsigned int pipeline_id;
  46. } pathtype_set_t;
  47. int video_create_capabilities_sysfs(struct platform_device *pdev);
  48. int video_remove_capabilities_sysfs(struct platform_device *pdev);
  49. int vedio_get_path_type(const char *subdev_name, const char *path_name);
  50. #endif /* _THEAD_VIDEO_H_ */