mjc_kernel_driver.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #ifndef __MJC_KERNEL_DRIVER_H__
  2. #define __MJC_KERNEL_DRIVER_H__
  3. extern u32 get_devinfo_with_index(u32 index);
  4. extern void mt_irq_set_sens(unsigned int irq, unsigned int sens);
  5. extern void mt_irq_set_polarity(unsigned int irq, unsigned int polarity);
  6. typedef struct _MJC_EVENT_T {
  7. void *pvWaitQueue; /* /< [IN] The waitqueue discription */
  8. unsigned int u4TimeoutMs; /* /< [IN] The timeout ms */
  9. void *pvFlag; /* /< [IN/OUT] flag */
  10. } MJC_EVENT_T;
  11. typedef struct {
  12. MJC_EVENT_T rEvent;
  13. } MJC_CONTEXT_T;
  14. /* ************************************ */
  15. /* IO control structure */
  16. /* ************************************ */
  17. typedef struct {
  18. unsigned int u4StructSize;
  19. } MJC_IOCTL_LOCK_HW_T;
  20. typedef struct {
  21. unsigned int u4StructSize;
  22. unsigned int u4TimeoutMs;
  23. } MJC_IOCTL_ISR_T;
  24. typedef struct {
  25. unsigned long reg;
  26. unsigned int val;
  27. unsigned int mask;
  28. } MJC_WRITE_REG_T;
  29. typedef struct {
  30. unsigned long reg;
  31. unsigned int val;
  32. unsigned int mask;
  33. } MJC_READ_REG_T;
  34. typedef struct {
  35. unsigned int u4StructSize;
  36. unsigned short u2OutputFramerate;
  37. } MJC_IOCTL_SRC_CLK_T;
  38. typedef struct {
  39. unsigned int u4StructSize;
  40. unsigned long ulRegPAddress;
  41. unsigned long ulRegPSize;
  42. } MJC_IOCTL_REG_INFO_T;
  43. typedef struct{
  44. unsigned int u4StructSize;
  45. unsigned char u1EFuseIndex;
  46. unsigned int u4EFuseBit;
  47. } MJC_IOCTL_EFUSE_INFO_T;
  48. #define MJC_IOC_MAGIC 'N'
  49. #define MJC_LOCKHW _IOW(MJC_IOC_MAGIC, 0x00, MJC_IOCTL_LOCK_HW_T)
  50. #define MJC_WAITISR _IOW(MJC_IOC_MAGIC, 0x01, MJC_IOCTL_ISR_T)
  51. #define MJC_READ_REG _IOW(MJC_IOC_MAGIC, 0x02, MJC_READ_REG_T)
  52. #define MJC_WRITE_REG _IOW(MJC_IOC_MAGIC, 0x03, MJC_WRITE_REG_T)
  53. #define MJC_WRITE_REG_TBL _IOW(MJC_IOC_MAGIC, 0x04, int)
  54. #define MJC_CLEAR_REG_TBL _IOW(MJC_IOC_MAGIC, 0x05, int)
  55. #define MJC_SOURCE_CLK _IOW(MJC_IOC_MAGIC, 0x06, MJC_IOCTL_SRC_CLK_T)
  56. #define MJC_REG_INFO _IOW(MJC_IOC_MAGIC, 0x07, MJC_IOCTL_REG_INFO_T)
  57. #define MJC_EFUSE_INFO _IOW(MJC_IOC_MAGIC, 0x08, MJC_IOCTL_EFUSE_INFO_T)
  58. #endif /* __MJC_KERNEL_DRIVER_H__ */