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