mt_irtx.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. struct mt_irtx {
  2. unsigned int pwm_ch;
  3. unsigned int pwm_data_invert;
  4. void __iomem *reg_base;
  5. unsigned int irq;
  6. struct platform_device *plat_dev;
  7. unsigned int carrier_freq;
  8. atomic_t usage_cnt;
  9. /* struct clk *clk_irtx_main; */
  10. struct clk *clk_irtx_main;
  11. /* GPIO pin control */
  12. struct pinctrl *ppinctrl_irtx;
  13. };
  14. struct irtx_config {
  15. unsigned int start : 1;
  16. unsigned int mode : 2;
  17. unsigned int sw_o : 1;
  18. unsigned int b_ord : 1;
  19. unsigned int r_ord : 1;
  20. unsigned int ir_os : 1;
  21. unsigned int ir_inv : 1;
  22. unsigned int bit_num : 7;
  23. unsigned int data_inv : 1;
  24. };
  25. #define IRTX_IOC_SET_CARRIER_FREQ _IOW('R', 0, unsigned int)
  26. #define IRTX_IOC_GET_SOLUTTION_TYPE _IOR('R', 1, unsigned int)
  27. #define IRTX_IOC_SET_IRTX_LED_EN _IOW('R', 10, unsigned int)
  28. #define irtx_write32(b, a, v) mt_reg_sync_writel(v, (b)+(a))
  29. #define irtx_read32(b, a) ioread32((void __iomem *)((b)+(a)))
  30. #define CLOCK_SRC 26 /* MHz */
  31. #define IRTXCFG 0x0
  32. #define IRTXD0 0x4
  33. #define IRTXD1 0x8
  34. #define IRTXD2 0xC
  35. #define IRTX_L0H 0x10
  36. #define IRTX_L0L 0x14
  37. #define IRTX_L1H 0x18
  38. #define IRTX_L1L 0x1C
  39. #define IRTXSYNCH 0x20
  40. #define IRTXSYNCL 0x24
  41. #define IRTXMT 0x28