Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
cs43l22.h
00001 /** 00002 ****************************************************************************** 00003 * @file cs43l22.h 00004 * @author MCD Application Team 00005 * @brief This file contains all the functions prototypes for the cs43l22.c driver. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00010 * 00011 * Redistribution and use in source and binary forms, with or without modification, 00012 * are permitted provided that the following conditions are met: 00013 * 1. Redistributions of source code must retain the above copyright notice, 00014 * this list of conditions and the following disclaimer. 00015 * 2. Redistributions in binary form must reproduce the above copyright notice, 00016 * this list of conditions and the following disclaimer in the documentation 00017 * and/or other materials provided with the distribution. 00018 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00019 * may be used to endorse or promote products derived from this software 00020 * without specific prior written permission. 00021 * 00022 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00023 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00024 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00025 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00026 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00027 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00028 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00029 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00030 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00031 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00032 * 00033 ****************************************************************************** 00034 */ 00035 00036 /* Define to prevent recursive inclusion -------------------------------------*/ 00037 #ifndef __CS43L22_H 00038 #define __CS43L22_H 00039 00040 /* Includes ------------------------------------------------------------------*/ 00041 #include "../Common/audio.h" 00042 00043 /** @addtogroup BSP 00044 * @{ 00045 */ 00046 00047 /** @addtogroup Component 00048 * @{ 00049 */ 00050 00051 /** @addtogroup CS43L22 00052 * @{ 00053 */ 00054 00055 /** @defgroup CS43L22_Exported_Types 00056 * @{ 00057 */ 00058 00059 /** 00060 * @} 00061 */ 00062 00063 /** @defgroup CS43L22_Exported_Constants 00064 * @{ 00065 */ 00066 00067 /******************************************************************************/ 00068 /*************************** Codec User defines ******************************/ 00069 /******************************************************************************/ 00070 /* Codec output DEVICE */ 00071 #define OUTPUT_DEVICE_SPEAKER 1 00072 #define OUTPUT_DEVICE_HEADPHONE 2 00073 #define OUTPUT_DEVICE_BOTH 3 00074 #define OUTPUT_DEVICE_AUTO 4 00075 00076 /* Volume Levels values */ 00077 #define DEFAULT_VOLMIN 0x00 00078 #define DEFAULT_VOLMAX 0xFF 00079 #define DEFAULT_VOLSTEP 0x04 00080 00081 #define AUDIO_PAUSE 0 00082 #define AUDIO_RESUME 1 00083 00084 /* Codec POWER DOWN modes */ 00085 #define CODEC_PDWN_HW 1 00086 #define CODEC_PDWN_SW 2 00087 00088 /* MUTE commands */ 00089 #define AUDIO_MUTE_ON 1 00090 #define AUDIO_MUTE_OFF 0 00091 00092 /* AUDIO FREQUENCY */ 00093 #define AUDIO_FREQUENCY_192K ((uint32_t)192000) 00094 #define AUDIO_FREQUENCY_96K ((uint32_t)96000) 00095 #define AUDIO_FREQUENCY_48K ((uint32_t)48000) 00096 #define AUDIO_FREQUENCY_44K ((uint32_t)44100) 00097 #define AUDIO_FREQUENCY_32K ((uint32_t)32000) 00098 #define AUDIO_FREQUENCY_22K ((uint32_t)22050) 00099 #define AUDIO_FREQUENCY_16K ((uint32_t)16000) 00100 #define AUDIO_FREQUENCY_11K ((uint32_t)11025) 00101 #define AUDIO_FREQUENCY_8K ((uint32_t)8000) 00102 00103 /** CS43l22 Registers ***/ 00104 #define CS43L22_REG_ID 0x01 00105 #define CS43L22_REG_POWER_CTL1 0x02 00106 #define CS43L22_REG_POWER_CTL2 0x04 00107 #define CS43L22_REG_CLOCKING_CTL 0x05 00108 #define CS43L22_REG_INTERFACE_CTL1 0x06 00109 #define CS43L22_REG_INTERFACE_CTL2 0x07 00110 #define CS43L22_REG_PASSTHR_A_SELECT 0x08 00111 #define CS43L22_REG_PASSTHR_B_SELECT 0x09 00112 #define CS43L22_REG_ANALOG_ZC_SR_SETT 0x0A 00113 #define CS43L22_REG_PASSTHR_GANG_CTL 0x0C 00114 #define CS43L22_REG_PLAYBACK_CTL1 0x0D 00115 #define CS43L22_REG_MISC_CTL 0x0E 00116 #define CS43L22_REG_PLAYBACK_CTL2 0x0F 00117 #define CS43L22_REG_PASSTHR_A_VOL 0x14 00118 #define CS43L22_REG_PASSTHR_B_VOL 0x15 00119 #define CS43L22_REG_PCMA_VOL 0x1A 00120 #define CS43L22_REG_PCMB_VOL 0x1B 00121 #define CS43L22_REG_BEEP_FREQ_ON_TIME 0x1C 00122 #define CS43L22_REG_BEEP_VOL_OFF_TIME 0x1D 00123 #define CS43L22_REG_BEEP_TONE_CFG 0x1E 00124 #define CS43L22_REG_TONE_CTL 0x1F 00125 #define CS43L22_REG_MASTER_A_VOL 0x20 00126 #define CS43L22_REG_MASTER_B_VOL 0x21 00127 #define CS43L22_REG_HEADPHONE_A_VOL 0x22 00128 #define CS43L22_REG_HEADPHONE_B_VOL 0x23 00129 #define CS43L22_REG_SPEAKER_A_VOL 0x24 00130 #define CS43L22_REG_SPEAKER_B_VOL 0x25 00131 #define CS43L22_REG_CH_MIXER_SWAP 0x26 00132 #define CS43L22_REG_LIMIT_CTL1 0x27 00133 #define CS43L22_REG_LIMIT_CTL2 0x28 00134 #define CS43L22_REG_LIMIT_ATTACK_RATE 0x29 00135 #define CS43L22_REG_OVF_CLK_STATUS 0x2E 00136 #define CS43L22_REG_BATT_COMPENSATION 0x2F 00137 #define CS43L22_REG_VP_BATTERY_LEVEL 0x30 00138 #define CS43L22_REG_SPEAKER_STATUS 0x31 00139 #define CS43L22_REG_TEMPMONITOR_CTL 0x32 00140 #define CS43L22_REG_THERMAL_FOLDBACK 0x33 00141 #define CS43L22_REG_CHARGE_PUMP_FREQ 0x34 00142 00143 /******************************************************************************/ 00144 /****************************** REGISTER MAPPING ******************************/ 00145 /******************************************************************************/ 00146 /** 00147 * @brief CS43L22 ID 00148 */ 00149 #define CS43L22_ID 0xE0 00150 #define CS43L22_ID_MASK 0xF8 00151 /** 00152 * @brief Chip ID Register: Chip I.D. and Revision Register 00153 * Read only register 00154 * Default value: 0x01 00155 * [7:3] CHIPID[4:0]: I.D. code for the CS43L22. 00156 * Default value: 11100b 00157 * [2:0] REVID[2:0]: CS43L22 revision level. 00158 * Default value: 00159 * 000 - Rev A0 00160 * 001 - Rev A1 00161 * 010 - Rev B0 00162 * 011 - Rev B1 00163 */ 00164 #define CS43L22_CHIPID_ADDR 0x01 00165 00166 /** 00167 * @} 00168 */ 00169 00170 /** @defgroup CS43L22_Exported_Macros 00171 * @{ 00172 */ 00173 00174 /** 00175 * @} 00176 */ 00177 00178 /** @defgroup CS43L22_Exported_Functions 00179 * @{ 00180 */ 00181 00182 /*------------------------------------------------------------------------------ 00183 Audio Codec functions 00184 ------------------------------------------------------------------------------*/ 00185 /* High Layer codec functions */ 00186 uint32_t cs43l22_Init(uint16_t DeviceAddr, uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq); 00187 void cs43l22_DeInit(void); 00188 uint32_t cs43l22_ReadID(uint16_t DeviceAddr); 00189 uint32_t cs43l22_Play(uint16_t DeviceAddr, uint16_t* pBuffer, uint16_t Size); 00190 uint32_t cs43l22_Pause(uint16_t DeviceAddr); 00191 uint32_t cs43l22_Resume(uint16_t DeviceAddr); 00192 uint32_t cs43l22_Stop(uint16_t DeviceAddr, uint32_t Cmd); 00193 uint32_t cs43l22_SetVolume(uint16_t DeviceAddr, uint8_t Volume); 00194 uint32_t cs43l22_SetFrequency(uint16_t DeviceAddr, uint32_t AudioFreq); 00195 uint32_t cs43l22_SetMute(uint16_t DeviceAddr, uint32_t Cmd); 00196 uint32_t cs43l22_SetOutputMode(uint16_t DeviceAddr, uint8_t Output); 00197 uint32_t cs43l22_Reset(uint16_t DeviceAddr); 00198 00199 /* AUDIO IO functions */ 00200 void AUDIO_IO_Init(void); 00201 void AUDIO_IO_DeInit(void); 00202 void AUDIO_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value); 00203 uint8_t AUDIO_IO_Read(uint8_t Addr, uint8_t Reg); 00204 00205 /* Audio driver structure */ 00206 extern AUDIO_DrvTypeDef cs43l22_drv; 00207 00208 #endif /* __CS43L22_H */ 00209 00210 /** 00211 * @} 00212 */ 00213 00214 /** 00215 * @} 00216 */ 00217 00218 /** 00219 * @} 00220 */ 00221 00222 /** 00223 * @} 00224 */ 00225 00226 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Thu Jul 14 2022 14:13:41 by
