• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2022 Beken Corporation
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #pragma once
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #define MAILBOX_DEV_NAME                ("mailbox")
22 
23 #define MAILBOX_SUCCESS                 (0)
24 #define MAILBOX_UNKNOW_CMD              (1)
25 #define MAILBOX_NOT_READY               (2)
26 
27 #define MAILBOX_CMD_NEED_RSP_FLAG	0x80000000
28 #define MAILBOX_CMD_IS_RSP_FLAG  	0x40000000
29 #define MAILBOX_CMD_FAST_RSP_FLAG	0x20000000
30 
31 typedef enum
32 {
33 	MAILBOX_CMD_COMMON_SUBSET = 0x0000,
34 	MAILBOX_CMD_REG_READ,
35 	MAILBOX_CMD_REG_WRITE,
36 	MAILBOX_CMD_CYCLE_COUNTER_RESET,
37 	MAILBOX_CMD_CYCLE_COUNTER_GET,
38 
39 	MAILBOX_CMD_AUDIO_COMMON_SUBSET = 0x0100,
40 	MAILBOX_CMD_AUDIO_INIT,
41 	MAILBOX_CMD_AUDIO_DEINIT,
42 	MAILBOX_CMD_AUDIO_FIFO_CONFIG,
43 	MAILBOX_CMD_AUDIO_FIFO_STATUS,
44 
45 	MAILBOX_CMD_AUDIO_WRITE_THRED_SET,
46 
47 	MAILBOX_CMD_AUDIO_ADC_SUBSET = 0x0200,
48 	MAILBOX_CMD_AUDIO_ADC_INIT,
49 	MAILBOX_CMD_AUDIO_ADC_DEINIT,
50 	MAILBOX_CMD_AUDIO_ADC_SAMPLE_RATE_SET, //= 0x0203,
51 	MAILBOX_CMD_AUDIO_ADC_SAMPLE_RATE_GET,
52 	MAILBOX_CMD_AUDIO_ADC_ANALOG_VOLUME_SET,
53 	MAILBOX_CMD_AUDIO_ADC_ANALOG_VOLUME_GET,
54 	MAILBOX_CMD_AUDIO_ADC_DIGITAL_VOLUME_SET,
55 	MAILBOX_CMD_AUDIO_ADC_DIGITAL_VOLUME_GET, //= 0x0208,
56 	MAILBOX_CMD_AUDIO_ADC_VOLUME_SET,
57 	MAILBOX_CMD_AUDIO_ADC_VOLUME_GET,
58 	MAILBOX_CMD_AUDIO_ADC_ENABLE, //= 0x020b,
59 	MAILBOX_CMD_AUDIO_ADC_PCM_CHECK, //Check fill space for read
60 	MAILBOX_CMD_AUDIO_ADC_PCM_READ,
61 
62 	MAILBOX_CMD_AUDIO_ADC_PCM_READ_DONE,
63 	MAILBOX_CMD_AUDIO_ADC_INT_ENABLE,
64 	MAILBOX_CMD_AUDIO_ADC_HPF2_BYPASS_SET, //= 0x0210,
65 	MAILBOX_CMD_AUDIO_ADC_GAIN_SET,
66 	MAILBOX_CMD_AUDIO_ADC_RECORD,
67 
68 	MAILBOX_CMD_AUDIO_DAC_SUBSET = 0x0300,
69 	MAILBOX_CMD_AUDIO_DAC_INIT,
70 	MAILBOX_CMD_AUDIO_DAC_DEINIT,
71 	MAILBOX_CMD_AUDIO_DAC_SAMPLE_RATE_SET,
72 	MAILBOX_CMD_AUDIO_DAC_SAMPLE_RATE_GET,
73 	MAILBOX_CMD_AUDIO_DAC_ANALOG_VOLUME_SET,
74 	MAILBOX_CMD_AUDIO_DAC_ANALOG_VOLUME_GET,
75 	MAILBOX_CMD_AUDIO_DAC_DIGITAL_VOLUME_SET,
76 	MAILBOX_CMD_AUDIO_DAC_DIGITAL_VOLUME_GET, // = 0x0308,
77 	MAILBOX_CMD_AUDIO_DAC_VOLUME_SET,
78 	MAILBOX_CMD_AUDIO_DAC_VOLUME_GET,
79 	MAILBOX_CMD_AUDIO_DAC_ENABLE, // = 0x030b,
80 	MAILBOX_CMD_AUDIO_DAC_PCM_CHECK, //Check free space for write
81 	MAILBOX_CMD_AUDIO_DAC_PCM_WRITE,
82 	MAILBOX_CMD_AUDIO_DAC_FRAC_COEF,
83 
84 	MAILBOX_CMD_AUDIO_DAC_PCM_WRITE_DONE,
85 	MAILBOX_CMD_AUDIO_DAC_ADC_LOOPBACK_SET, // = 0x0310,
86 	MAILBOX_CMD_AUDIO_DAC_HPF1_BYPASS_SET,
87 	MAILBOX_CMD_AUDIO_DAC_HPF2_BYPASS_SET,
88 	MAILBOX_CMD_AUDIO_DAC_INT_ENABLE,
89 	MAILBOX_CMD_AUDIO_DAC_BPS_SET,
90 	MAILBOX_CMD_AUDIO_DAC_BPS_GET,
91 
92 	MAILBOX_CMD_FUNC_SUBSET = 0x0400,
93 
94 	MAILBOX_CMD_AUDIO_AUX_SUBSET = 0x0500,
95 	MAILBOX_CMD_AUDIO_AUX_INIT,
96 	MAILBOX_CMD_AUDIO_AUX_DEINIT,
97 	MAILBOX_CMD_AUDIO_AUX_ENABLE,
98 
99 	MAILBOX_CMD_AUDIO_IDLE_SUBSET = 0x0600,
100 	MAILBOX_CMD_AUDIO_BT_IDLE,
101 	MAILBOX_CMD_AUDIO_BT_WORKING,
102 	MAILBOX_CMD_AUDIO_WIFI_SLEEP,
103 	MAILBOX_CMD_AUDIO_WIFI_WAKEUP,
104 
105 	MAILBOX_CMD_DEBUG_SUBSET = 0x0700,
106 
107 	MAILBOX_CMD_HCI_SEND = 0x0800,
108 
109 	MAILBOX_CMD_BLE_SET_ADDR = 0x0900,
110 	MAILBOX_CMD_BLE_START_ADV,
111 	MAILBOX_CMD_BLE_START_ADV_CMP,
112 	MAILBOX_CMD_BLE_STOP_ADV,
113 	MAILBOX_CMD_BLE_STOP_ADV_CMP,
114 	MAILBOX_CMD_BLE_READ_CMP,
115 	MAILBOX_CMD_BLE_WRITE_CMP,
116 	MAILBOX_CMD_BLE_SEND_NTF,
117 	MAILBOX_CMD_BLE_SEND_NTF_CMP,
118 	MAILBOX_CMD_BLE_SEND_IND,
119 	MAILBOX_CMD_BLE_SEND_IND_CMP,
120 	MAILBOX_CMD_BLE_CONN_CMP,
121 	MAILBOX_CMD_BLE_DISC,
122 	MAILBOX_CMD_BLE_DISC_CMP,
123 	MAILBOX_CMD_BLE_START_SCAN,
124 	MAILBOX_CMD_BLE_STOP_SCAN,
125 	MAILBOX_CMD_BLE_SCAN_DECODER,
126 	MAILBOX_CMD_BLE_GET_RSSI,
127 	MAILBOX_CMD_BLE_GET_RSSI_CMP,
128 	MAILBOX_CMD_BLE_GET_STATUS,
129 	MAILBOX_CMD_BLE_GET_STATUS_CMP,
130 
131 	MAILBOX_CMD_TEST_SUBSET = 0xFF00,
132 	MAILBOX_CMD_AUDIO_ADC_TEST,
133 	MAILBOX_CMD_AUDIO_DAC_TEST,
134 	MAILBOX_CMD_AUDIO_ADC_STATS,
135 	MAILBOX_CMD_AUDIO_DAC_STATS,
136 	MAILBOX_CMD_AUDIO_VOL_ADD,
137 	MAILBOX_CMD_AUDIO_VOL_SUB,
138 	MAILBOX_CMD_FLOAT_POINT_TEST,
139 	MAILBOX_CMD_SMEM_TEST,
140 
141 	MAILBOX_CMD_SET_MASK = 0xFFFF
142 } mailbox_msgtype_t;
143 
144 void mailbox_driver_init(void);
145 void mailbox_driver_deinit(void);
146 
147 #ifdef __cplusplus
148 }
149 #endif
150