aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/mediatek/eemcs/eemcs_md.h
blob: c374eabc8e5e2ab28810a98cec3d46899c7ef90a (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
#ifndef __EEMCS_MD_H__
#define __EEMCS_MD_H__

#include "eemcs_kal.h"

#define NORMAL_BOOT_ID 0
#define META_BOOT_ID 1
#define UART_MAX_PORT_NUM 8


/* MD Message, this is for user space deamon use */
enum {
     CCCI_MD_MSG_BOOT_READY          = 0xFAF50001,
     CCCI_MD_MSG_BOOT_UP             = 0xFAF50002,
     CCCI_MD_MSG_EXCEPTION           = 0xFAF50003,
     CCCI_MD_MSG_RESET               = 0xFAF50004,
     CCCI_MD_MSG_RESET_RETRY         = 0xFAF50005,
     CCCI_MD_MSG_READY_TO_RESET      = 0xFAF50006,
     CCCI_MD_MSG_BOOT_TIMEOUT        = 0xFAF50007,
     CCCI_MD_MSG_STOP_MD_REQUEST     = 0xFAF50008,
     CCCI_MD_MSG_START_MD_REQUEST    = 0xFAF50009,
     CCCI_MD_MSG_ENTER_FLIGHT_MODE   = 0xFAF5000A,
     CCCI_MD_MSG_LEAVE_FLIGHT_MODE   = 0xFAF5000B,
     CCCI_MD_MSG_POWER_ON_REQUEST    = 0xFAF5000C,
     CCCI_MD_MSG_POWER_DOWN_REQUEST  = 0xFAF5000D,
     CCCI_MD_MSG_SEND_BATTERY_INFO   = 0xFAF5000E,
     CCCI_MD_MSG_NOTIFY              = 0xFAF5000F,
     CCCI_MD_MSG_STORE_NVRAM_MD_TYPE = 0xFAF50010,
};

typedef enum LOGGING_MODE_e {
    MODE_UNKNOWN = -1,      // -1
    MODE_IDLE,              // 0
    MODE_USB,               // 1
    MODE_SD,                // 2
    MODE_POLLING,           // 3
    MODE_WAITSD,            // 4
} LOGGING_MODE;

typedef struct RUNTIME_BUFF_st {
    KAL_UINT32 len;
    KAL_UINT8  buf[0];
} RUNTIME_BUFF;

typedef struct MODEM_RUNTIME_st {
    unsigned int Prefix;             // "CCIF"
    unsigned int Platform_L;         // Hardware Platform String ex: "TK6516E0"
    unsigned int Platform_H;
    unsigned int DriverVersion;      // 0x00000923 since W09.23
    unsigned int BootChannel;        // Channel to ACK AP with boot ready
    unsigned int BootingStartID;     // MD is booting. NORMAL_BOOT_ID or META_BOOT_ID 
    unsigned int BootAttributes;     // Attributes passing from AP to MD Booting
    unsigned int BootReadyID;        // MD response ID if boot successful and ready   
    unsigned int FileShareMemBase;
    unsigned int FileShareMemSize;
    unsigned int ExceShareMemBase;
    unsigned int ExceShareMemSize;   // 512 Bytes Required 
    unsigned int CCIFShareMemBase;
    unsigned int CCIFShareMemSize;
    unsigned int TotalShareMemBase;
    unsigned int TotalShareMemSize;
    unsigned int CheckSum;
    unsigned int Postfix;            //"CCIF" 
#if defined (_RUNTIME_MISC_INFO_SUPPORT_) // misc region
    unsigned int misc_prefix;	// "MISC"
    unsigned int support_mask;
    unsigned int index;
    unsigned int next;
    unsigned int feature_0_val[4];
    unsigned int feature_1_val[4];
    unsigned int feature_2_val[4];
    unsigned int feature_3_val[4];
    unsigned int feature_4_val[4];
    unsigned int feature_5_val[4];
    unsigned int feature_6_val[4];
    unsigned int feature_7_val[4];
    unsigned int feature_8_val[4];
    unsigned int feature_9_val[4];
    unsigned int feature_10_val[4];
    unsigned int feature_11_val[4];
    unsigned int feature_12_val[4];
    unsigned int feature_13_val[4];
    unsigned int feature_14_val[4];
    unsigned int feature_15_val[4];
    unsigned int reserved_2[3];
    unsigned int misc_postfix;	// "MISC"
#endif
} MODEM_RUNTIME;

typedef enum
{
    FEATURE_NOT_EXIST = 0,
    FEATURE_NOT_SUPPORT,
    FEATURE_SUPPORT,
    FEATURE_PARTIALLY_SUPPORT,
} MISC_FEATURE_STATE; 

typedef enum
{
    MISC_DMA_ADDR = 0,
    MISC_32K_LESS,
    MISC_RAND_SEED,
    MISC_MD_COCLK_SETTING,
    MISC_MD_SBP_SETTING,
    MISC_MD_CCCI_DEBUG,
} MISC_FEATURE_ID;

typedef enum
{
    CCCI_DBG_ADD_CCCI_SEQNO = 0,
    CCCI_DBG_POLL_MD_STA,
} CCCI_DEBUG_FEATURE_ID;

KAL_UINT32 eemcs_md_gen_runtime_data(void **data);
void eemcs_md_destroy_runtime_data(void *runtime_data);

#endif // __EEMCS_MD_H__