ccci.h 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. #ifndef __CCCI_H__
  2. #define __CCCI_H__
  3. #include <ccci_common.h>
  4. typedef void (*ccci_aed_cb_t) (unsigned int flag, char *aed_str);
  5. /******************************************************************************/
  6. /** mdlogger mode define **/
  7. /******************************************************************************/
  8. enum LOGGING_MODE {
  9. MODE_UNKNOWN = -1, /* -1 */
  10. MODE_IDLE, /* 0 */
  11. MODE_USB, /* 1 */
  12. MODE_SD, /* 2 */
  13. MODE_POLLING, /* 3 */
  14. MODE_WAITSD, /* 4 */
  15. };
  16. /* ================================================================================== */
  17. /* IOCTL commands */
  18. /* ================================================================================== */
  19. #define CCCI_IOC_MAGIC 'C'
  20. #define CCCI_IOC_MD_RESET _IO(CCCI_IOC_MAGIC, 0) /* mdlogger META */
  21. #define CCCI_IOC_GET_MD_STATE _IOR(CCCI_IOC_MAGIC, 1, unsigned int) /* audio */
  22. #define CCCI_IOC_PCM_BASE_ADDR _IOR(CCCI_IOC_MAGIC, 2, unsigned int) /* audio */
  23. #define CCCI_IOC_PCM_LEN _IOR(CCCI_IOC_MAGIC, 3, unsigned int) /* audio */
  24. #define CCCI_IOC_FORCE_MD_ASSERT _IO(CCCI_IOC_MAGIC, 4) /* muxreport mdlogger */
  25. #define CCCI_IOC_ALLOC_MD_LOG_MEM _IO(CCCI_IOC_MAGIC, 5) /* mdlogger */
  26. #define CCCI_IOC_DO_MD_RST _IO(CCCI_IOC_MAGIC, 6) /* md_init */
  27. #define CCCI_IOC_SEND_RUN_TIME_DATA _IO(CCCI_IOC_MAGIC, 7) /* md_init */
  28. #define CCCI_IOC_GET_MD_INFO _IOR(CCCI_IOC_MAGIC, 8, unsigned int) /* md_init */
  29. #define CCCI_IOC_GET_MD_EX_TYPE _IOR(CCCI_IOC_MAGIC, 9, unsigned int) /* mdlogger */
  30. #define CCCI_IOC_SEND_STOP_MD_REQUEST _IO(CCCI_IOC_MAGIC, 10) /* muxreport */
  31. #define CCCI_IOC_SEND_START_MD_REQUEST _IO(CCCI_IOC_MAGIC, 11) /* muxreport */
  32. #define CCCI_IOC_DO_STOP_MD _IO(CCCI_IOC_MAGIC, 12) /* md_init */
  33. #define CCCI_IOC_DO_START_MD _IO(CCCI_IOC_MAGIC, 13) /* md_init */
  34. #define CCCI_IOC_ENTER_DEEP_FLIGHT _IO(CCCI_IOC_MAGIC, 14) /* RILD */
  35. #define CCCI_IOC_LEAVE_DEEP_FLIGHT _IO(CCCI_IOC_MAGIC, 15) /* RILD */
  36. #define CCCI_IOC_POWER_ON_MD _IO(CCCI_IOC_MAGIC, 16) /* md_init */
  37. #define CCCI_IOC_POWER_OFF_MD _IO(CCCI_IOC_MAGIC, 17) /* md_init */
  38. #define CCCI_IOC_POWER_ON_MD_REQUEST _IO(CCCI_IOC_MAGIC, 18)
  39. #define CCCI_IOC_POWER_OFF_MD_REQUEST _IO(CCCI_IOC_MAGIC, 19)
  40. #define CCCI_IOC_SIM_SWITCH _IOW(CCCI_IOC_MAGIC, 20, unsigned int) /* RILD */
  41. #define CCCI_IOC_SEND_BATTERY_INFO _IO(CCCI_IOC_MAGIC, 21) /* md_init */
  42. #define CCCI_IOC_SIM_SWITCH_TYPE _IOR(CCCI_IOC_MAGIC, 22, unsigned int) /* RILD */
  43. #define CCCI_IOC_STORE_SIM_MODE _IOW(CCCI_IOC_MAGIC, 23, unsigned int) /* RILD */
  44. #define CCCI_IOC_GET_SIM_MODE _IOR(CCCI_IOC_MAGIC, 24, unsigned int) /* RILD */
  45. #define CCCI_IOC_RELOAD_MD_TYPE _IO(CCCI_IOC_MAGIC, 25) /* META md_init */
  46. #define CCCI_IOC_GET_SIM_TYPE _IOR(CCCI_IOC_MAGIC, 26, unsigned int) /* terservice */
  47. #define CCCI_IOC_ENABLE_GET_SIM_TYPE _IOW(CCCI_IOC_MAGIC, 27, unsigned int) /* terservice */
  48. #define CCCI_IOC_SEND_ICUSB_NOTIFY _IOW(CCCI_IOC_MAGIC, 28, unsigned int) /* icusbd */
  49. #define CCCI_IOC_SET_MD_IMG_EXIST _IOW(CCCI_IOC_MAGIC, 29, unsigned int) /* md_init */
  50. #define CCCI_IOC_GET_MD_IMG_EXIST _IOR(CCCI_IOC_MAGIC, 30, unsigned int)
  51. #define CCCI_IOC_GET_MD_TYPE _IOR(CCCI_IOC_MAGIC, 31, unsigned int) /* RILD */
  52. #define CCCI_IOC_STORE_MD_TYPE _IOW(CCCI_IOC_MAGIC, 32, unsigned int) /* RILD */
  53. #define CCCI_IOC_GET_MD_TYPE_SAVING _IOR(CCCI_IOC_MAGIC, 33, unsigned int) /* META */
  54. #define CCCI_IOC_GET_EXT_MD_POST_FIX _IOR(CCCI_IOC_MAGIC, 34, char[32]) /* eemcs_fsd */
  55. #define CCCI_IOC_FORCE_FD _IOW(CCCI_IOC_MAGIC, 35, unsigned int) /* RILD(6577) */
  56. #define CCCI_IOC_AP_ENG_BUILD _IOW(CCCI_IOC_MAGIC, 36, unsigned int) /* md_init(6577) */
  57. #define CCCI_IOC_GET_MD_MEM_SIZE _IOR(CCCI_IOC_MAGIC, 37, unsigned int) /* md_init(6577) */
  58. #define CCCI_IOC_UPDATE_SIM_SLOT_CFG _IOW(CCCI_IOC_MAGIC, 38, unsigned int) /* RILD */
  59. #define CCCI_IOC_GET_CFG_SETTING _IOW(CCCI_IOC_MAGIC, 39, unsigned int) /* md_init */
  60. #define CCCI_IOC_SET_MD_SBP_CFG _IOW(CCCI_IOC_MAGIC, 40, unsigned int) /* md_init */
  61. #define CCCI_IOC_GET_MD_SBP_CFG _IOW(CCCI_IOC_MAGIC, 41, unsigned int) /* md_init */
  62. /*metal tool to get modem protocol type: AP_TST or DHL */
  63. #define CCCI_IOC_GET_MD_PROTOCOL_TYPE _IOR(CCCI_IOC_MAGIC, 42, char[16])
  64. /* ================================================================================== */
  65. /* API functions exported in ccci */
  66. /* ================================================================================== */
  67. int ccci_md_ctrl_init(int md_id);
  68. void ccci_md_ctrl_exit(int md_id);
  69. int ccci_chrdev_init(int md_id);
  70. void ccci_chrdev_exit(int md_id);
  71. int ccci_tty_init(int md_id);
  72. void ccci_tty_exit(int md_id);
  73. int ccci_ipc_init(int md_id);
  74. void ccci_ipc_exit(int md_id);
  75. int ccci_rpc_init(int md_id);
  76. void ccci_rpc_exit(int md_id);
  77. int ccci_fs_init(int md_id);
  78. void ccci_fs_exit(int md_id);
  79. int ccmni_init(int md_id);
  80. void ccmni_exit(int md_id);
  81. int ccci_vir_chrdev_init(int md_id);
  82. void ccci_vir_chrdev_exit(int md_id);
  83. int init_ccci_dev_node(void);
  84. void release_ccci_dev_node(void);
  85. int mk_ccci_dev_node(int md_id);
  86. void ccci_dev_node_exit(int md_id);
  87. int statistics_init(int md_id);
  88. void statistics_exit(int md_id);
  89. int get_dev_id_by_md_id(int md_id, char node_name[], int *major, int *minor);
  90. int get_md_id_by_dev_major(int dev_major);
  91. int init_ccci_dev_node(void);
  92. int send_md_reset_notify(int);
  93. int ccci_trigger_md_assert(int);
  94. int get_md_exception_type(int md_id);
  95. int send_md_stop_notify(int md_id);
  96. int send_md_start_notify(int md_id);
  97. int ccci_start_modem(int md_id);
  98. int ccci_stop_modem(int md_id, unsigned int timeout);
  99. int ccci_set_reload_modem(int md_id);
  100. int ccci_send_run_time_data(int md_id);
  101. int statistics_init_ch_dir(int md_sys_id, int ch, int dir, char *name);
  102. void dump_logical_layer_tx_rx_histroy(int md_id);
  103. void logic_layer_ch_record_dump(int md_id, int ch);
  104. void add_logic_layer_record(int md_id, struct ccci_msg_t *data, int drop);
  105. void ccci_dump_logic_layer_info(int md_id, unsigned int buf[], int len);
  106. void ccci_dump_hw_reg_val(int md_id, unsigned int buf[], int len);
  107. int send_enter_flight_mode_request(int md_id);
  108. int send_leave_flight_mode_request(int md_id);
  109. int send_power_on_md_request(int md_id);
  110. int send_power_down_md_request(int md_id);
  111. int send_update_cfg_request(int md_id, unsigned int val);
  112. int ccci_md_ctrl_common_init(void);
  113. int bind_to_low_layer_notify(int md_id, void (*isr_func)(int),
  114. void (*send_func)(int, unsigned int));
  115. struct ccif_t *ccif_create_instance(struct ccif_hw_info_t *info, void *ctl_b, int md_id);
  116. int register_ccci_attr_func(const char *buf, ssize_t (*show)(char *str),
  117. ssize_t (*store)(const char *str, size_t len));
  118. int get_common_cfg_setting(int md_id, int cfg[], int *num);
  119. unsigned int get_sim_switch_type(void);
  120. void ccmni_v2_dump(int md_id);
  121. /* ================================================================================== */
  122. /* API functions for IPO-H */
  123. /* ================================================================================== */
  124. int ccci_uart_ipo_h_restore(int md_id);
  125. int ccci_ipc_ipo_h_restore(int md_id);
  126. int ccmni_ipo_h_restore(int md_id);
  127. int ccci_ipo_h_restore(int md_id, char buf[], unsigned int len);
  128. int ccci_misc_ipo_h_restore(int md_id);
  129. extern unsigned long long lg_ch_tx_debug_enable[];
  130. extern unsigned long long lg_ch_rx_debug_enable[];
  131. extern unsigned int tty_debug_enable[];
  132. extern unsigned int fs_tx_debug_enable[];
  133. extern unsigned int fs_rx_debug_enable[];
  134. extern void ccci_md_logger_notify(void);
  135. extern void ccci_fs_resetfifo(int md_id);
  136. extern int get_md_wakeup_src(int md_id, char *buf, unsigned int len);
  137. extern struct kobject *kernel_kobj;
  138. extern int ccmni_v1_init(int md_id);
  139. extern void ccmni_v1_exit(int md_id);
  140. extern int ccmni_v2_init(int md_id);
  141. extern void ccmni_v2_exit(int md_id);
  142. extern int ccmni_v1_ipo_h_restore(int md_id);
  143. extern int ccmni_v2_ipo_h_restore(int md_id);
  144. /* common func declare */
  145. void ccci_attr_release(struct kobject *kobj);
  146. ssize_t ccci_attr_show(struct kobject *kobj, struct attribute *attr, char *buf);
  147. ssize_t ccci_attr_store(struct kobject *kobj, struct attribute *attr,
  148. const char *buf, size_t count);
  149. ssize_t show_attr_md1_postfix(char *buf);
  150. ssize_t show_attr_md2_postfix(char *buf);
  151. #endif /* __CCCI_H__ */