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