aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/mediatek/dual_ccci/include/ccci.h
blob: ee72b8fbf1bf65a4b470a89734890e92b9b015ac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#ifndef __CCCI_H__
#define __CCCI_H__
#include <ccci_common.h>
typedef void (*ccci_aed_cb_t)(unsigned int flag, char* aed_str);
/******************************************************************************/
/** mdlogger mode define                                                                                           **/
/******************************************************************************/
typedef enum {
    MODE_UNKNOWN = -1,     // -1
    MODE_IDLE,                // 0
    MODE_USB,                  // 1
    MODE_SD,                  // 2
    MODE_POLLING,            // 3
    MODE_WAITSD,            // 4
}LOGGING_MODE;

//==================================================================================
// IOCTL commands
//==================================================================================
// CCCI == EEMCS
#define CCCI_IOC_MAGIC 'C'
#define CCCI_IOC_MD_RESET                _IO(CCCI_IOC_MAGIC, 0) // mdlogger // META // muxreport
#define CCCI_IOC_GET_MD_STATE            _IOR(CCCI_IOC_MAGIC, 1, unsigned int) // audio
#define CCCI_IOC_PCM_BASE_ADDR            _IOR(CCCI_IOC_MAGIC, 2, unsigned int) // audio
#define CCCI_IOC_PCM_LEN                _IOR(CCCI_IOC_MAGIC, 3, unsigned int) // audio
#define CCCI_IOC_FORCE_MD_ASSERT        _IO(CCCI_IOC_MAGIC, 4) // muxreport // mdlogger
#define CCCI_IOC_ALLOC_MD_LOG_MEM        _IO(CCCI_IOC_MAGIC, 5) // mdlogger
#define CCCI_IOC_DO_MD_RST                _IO(CCCI_IOC_MAGIC, 6) // md_init
#define CCCI_IOC_SEND_RUN_TIME_DATA        _IO(CCCI_IOC_MAGIC, 7) // md_init
#define CCCI_IOC_GET_MD_INFO            _IOR(CCCI_IOC_MAGIC, 8, unsigned int) // md_init
#define CCCI_IOC_GET_MD_EX_TYPE            _IOR(CCCI_IOC_MAGIC, 9, unsigned int) // mdlogger
#define CCCI_IOC_SEND_STOP_MD_REQUEST    _IO(CCCI_IOC_MAGIC, 10) // muxreport
#define CCCI_IOC_SEND_START_MD_REQUEST    _IO(CCCI_IOC_MAGIC, 11) // muxreport
#define CCCI_IOC_DO_STOP_MD                _IO(CCCI_IOC_MAGIC, 12) // md_init
#define CCCI_IOC_DO_START_MD            _IO(CCCI_IOC_MAGIC, 13) // md_init
#define CCCI_IOC_ENTER_DEEP_FLIGHT        _IO(CCCI_IOC_MAGIC, 14) // RILD // factory
#define CCCI_IOC_LEAVE_DEEP_FLIGHT        _IO(CCCI_IOC_MAGIC, 15) // RILD // factory
#define CCCI_IOC_POWER_ON_MD            _IO(CCCI_IOC_MAGIC, 16) // md_init
#define CCCI_IOC_POWER_OFF_MD            _IO(CCCI_IOC_MAGIC, 17) // md_init
#define CCCI_IOC_POWER_ON_MD_REQUEST    _IO(CCCI_IOC_MAGIC, 18)
#define CCCI_IOC_POWER_OFF_MD_REQUEST    _IO(CCCI_IOC_MAGIC, 19)
#define CCCI_IOC_SIM_SWITCH                _IOW(CCCI_IOC_MAGIC, 20, unsigned int) // RILD // factory
#define CCCI_IOC_SEND_BATTERY_INFO        _IO(CCCI_IOC_MAGIC, 21) // md_init 
#define CCCI_IOC_SIM_SWITCH_TYPE        _IOR(CCCI_IOC_MAGIC, 22, unsigned int) // RILD
#define CCCI_IOC_STORE_SIM_MODE            _IOW(CCCI_IOC_MAGIC, 23, unsigned int) // RILD
#define CCCI_IOC_GET_SIM_MODE            _IOR(CCCI_IOC_MAGIC, 24, unsigned int) // RILD
#define CCCI_IOC_RELOAD_MD_TYPE            _IO(CCCI_IOC_MAGIC, 25) // META // md_init // muxreport
#define CCCI_IOC_GET_SIM_TYPE            _IOR(CCCI_IOC_MAGIC, 26, unsigned int) // terservice
#define CCCI_IOC_ENABLE_GET_SIM_TYPE    _IOW(CCCI_IOC_MAGIC, 27, unsigned int) // terservice
#define CCCI_IOC_SEND_ICUSB_NOTIFY        _IOW(CCCI_IOC_MAGIC, 28, unsigned int) // icusbd
#define CCCI_IOC_SET_MD_IMG_EXIST        _IOW(CCCI_IOC_MAGIC, 29, unsigned int) // md_init
#define CCCI_IOC_GET_MD_IMG_EXIST        _IOR(CCCI_IOC_MAGIC, 30, unsigned int)
#define CCCI_IOC_GET_MD_TYPE            _IOR(CCCI_IOC_MAGIC, 31, unsigned int) // RILD
#define CCCI_IOC_STORE_MD_TYPE            _IOW(CCCI_IOC_MAGIC, 32, unsigned int) // RILD
#define CCCI_IOC_GET_MD_TYPE_SAVING        _IOR(CCCI_IOC_MAGIC, 33, unsigned int) // META
#define CCCI_IOC_GET_EXT_MD_POST_FIX    _IOR(CCCI_IOC_MAGIC, 34, char[32]) // eemcs_fsd // mdlogger
#define CCCI_IOC_FORCE_FD                _IOW(CCCI_IOC_MAGIC, 35, unsigned int) // RILD(6577)
#define CCCI_IOC_AP_ENG_BUILD            _IOW(CCCI_IOC_MAGIC, 36, unsigned int) // md_init(6577)
#define CCCI_IOC_GET_MD_MEM_SIZE        _IOR(CCCI_IOC_MAGIC, 37, unsigned int) // md_init(6577)
#define CCCI_IOC_UPDATE_SIM_SLOT_CFG    _IOW(CCCI_IOC_MAGIC, 38, unsigned int) // RILD
#define CCCI_IOC_GET_CFG_SETTING        _IOW(CCCI_IOC_MAGIC, 39, unsigned int) // md_init

#define CCCI_IOC_SET_MD_SBP_CFG         _IOW(CCCI_IOC_MAGIC, 40, unsigned int) // md_init
#define CCCI_IOC_GET_MD_SBP_CFG         _IOW(CCCI_IOC_MAGIC, 41, unsigned int) // md_init
#define CCCI_IOC_GET_MD_PROTOCOL_TYPE    _IOR(CCCI_IOC_MAGIC, 42, char[16]) /*metal tool to get modem protocol type: AP_TST or DHL*/


//==================================================================================
// API functions exported in ccci
//==================================================================================
int         ccci_md_ctrl_init(int md_id);
void        ccci_md_ctrl_exit(int md_id);
int         ccci_chrdev_init(int md_id);
void        ccci_chrdev_exit(int md_id);
int         ccci_tty_init(int md_id);
void        ccci_tty_exit(int md_id);
int         ccci_ipc_init(int md_id);
void        ccci_ipc_exit(int md_id);
int         ccci_rpc_init(int md_id);
void        ccci_rpc_exit(int md_id);
int         ccci_fs_init(int md_id);
void        ccci_fs_exit(int md_id);
int         ccmni_init(int md_id);
void        ccmni_exit(int md_id);
int         ccci_vir_chrdev_init(int md_id);
void        ccci_vir_chrdev_exit(int md_id);
int         init_ccci_dev_node(void);
void                 release_ccci_dev_node(void);
int                    mk_ccci_dev_node(int md_id);
void                ccci_dev_node_exit(int md_id);
int                    statistics_init(int md_id);
void                statistics_exit(int md_id);


int                    get_dev_id_by_md_id(int md_id, char node_name[], int *major, int* minor);
int                    get_md_id_by_dev_major(int dev_major);
int                    init_ccci_dev_node(void);
int                    send_md_reset_notify(int);
int                    ccci_trigger_md_assert(int);

int                    get_md_exception_type(int md_id);
int                    send_md_stop_notify(int md_id);
int                    send_md_start_notify(int md_id);
int                    ccci_start_modem(int md_id);
int                    ccci_stop_modem(int md_id, unsigned int timeout);
int                 ccci_set_reload_modem(int md_id);
int                    ccci_send_run_time_data(int md_id);
int                    statistics_init_ch_dir(int md_sys_id, int ch, int dir, char *name);                                                          
void                dump_logical_layer_tx_rx_histroy(int md_id);
void                logic_layer_ch_record_dump(int md_id, int ch);
void                add_logic_layer_record(int md_id, ccci_msg_t *data, int drop);
void                ccci_dump_logic_layer_info(int md_id, unsigned int buf[], int len);
void                ccci_dump_hw_reg_val(int md_id, unsigned int buf[], int len);
int                    send_enter_flight_mode_request(int md_id);
int                    send_leave_flight_mode_request(int md_id);
int                    send_power_on_md_request(int md_id);
int                    send_power_down_md_request(int md_id);
int                    send_update_cfg_request(int md_id, unsigned int val);
int                    ccci_md_ctrl_common_init(void);
int                    bind_to_low_layer_notify(int md_id, void (*isr_func)(int), void (*send_func)(int, unsigned int));
ccif_t*             ccif_create_instance(ccif_hw_info_t *info, void* ctl_b, int md_id);
int                 register_ccci_attr_func(const char *buf, ssize_t (*show)(char*), ssize_t (*store)(const char*,size_t));
int                 get_common_cfg_setting(int md_id, int cfg[], int *num);
//==================================================================================
// API functions for IPO-H
//==================================================================================
int                    ccci_uart_ipo_h_restore(int md_id);
int                    ccci_ipc_ipo_h_restore(int md_id);
int                    ccmni_ipo_h_restore(int md_id);
int                    ccci_ipo_h_restore(int md_id, char buf[], unsigned int len);

int                    ccci_misc_ipo_h_restore(int md_id);

#endif //__CCCI_H__