diff options
author | Jonas Aaberg <jonas.aberg@stericsson.com> | 2011-10-04 11:18:22 +0200 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2011-12-06 10:59:47 +0100 |
commit | 59dc1f1a3f7a14addec7a242a0f8fea77f12eca5 (patch) | |
tree | 43abc997183beadfcaaf82b67c607a2e1a780281 /sound | |
parent | b5497d7edb43e94d3161ec0ef3d318460520b7d3 (diff) |
misc: audio_io: Remove obsolete and unused driver
audio_io is superseded by alsa.
ST-Ericsson Linux next: -
ST-Ericsson ID: -
ST-Ericsson FOSS-OUT ID: Trivial
Change-Id: I4641468e1d67e8596b1fcd9af69b0b81b686a0a0
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32904
Reviewed-by: Ola LILJA2 <ola.o.lilja@stericsson.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/Kconfig | 60 | ||||
-rw-r--r-- | sound/Makefile | 7 | ||||
-rw-r--r-- | sound/ab8500_codec.c | 6697 | ||||
-rw-r--r-- | sound/ab8500_codec_v1_0.c | 6405 | ||||
-rw-r--r-- | sound/u8500_acodec_ab8500.c | 2523 |
5 files changed, 0 insertions, 15692 deletions
diff --git a/sound/Kconfig b/sound/Kconfig index 35bb190ed54..1fef141ef8e 100644 --- a/sound/Kconfig +++ b/sound/Kconfig @@ -23,66 +23,6 @@ menuconfig SOUND and read <file:Documentation/sound/oss/README.modules>; the module will be called soundcore. -# added for U8500 audio codec device -config U8500_ACODEC - tristate "U8500 audio codec generic module (used both by SAA and ALSA)" - depends on STM_MSP_I2S - default Y - help - Say Y here if you have a U8500 based device - and want to use its audio codec chip. - - To compile this driver as a module, choose M here: the module - will be called u8500mod_acodec. - -choice - prompt "Audio codec type" - depends on U8500_ACODEC - default U8500_AB8500_ED - - config U8500_AB8500_ED - bool "U8500 ab8500 v0 audio codec" - - config U8500_AB8500_CUT10 - bool "U8500 ab8500 v1.x audio codec" - -endchoice - -menu "Debug level for ux500 audio drivers" -config STM_ACODEC_DEBUG - int "STM ACODEC Debug Level" - depends on U8500_ACODEC - default 0 - help - Sets the ACODEC debug ON/OFF for U8500 SoC - * 0 OFF - * 1 ON - -config STM_ALSA_DEBUG - int "STM ALSA Debug Level" - depends on SND_U8500_ALSA || SND_U8500_ALSA_AB8500 - default 0 - help - Sets the ALSA debug ON/OFF for U8500 SoC - * 0 OFF - * 1 ON -endmenu - -choice - prompt "Driver mode" - depends on U8500_ACODEC - default U8500_ACODEC_DMA - - config U8500_ACODEC_DMA - bool "DMA mode" - - config U8500_ACODEC_POLL - bool "Polling mode" - - config U8500_ACODEC_INTR - bool "Interrupt mode" -endchoice - if SOUND config SOUND_OSS_CORE diff --git a/sound/Makefile b/sound/Makefile index b5963c8b70d..ce9132b1c39 100644 --- a/sound/Makefile +++ b/sound/Makefile @@ -16,11 +16,4 @@ ifeq ($(CONFIG_SND),y) obj-y += last.o endif -obj-$(CONFIG_U8500_ACODEC) += u8500mod_acodec.o -ifeq ($(CONFIG_U8500_AB8500_CUT10),y) - u8500mod_acodec-objs := u8500_acodec_ab8500.o ab8500_codec_v1_0.o -else - u8500mod_acodec-objs := u8500_acodec_ab8500.o ab8500_codec.o -endif - soundcore-objs := sound_core.o diff --git a/sound/ab8500_codec.c b/sound/ab8500_codec.c deleted file mode 100644 index fd4975bbdce..00000000000 --- a/sound/ab8500_codec.c +++ /dev/null @@ -1,6697 +0,0 @@ -/* - * Copyright (C) ST-Ericsson SA 2010 - * - * Author: ST-Ericsson - * - * License terms: - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as published - * by the Free Software Foundation. - */ - - /*---------------------------------------------------------------------------- - * Includes - *---------------------------------------------------------------------------*/ -#include <mach/ab8500_codec.h> -#include <mach/ab8500_codec_p.h> - -/*--------------------------------------------------------------------------* - * debug stuff * - *--------------------------------------------------------------------------*/ -#ifdef __DEBUG -#define MY_DEBUG_LEVEL_VAR_NAME myDebugLevel_AB8500_CODEC -#define MY_DEBUG_ID myDebugID_AB8500_CODEC -PRIVATE t_dbg_level MY_DEBUG_LEVEL_VAR_NAME = DEBUG_LEVEL0; -PRIVATE t_dbg_id MY_DEBUG_ID = AB8500_CODEC_HCL_DBG_ID; -#endif - -/*--------------------------------------------------------------------------* - * Global data for interrupt mode management * - *--------------------------------------------------------------------------*/ -PRIVATE t_ab8500_codec_system_context g_ab8500_codec_system_context; - -/*--------------------------------------------------------------------------* - * Default Values * - *--------------------------------------------------------------------------*/ -#define AB8500_CODEC_DEFAULT_SLAVE_ADDRESS_OF_CODEC 0xD -#define AB8500_CODEC_DEFAULT_DIRECTION AB8500_CODEC_DIRECTION_OUT - -#define AB8500_CODEC_DEFAULT_MODE_IN AB8500_CODEC_MODE_VOICE -#define AB8500_CODEC_DEFAULT_MODE_OUT AB8500_CODEC_MODE_VOICE - -#define AB8500_CODEC_DEFAULT_INPUT_SRC AB8500_CODEC_SRC_MICROPHONE_1A -#define AB8500_CODEC_DEFAULT_OUTPUT_DEST AB8500_CODEC_DEST_HEADSET - -#define AB8500_CODEC_DEFAULT_VOLUME_LEFT_IN 75 -#define AB8500_CODEC_DEFAULT_VOLUME_RIGHT_IN 75 -#define AB8500_CODEC_DEFAULT_VOLUME_LEFT_OUT 75 -#define AB8500_CODEC_DEFAULT_VOLUME_RIGHT_OUT 75 - -/*--------------------------------------------------------------------- - * PRIVATE APIs - *--------------------------------------------------------------------*/ -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch1(IN - t_ab8500_codec_slot - ad_slot, - IN - t_ab8500_codec_cr31_to_cr46_ad_data_allocation - value); -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch2(IN - t_ab8500_codec_slot - ad_slot, - IN - t_ab8500_codec_cr31_to_cr46_ad_data_allocation - value); -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch3(IN - t_ab8500_codec_slot - ad_slot, - IN - t_ab8500_codec_cr31_to_cr46_ad_data_allocation - value); -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch4(IN - t_ab8500_codec_slot - ad_slot, - IN - t_ab8500_codec_cr31_to_cr46_ad_data_allocation - value); -PRIVATE t_ab8500_codec_error ab8500_codec_SrcPowerControlSwitch1(IN - t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state); -PRIVATE t_ab8500_codec_error ab8500_codec_SrcPowerControlSwitch2(IN - t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state); -PRIVATE t_ab8500_codec_error ab8500_codec_SetModeAndDirectionUpdateCR(void); -PRIVATE t_ab8500_codec_error ab8500_codec_SetSrcVolumeUpdateCR(void); -PRIVATE t_ab8500_codec_error ab8500_codec_SetDestVolumeUpdateCR(void); -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirectionIN(void); -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirectionOUT(void); -PRIVATE t_ab8500_codec_error ab8500_codec_DestPowerControlUpdateCR(void); - -/********************************************************************************************/ -/* Name: ab8500_codec_SingleWrite */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_SingleWrite(t_uint8 register_offset, - t_uint8 data) -{ - return (t_ab8500_codec_error) (AB8500_CODEC_Write - (register_offset, 0x01, &data)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_SingleRead */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_SingleRead(t_uint8 register_offset, - t_uint8 data) -{ - t_uint8 dummy_data = 0xAA; - - return (t_ab8500_codec_error) (AB8500_CODEC_Read - (register_offset, 0x01, &dummy_data, - &data)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR0 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR0(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr0_powerup, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR0_POWERUP); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr0_enaana, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR0_ENAANA); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR0, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR1 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR1(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr1_swreset, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR1_SWRESET); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR1, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR2 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR2(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr2_enad1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR2_ENAD1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr2_enad2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR2_ENAD2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr2_enad3, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR2_ENAD3); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr2_enad4, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR2_ENAD4); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr2_enad5, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR2_ENAD5); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr2_enad6, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR2_ENAD6); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR2, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR3 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR3(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr3_enda1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR3_ENDA1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr3_enda2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR3_ENDA2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr3_enda3, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR3_ENDA3); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr3_enda4, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR3_ENDA4); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr3_enda5, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR3_ENDA5); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr3_enda6, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR3_ENDA6); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR3, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR4 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR4(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr4_lowpowhs, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR4_LOWPOWHS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr4_lowpowdachs, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR4_LOWPOWDACHS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr4_lowpowear, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR4_LOWPOWEAR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr4_ear_sel_cm, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR4_EAR_SEL_CM); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr4_hs_hp_dis, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR4_HS_HP_DIS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr4_ear_hp_dis, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR4_EAR_HP_DIS); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR4, value)); -} -#endif - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR5 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR5(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr5_enmic1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR5_ENMIC1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr5_enmic2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR5_ENMIC2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr5_enlinl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR5_ENLINL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr5_enlinr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR5_ENLINR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr5_mutmic1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR5_MUTMIC1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr5_mutmic2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR5_MUTMIC2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr5_mutlinl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR5_MUTELINL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr5_mutlinr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR5_MUTELINR); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR5, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR6 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR6(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr6_endmic1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR6_ENDMIC1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr6_endmic2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR6_ENDMIC2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr6_endmic3, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR6_ENDMIC3); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr6_endmic4, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR6_ENDMIC4); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr6_endmic5, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR6_ENDMIC5); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr6_endmic6, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR6_ENDMIC6); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR6, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR7 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR7(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr7_mic1sel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR7_MIC1SEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr7_linrsel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR7_LINRSEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr7_endrvhsl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR7_ENDRVHSL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr7_endrvhsr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR7_ENDRVHSR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr7_enadcmic, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR7_ENADCMIC); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr7_enadclinl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR7_ENADCLINL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr7_enadclinr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR7_ENADCLINR); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR7, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR8 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR8(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr8_cp_dis_pldwn, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR8_CP_DIS_PLDWN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr8_enear, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR8_ENEAR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr8_enhsl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR8_ENHSL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr8_enhsr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR8_ENHSR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr8_enhfl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR8_ENHFL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr8_enhfr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR8_ENHFR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr8_envibl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR8_ENVIBL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr8_envibr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR8_ENVIBR); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR8, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR9 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR9(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr9_endacear, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR9_ENADACEAR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr9_endachsl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR9_ENADACHSL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr9_endachsr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR9_ENADACHSR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr9_endachfl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR9_ENADACHFL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr9_endachfr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR9_ENADACHFR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr9_endacvibl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR9_ENADACVIBL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr9_endacvibr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR9_ENADACVIBR); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR9, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR10 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR10(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr10_muteear, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR10_MUTEEAR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr10_mutehsl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR10_MUTEHSL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr10_mutehsr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR10_MUTEHSR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr10_mutehfl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR10_MUTEHFL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr10_mutehfr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR10_MUTEHFR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr10_mutevibl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR10_MUTEVIBL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr10_mutevibr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR10_MUTEVIBR); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR10, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR11 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR11(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr11_earshortpwd, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR11_ENSHORTPWD); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr11_earshortdis, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR11_EARSHORTDIS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr11_hslshortdis, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR11_HSLSHORTDIS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr11_hsrshortdis, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR11_HSRSHORTDIS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr11_hflshortdis, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR11_HFLSHORTDIS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr11_hfrshortdis, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR11_HFRSHORTDIS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr11_viblshortdis, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR11_VIBLSHORTDIS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr11_vibrshortdis, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR11_VIBRSHORTDIS); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR11, value)); -} - -#endif - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR12 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR12(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr12_encphs, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR12_ENCPHS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr12_hsautotime, - AB8500_CODEC_MASK_THREE_BITS, AB8500_CODEC_CR12_HSAUTOTIME); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr12_hsautoensel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR12_HSAUTOENSEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr12_hsautoen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR12_HSAUTOEN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR12, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR13 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR13(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr13_envdet_hthresh, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR13_ENVDET_HTHRESH); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr13_envdet_lthresh, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR13_ENVDET_LTHRESH); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR13, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR14 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR14(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr14_smpslven, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR14_SMPSLVEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr14_envdetsmpsen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR14_ENVDETSMPSEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr14_cplven, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR14_CPLVEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr14_envdetcpen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR14_ENVDETCPEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr14_envet_time, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR14_ENVDET_TIME); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR14, value)); -} -#endif - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR15 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR15(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr15_pwmtovibl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR15_PWMTOVIBL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr15_pwmtovibr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR15_PWMTOVIBR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr15_pwmlctrl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR15_PWMLCTRL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr15_pwmrctrl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR15_PWMRCTRL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr15_pwmnlctrl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR15_PWMNLCTRL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr15_pwmplctrl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR15_PWMPLCTRL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr15_pwmnrctrl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR15_PWMNRCTRL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr15_pwmprctrl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR15_PWMPRCTRL); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR15, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR16 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR16(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr16_pwmnlpol, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR16_PWMNLPOL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr16_pwmnldutycycle, - AB8500_CODEC_MASK_SEVEN_BITS, AB8500_CODEC_CR16_PWMNLDUTYCYCLE); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR16, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR17 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR17(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr17_pwmplpol, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR17_PWMPLPOL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr17_pwmpldutycycle, - AB8500_CODEC_MASK_SEVEN_BITS, AB8500_CODEC_CR17_PWMLPDUTYCYCLE); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR17, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR18 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR18(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr18_pwmnrpol, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR18_PWMNRPOL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr18_pwmnrdutycycle, - AB8500_CODEC_MASK_SEVEN_BITS, AB8500_CODEC_CR18_PWMNRDUTYCYCLE); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR18, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR19 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR19(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr19_pwmprpol, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR19_PWMPRPOL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr19_pwmprdutycycle, - AB8500_CODEC_MASK_SEVEN_BITS, AB8500_CODEC_CR19_PWMRPDUTYCYCLE); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR19, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR20 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR20(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr20_en_se_mic1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR20_EN_SE_MIC1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr20_mic1_gain, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR20_MIC1_GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR20, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR21 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR21(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr21_en_se_mic2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR21_EN_SE_MIC2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr21_mic2_gain, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR21_MIC2_GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR21, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR22 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR22(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr22_hsl_gain, - AB8500_CODEC_MASK_THREE_BITS, AB8500_CODEC_CR22_HSL_GAIN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr22_linl_gain, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR22_LINL_GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR22, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR23 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR23(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr23_hsr_gain, - AB8500_CODEC_MASK_THREE_BITS, AB8500_CODEC_CR23_HSR_GAIN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr23_linr_gain, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR23_LINR_GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR23, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR24 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR24(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr24_lintohsl_gain, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR24_LINTOHSL_GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR24, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR25 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR25(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr25_lintohsr_gain, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR25_LINTOHSR_GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR25, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR26 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR26(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr26_ad1nh, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR26_AD1NH); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr26_ad2nh, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR26_AD2NH); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr26_ad3nh, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR26_AD3NH); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr26_ad4nh, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR26_AD4NH); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr26_ad1_voice, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR26_AD1_VOICE); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr26_ad2_voice, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR26_AD2_VOICE); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr26_ad3_voice, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR26_AD3_VOICE); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr26_ad4_voice, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR26_AD4_VOICE); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR26, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR27 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR27(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr27_en_mastgen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR27_EN_MASTGEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr27_if1_bitclk_osr, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR27_IF1_BITCLK_OSR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr27_enfs_bitclk1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR27_ENFS_BITCLK1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr27_if0_bitclk_osr, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR27_IF0_BITCLK_OSR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr27_enfs_bitclk0, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR27_ENFS_BITCLK0); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR27, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR28 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR28(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr28_fsync0p, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR28_FSYNC0P); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr28_bitclk0p, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR28_BITCLK0P); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr28_if0del, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR28_IF0DEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr28_if0format, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR28_IF0FORMAT); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr28_if0wl, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR28_IF0WL); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR28, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR29 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR29(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr29_if0datoif1ad, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR29_IF0DATOIF1AD); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr29_if0cktoif1ck, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR29_IF0CKTOIF1CK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr29_if1master, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR29_IF1MASTER); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr29_if1datoif0ad, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR29_IF1DATOIF0AD); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr29_if1cktoif0ck, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR29_IF1CKTOIF0CK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr29_if0master, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR29_IF0MASTER); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr29_if0bfifoen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR29_IF0BFIFOEN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR29, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR30 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR30(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr30_fsync1p, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR30_FSYNC1P); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr30_bitclk1p, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR30_BITCLK1P); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr30_if1del, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR30_IF1DEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr30_if1format, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR30_IF1FORMAT); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr30_if1wl, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR30_IF1WL); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR30, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR31 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR31(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr31_adotoslot1, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR31_ADOTOSLOT1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr31_adotoslot0, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR31_ADOTOSLOT0); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR31, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR32 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR32(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr32_adotoslot3, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR32_ADOTOSLOT3); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr32_adotoslot2, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR32_ADOTOSLOT2); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR32, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR33 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR33(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr33_adotoslot5, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR33_ADOTOSLOT5); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr33_adotoslot4, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR33_ADOTOSLOT4); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR33, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR34 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR34(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr34_adotoslot7, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR34_ADOTOSLOT7); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr34_adotoslot6, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR34_ADOTOSLOT6); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR34, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR35 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR35(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr35_adotoslot9, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR35_ADOTOSLOT9); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr35_adotoslot8, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR35_ADOTOSLOT8); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR35, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR36 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR36(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr36_adotoslot11, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR36_ADOTOSLOT11); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr36_adotoslot10, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR36_ADOTOSLOT10); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR36, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR37 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR37(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr37_adotoslot13, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR37_ADOTOSLOT13); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr37_adotoslot12, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR37_ADOTOSLOT12); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR37, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR38 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR38(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr38_adotoslot15, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR38_ADOTOSLOT15); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr38_adotoslot14, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR38_ADOTOSLOT14); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR38, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR39 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR39(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr39_adotoslot17, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR39_ADOTOSLOT17); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr39_adotoslot16, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR39_ADOTOSLOT16); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR39, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR40 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR40(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr40_adotoslot19, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR40_ADOTOSLOT19); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr40_adotoslot18, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR40_ADOTOSLOT18); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR40, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR41 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR41(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr41_adotoslot21, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR41_ADOTOSLOT21); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr41_adotoslot20, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR41_ADOTOSLOT20); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR41, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR42 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR42(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr42_adotoslot23, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR42_ADOTOSLOT23); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr42_adotoslot22, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR42_ADOTOSLOT22); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR42, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR43 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR43(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr43_adotoslot25, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR43_ADOTOSLOT25); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr43_adotoslot24, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR43_ADOTOSLOT24); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR43, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR44 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR44(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr44_adotoslot27, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR44_ADOTOSLOT27); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr44_adotoslot26, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR44_ADOTOSLOT26); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR44, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR45 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR45(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr45_adotoslot29, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR45_ADOTOSLOT29); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr45_adotoslot28, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR45_ADOTOSLOT28); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR45, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR46 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR46(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr46_adotoslot31, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR46_ADOTOSLOT31); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr46_adotoslot30, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR46_ADOTOSLOT30); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR46, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR47 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR47(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr47_hiz_sl7, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR47_HIZ_SL7); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr47_hiz_sl6, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR47_HIZ_SL6); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr47_hiz_sl5, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR47_HIZ_SL5); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr47_hiz_sl4, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR47_HIZ_SL4); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr47_hiz_sl3, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR47_HIZ_SL3); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr47_hiz_sl2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR47_HIZ_SL2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr47_hiz_sl1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR47_HIZ_SL1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr47_hiz_sl0, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR47_HIZ_SL0); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR47, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR48 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR48(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr48_hiz_sl15, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR48_HIZ_SL15); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr48_hiz_sl14, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR48_HIZ_SL14); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr48_hiz_sl13, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR48_HIZ_SL13); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr48_hiz_sl12, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR48_HIZ_SL12); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr48_hiz_sl11, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR48_HIZ_SL11); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr48_hiz_sl10, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR48_HIZ_SL10); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr48_hiz_sl9, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR48_HIZ_SL9); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr48_hiz_sl8, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR48_HIZ_SL8); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR48, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR49 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR49(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr49_hiz_sl23, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR49_HIZ_SL23); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr49_hiz_sl22, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR49_HIZ_SL22); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr49_hiz_sl21, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR49_HIZ_SL21); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr49_hiz_sl20, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR49_HIZ_SL20); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr49_hiz_sl19, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR49_HIZ_SL19); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr49_hiz_sl18, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR49_HIZ_SL18); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr49_hiz_sl17, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR49_HIZ_SL17); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr49_hiz_sl16, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR49_HIZ_SL16); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR49, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR50 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR50(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr50_hiz_sl31, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR50_HIZ_SL31); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr50_hiz_sl30, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR50_HIZ_SL30); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr50_hiz_sl29, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR50_HIZ_SL29); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr50_hiz_sl28, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR50_HIZ_SL28); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr50_hiz_sl27, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR50_HIZ_SL27); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr50_hiz_sl26, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR50_HIZ_SL26); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr50_hiz_sl25, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR50_HIZ_SL25); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr50_hiz_sl24, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR50_HIZ_SL24); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR50, value)); -} - -#endif - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR51 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR51(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr51_da12_voice, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR51_DA12_VOICE); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr51_sldai1toslado1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR51_SLDAI1TOSLADO1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr51_sltoda1, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR51_SLTODA1); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR51, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR52 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR52(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr52_sldai2toslado2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR52_SLDAI1TOSLADO2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr52_sltoda2, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR52_SLTODA2); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR52, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR53 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR53(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr53_da34_voice, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR53_DA34_VOICE); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr53_sldai3toslado3, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR53_SLDAI1TOSLADO3); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr53_sltoda3, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR53_SLTODA3); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR53, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR54 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR54(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr54_sldai4toslado4, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR54_SLDAI1TOSLADO4); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr54_sltoda4, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR54_SLTODA4); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR54, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR55 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR55(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr55_da56_voice, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR55_DA56_VOICE); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr55_sldai5toslado5, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR55_SLDAI1TOSLADO5); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr55_sltoda5, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR55_SLTODA5); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR55, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR56 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR56(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr56_sldai6toslado7, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR56_SLDAI1TOSLADO6); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr56_sltoda6, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR56_SLTODA6); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR56, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR57 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR57(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr57_bfifull_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR57_BFIFULL_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr57_bfiempt_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR57_BFIEMPT_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr57_dachan_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR57_DACHAN_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr57_gain_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR57_GAIN_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr57_dspad_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR57_DSPAD_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr57_dspda_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR57_DSPDA_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr57_stfir_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR57_STFIR_MSK); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR57, value)); -} - -/* CR58 is Read Only */ -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR59 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR59(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr59_vssready_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR59_VSSREADY_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr59_shrtvibl_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR59_SHRTVIBL_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr59_shrtvibr_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR59_SHRTVIBR_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr59_shrthfl_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR59_SHRTHFL_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr59_shrthfr_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR59_SHRTHFR_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr59_shrthsl_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR59_SHRTHSL_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr59_shrthsr_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR59_SHRTHSR_MSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr59_shrtear_msk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR59_SHRTEAR_MSK); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR59, value)); -} - -/* CR60 is Read Only */ -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR61 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR61(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - /* 5 bits are Read Only */ - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr61_fade_speed, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR61_FADE_SPEED); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR61, value)); -} -#endif -/* CR62 is Read Only */ -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR63 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR63(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr63_datohslen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR63_DATOHSLEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr63_datohsren, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR63_DATOHSREN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr63_ad1sel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR63_AD1SEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr63_ad2sel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR63_AD2SEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr63_ad3sel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR63_AD3SEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr63_ad5sel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR63_AD5SEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr63_ad6sel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR63_AD6SEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr63_ancsel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR63_ANCSEL); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR63, value)); -} - -#if 0 -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR64 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR64(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr64_datohfren, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR64_DATOHFREN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr64_datohflen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR64_DATOHFLEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr64_hfrsel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR64_HFRSEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr64_hflsel, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR64_HFLSEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr64_stfir1sel, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR64_STFIR1SEL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr64_stfir2sel, - AB8500_CODEC_MASK_TWO_BITS, AB8500_CODEC_CR64_STFIR2SEL); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR64, value)); -} - -#endif - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR65 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR65(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr65_fadedis_ad1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR65_FADEDIS_AD1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr65_ad1gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR65_AD1GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR65, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR66 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR66(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr66_fadedis_ad2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR66_FADEDIS_AD2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr66_ad2gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR66_AD2GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR66, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR67 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR67(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr67_fadedis_ad3, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR67_FADEDIS_AD3); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr67_ad3gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR67_AD3GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR67, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR68 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR68(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr68_fadedis_ad4, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR68_FADEDIS_AD4); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr68_ad4gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR68_AD4GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR68, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR69 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR69(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr69_fadedis_ad5, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR69_FADEDIS_AD5); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr69_ad5gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR69_AD5GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR69, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR70 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR70(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr70_fadedis_ad6, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR70_FADEDIS_AD6); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr70_ad6gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR70_AD6GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR70, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR71 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR71(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr71_fadedis_da1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR71_FADEDIS_DA1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr71_da1gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR71_DA1GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR71, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR72 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR72(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr72_fadedis_da2, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR72_FADEDIS_DA2); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr72_da2gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR72_DA2GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR72, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR73 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR73(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr73_fadedis_da3, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR73_FADEDIS_DA3); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr73_da3gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR73_DA3GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR73, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR74 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR74(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr74_fadedis_da4, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR74_FADEDIS_DA4); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr74_da4gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR74_DA4GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR74, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR75 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR75(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr75_fadedis_da5, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR75_FADEDIS_DA5); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr75_da5gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR75_DA5GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR75, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR76 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR76(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr76_fadedis_da6, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR76_FADEDIS_DA6); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr76_da6gain, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR76_DA6GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR76, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR77 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR77(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr77_fadedis_ad1l, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR77_FADEDIS_AD1L); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr77_ad1lbgain_to_hfl, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR77_AD1LBGAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR77, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR78 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR78(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr78_fadedis_ad2l, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR78_FADEDIS_AD2L); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr78_ad2lbgain_to_hfr, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR78_AD2LBGAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR78, value)); -} -#endif - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR79 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR79(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr79_hssinc1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR79_HSSINC1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr79_fadedis_hsl, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR79_FADEDIS_HSL); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr79_hsldgain, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR79_HSLDGAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR79, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR80 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR80(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr80_fadedis_hsr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR80_FADEDIS_HSR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr80_hsrdgain, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR80_HSRDGAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR80, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR81 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR81(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr81_stfir1gain, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR81_STFIR1GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR81, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR82 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR82(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr82_stfir2gain, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR82_STFIR2GAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR82, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR83 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR83(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr83_enanc, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR83_ENANC); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr83_anciirinit, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR83_ANCIIRINIT); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr83_ancfirupdate, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR83_ANCFIRUPDATE); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR83, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR84 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR84(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr84_ancinshift, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR84_ANCINSHIFT); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR84, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR85 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR85(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr85_ancfiroutshift, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR85_ANCFIROUTSHIFT); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR85, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR86 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR86(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr86_ancshiftout, - AB8500_CODEC_MASK_FIVE_BITS, AB8500_CODEC_CR86_ANCSHIFTOUT); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR86, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR87 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR87(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr87_ancfircoeff_msb, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR87_ANCFIRCOEFF_MSB); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR87, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR88 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR88(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr88_ancfircoeff_lsb, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR88_ANCFIRCOEFF_LSB); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR88, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR89 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR89(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr89_anciircoeff_msb, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR89_ANCIIRCOEFF_MSB); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR89, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR90 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR90(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr90_anciircoeff_lsb, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR90_ANCIIRCOEFF_LSB); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR90, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR91 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR91(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr91_ancwarpdel_msb, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR91_ANCWARPDEL_MSB); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR91, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR92 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR92(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr92_ancwarpdel_lsb, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR92_ANCWARPDEL_LSB); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR92, value)); -} - -/* CR93 is Read Only */ -/* CR94 is Read Only */ -/* CR95 is Read Only */ -/* CR96 is Read Only */ -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR97 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR97(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr97_stfir_set, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR97_STFIR_SET); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr97_stfir_addr, - AB8500_CODEC_MASK_SEVEN_BITS, AB8500_CODEC_CR97_STFIR_ADDR); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR97, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR98 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR98(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr98_stfir_coeff_msb, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR98_STFIR_COEFF_MSB); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR98, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR99 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR99(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr99_stfir_coeff_lsb, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR99_STFIR_COEFF_LSB); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR99, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR100 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR100(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr100_enstfirs, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR100_ENSTFIRS); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr100_stfirstoif1, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR100_STFIRSTOIF1); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr100_stfir_busy, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR100_STFIR_BUSY); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR100, value)); -} - -#endif -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR101 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR101(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr101_parlhf, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR101_PARLHF); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr101_parlvib, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR101_PARLVIB); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr101_classd_viblswapen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR101_CLASSDVIBLSWAPEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr101_classd_vibrswapen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR101_CLASSDVIBRSWAPEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr101_classd_hflswapen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR101_CLASSDHFLSWAPEN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr101_classd_hfrswapen, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR101_CLASSDHFRSWAPEN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR101, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR102 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR102(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr102_classd_firbyp, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR102_CLASSD_FIRBYP); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr102_classd_highvolen, - AB8500_CODEC_MASK_FOUR_BITS, AB8500_CODEC_CR102_CLASSD_HIGHVOLEN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR102, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR103 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR103(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr103_classd_ditherhpgain, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR103_CLASSD_DITHERHPGAIN); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr103_classd_ditherwgain, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR103_CLASSD_DITHERWGAIN); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR103, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR104 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR104(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr104_bfifoint, - AB8500_CODEC_MASK_SIX_BITS, AB8500_CODEC_CR104_BFIFOINT); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR104, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR105 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR105(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr105_bfifotx, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR105_BFIFOTX); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR105, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR106 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR106(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr106_bfifofsext, - AB8500_CODEC_MASK_THREE_BITS, AB8500_CODEC_CR106_BFIFOFSEXT); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr106_bfifomsk, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR106_BFIFOMSK); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr106_bfifomstr, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR106_BFIFOMSTR); - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr106_bfifostrt, - AB8500_CODEC_MASK_ONE_BIT, AB8500_CODEC_CR106_BFIFOSTRT); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR106, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR107 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR107(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr107_bfifosampnr, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR107_BFIFOSAMPNR); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR107, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR108 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR108(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr108_bfifowakeup, - AB8500_CODEC_MASK_EIGHT_BITS, AB8500_CODEC_CR108_BFIFOWAKEUP); - - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR108, value)); -} - -/* CR109 is Read Only */ -/********************************************************************************************/ -/* Name: ab8500_codec_Reset() */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_Reset(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - p_ab8500_codec_configuration->cr1_swreset = - AB8500_CODEC_CR1_SWRESET_ENABLED; - - ab8500_codec_error = ab8500_codec_UpdateCR1(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirection(IN - t_ab8500_codec_direction - ab8500_codec_direction) -{ /*only IN or OUT must be passed (not INOUT) */ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - - if (AB8500_CODEC_DIRECTION_IN == ab8500_codec_direction) { - ab8500_codec_error = ab8500_codec_ProgramDirectionIN(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - if (AB8500_CODEC_DIRECTION_OUT == ab8500_codec_direction) { - ab8500_codec_error = ab8500_codec_ProgramDirectionOUT(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SetDirection(IN - t_ab8500_codec_direction - ab8500_codec_direction) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - switch (ab8500_codec_direction) { - case AB8500_CODEC_DIRECTION_IN: - ab8500_codec_error = - ab8500_codec_ProgramDirection(AB8500_CODEC_DIRECTION_IN); - break; - - case AB8500_CODEC_DIRECTION_OUT: - ab8500_codec_error = - ab8500_codec_ProgramDirection(AB8500_CODEC_DIRECTION_OUT); - break; - - case AB8500_CODEC_DIRECTION_INOUT: - ab8500_codec_error = - ab8500_codec_ProgramDirection(AB8500_CODEC_DIRECTION_IN); - if (AB8500_CODEC_OK == ab8500_codec_error) { - ab8500_codec_error = - ab8500_codec_ProgramDirection - (AB8500_CODEC_DIRECTION_OUT); - } - break; - } - - if (ab8500_codec_error != AB8500_CODEC_OK) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR5(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR6(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR7(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR8(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR9(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR10(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR12(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR15(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR63(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_Init */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Initialize the global variables & stores the slave address of codec. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* slave_address_of_ab8500_codec: Audio codec slave address */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* Returns AB8500_CODEC_OK */ -/* COMMENTS: */ -/* 1) Saves the supplied slave_address_of_codec in global variable */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_Init(IN t_uint8 - slave_address_of_ab8500_codec) -{ - DBGENTER1(" (%lx)", slave_address_of_ab8500_codec); - - g_ab8500_codec_system_context.slave_address_of_ab8500_codec = - slave_address_of_ab8500_codec; - - DBGEXIT(AB8500_CODEC_OK); - return (AB8500_CODEC_OK); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_Reset */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Reset the global variables and clear audiocodec settings to default. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_Reset(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - - DBGENTER(); - - g_ab8500_codec_system_context.ab8500_codec_direction = - AB8500_CODEC_DEFAULT_DIRECTION; - g_ab8500_codec_system_context.ab8500_codec_mode_in = - AB8500_CODEC_DEFAULT_MODE_IN; - g_ab8500_codec_system_context.ab8500_codec_mode_out = - AB8500_CODEC_DEFAULT_MODE_OUT; - - g_ab8500_codec_system_context.ab8500_codec_src = - AB8500_CODEC_DEFAULT_INPUT_SRC; - g_ab8500_codec_system_context.ab8500_codec_dest = - AB8500_CODEC_DEFAULT_OUTPUT_DEST; - - g_ab8500_codec_system_context.in_left_volume = - AB8500_CODEC_DEFAULT_VOLUME_LEFT_IN; - g_ab8500_codec_system_context.in_right_volume = - AB8500_CODEC_DEFAULT_VOLUME_RIGHT_IN; - g_ab8500_codec_system_context.out_left_volume = - AB8500_CODEC_DEFAULT_VOLUME_LEFT_OUT; - g_ab8500_codec_system_context.out_right_volume = - AB8500_CODEC_DEFAULT_VOLUME_RIGHT_OUT; - - ab8500_codec_error = ab8500_codec_Reset(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetModeAndDirection */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Configures the whole audio codec to work in audio mode */ -/* (using I2S protocol). */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* direction: select the direction (IN, OUT or INOUT) */ -/* in_mode: codec mode for recording. If direction is OUT only, */ -/* this parameter is ignored. */ -/* out_mode: codec mode for playing. If direction is IN only, */ -/* this parameter is ignored. */ -/* p_tdm_config: TDM configuration required to be configured by user */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_UNSUPPORTED_FEATURE: The API may not allow setting */ -/* 2 different modes, in which case it should return this value. */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetModeAndDirection - (IN t_ab8500_codec_direction ab8500_codec_direction, - IN t_ab8500_codec_mode ab8500_codec_mode_in, - IN t_ab8500_codec_mode ab8500_codec_mode_out, - IN t_ab8500_codec_tdm_config const *const p_tdm_config) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - DBGENTER3(" (%lx %lx %lx)", ab8500_codec_direction, - ab8500_codec_mode_in, ab8500_codec_mode_out); - - if (AB8500_CODEC_AUDIO_INTERFACE_1 == - g_ab8500_codec_system_context.audio_interface) { - if (AB8500_CODEC_DIRECTION_OUT == ab8500_codec_direction - || AB8500_CODEC_DIRECTION_INOUT == ab8500_codec_direction) { - p_ab8500_codec_configuration->cr3_enda1 = - AB8500_CODEC_CR3_ENDA1_ENABLED; - p_ab8500_codec_configuration->cr3_enda2 = - AB8500_CODEC_CR3_ENDA2_ENABLED; - p_ab8500_codec_configuration->cr3_enda3 = - AB8500_CODEC_CR3_ENDA3_ENABLED; - p_ab8500_codec_configuration->cr3_enda4 = - AB8500_CODEC_CR3_ENDA4_ENABLED; - p_ab8500_codec_configuration->cr3_enda5 = - AB8500_CODEC_CR3_ENDA5_ENABLED; - p_ab8500_codec_configuration->cr3_enda6 = - AB8500_CODEC_CR3_ENDA6_ENABLED; - - p_ab8500_codec_configuration->cr27_if1_bitclk_osr = - p_tdm_config->cr27_if1_bitclk_osr; - - if (AB8500_CODEC_MODE_HIFI == ab8500_codec_mode_out) { - p_ab8500_codec_configuration->cr30_fsync1p = - AB8500_CODEC_CR30_FSYNC1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_bitclk1p = - AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_if1del = - AB8500_CODEC_CR30_IF1DEL_DELAYED; - p_ab8500_codec_configuration->cr30_if1format = - AB8500_CODEC_CR30_IF1FORMAT_I2S_LEFTALIGNED; - p_ab8500_codec_configuration->cr30_if1wl = - p_tdm_config->cr30_if1wl; - } else { - p_ab8500_codec_configuration->cr30_fsync1p = - AB8500_CODEC_CR30_FSYNC1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_bitclk1p = - AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_if1del = - AB8500_CODEC_CR30_IF1DEL_DELAYED; - p_ab8500_codec_configuration->cr30_if1format = - AB8500_CODEC_CR30_IF1FORMAT_TDM; - p_ab8500_codec_configuration->cr30_if1wl = - p_tdm_config->cr30_if1wl; - } - } - - if (AB8500_CODEC_DIRECTION_IN == ab8500_codec_direction - || AB8500_CODEC_DIRECTION_INOUT == ab8500_codec_direction) { - p_ab8500_codec_configuration->cr2_enad1 = - AB8500_CODEC_CR2_ENAD1_ENABLED; - p_ab8500_codec_configuration->cr2_enad2 = - AB8500_CODEC_CR2_ENAD2_ENABLED; - p_ab8500_codec_configuration->cr2_enad3 = - AB8500_CODEC_CR2_ENAD3_ENABLED; - p_ab8500_codec_configuration->cr2_enad4 = - AB8500_CODEC_CR2_ENAD4_ENABLED; - p_ab8500_codec_configuration->cr2_enad5 = - AB8500_CODEC_CR2_ENAD5_ENABLED; - p_ab8500_codec_configuration->cr2_enad6 = - AB8500_CODEC_CR2_ENAD6_ENABLED; - - p_ab8500_codec_configuration->cr27_if1_bitclk_osr = - p_tdm_config->cr27_if1_bitclk_osr; - - if (AB8500_CODEC_MODE_HIFI == ab8500_codec_mode_in) { - p_ab8500_codec_configuration->cr30_fsync1p = - AB8500_CODEC_CR30_FSYNC1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_bitclk1p = - AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_if1del = - AB8500_CODEC_CR30_IF1DEL_DELAYED; - p_ab8500_codec_configuration->cr30_if1format = - AB8500_CODEC_CR30_IF1FORMAT_I2S_LEFTALIGNED; - p_ab8500_codec_configuration->cr30_if1wl = - p_tdm_config->cr30_if1wl; - } else { - p_ab8500_codec_configuration->cr30_fsync1p = - AB8500_CODEC_CR30_FSYNC1P_RISING_EDGE; - p_ab8500_codec_configuration->cr30_bitclk1p = - AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_if1del = - AB8500_CODEC_CR30_IF1DEL_NOT_DELAYED; - p_ab8500_codec_configuration->cr30_if1format = - AB8500_CODEC_CR30_IF1FORMAT_TDM; - p_ab8500_codec_configuration->cr30_if1wl = - p_tdm_config->cr30_if1wl; - } - } - } else { - if (AB8500_CODEC_DIRECTION_OUT == ab8500_codec_direction - || AB8500_CODEC_DIRECTION_INOUT == ab8500_codec_direction) { - p_ab8500_codec_configuration->cr3_enda1 = - AB8500_CODEC_CR3_ENDA1_ENABLED; - p_ab8500_codec_configuration->cr3_enda2 = - AB8500_CODEC_CR3_ENDA2_ENABLED; - p_ab8500_codec_configuration->cr3_enda3 = - AB8500_CODEC_CR3_ENDA3_ENABLED; - p_ab8500_codec_configuration->cr3_enda4 = - AB8500_CODEC_CR3_ENDA4_ENABLED; - p_ab8500_codec_configuration->cr3_enda5 = - AB8500_CODEC_CR3_ENDA5_ENABLED; - p_ab8500_codec_configuration->cr3_enda6 = - AB8500_CODEC_CR3_ENDA6_ENABLED; - - p_ab8500_codec_configuration->cr27_if0_bitclk_osr = - p_tdm_config->cr27_if0_bitclk_osr; - - p_ab8500_codec_configuration->cr63_datohslen = - AB8500_CODEC_CR63_DATOHSLEN_ENABLED; - p_ab8500_codec_configuration->cr63_datohsren = - AB8500_CODEC_CR63_DATOHSREN_ENABLED; - - if (AB8500_CODEC_MODE_HIFI == ab8500_codec_mode_out) { - p_ab8500_codec_configuration->cr28_fsync0p = - AB8500_CODEC_CR28_FSYNC0P_FALLING_EDGE; - p_ab8500_codec_configuration->cr28_bitclk0p = p_tdm_config->cr28_bitclk0p; /*AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE; */ - p_ab8500_codec_configuration->cr28_if0del = p_tdm_config->cr28_if0del; /*AB8500_CODEC_CR28_IF0DEL_DELAYED; */ - p_ab8500_codec_configuration->cr28_if0format = - AB8500_CODEC_CR28_IF0FORMAT_I2S_LEFTALIGNED; - p_ab8500_codec_configuration->cr28_if0wl = - p_tdm_config->cr28_if0wl; - } else { - p_ab8500_codec_configuration->cr28_fsync0p = - AB8500_CODEC_CR28_FSYNC0P_FALLING_EDGE; - p_ab8500_codec_configuration->cr28_bitclk0p = p_tdm_config->cr28_bitclk0p; /*AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE; */ - p_ab8500_codec_configuration->cr28_if0del = p_tdm_config->cr28_if0del; /*AB8500_CODEC_CR28_IF0DEL_DELAYED; */ - p_ab8500_codec_configuration->cr28_if0format = - AB8500_CODEC_CR28_IF0FORMAT_TDM; - p_ab8500_codec_configuration->cr28_if0wl = - p_tdm_config->cr28_if0wl; - } - } - - if (AB8500_CODEC_DIRECTION_IN == ab8500_codec_direction - || AB8500_CODEC_DIRECTION_INOUT == ab8500_codec_direction) { - p_ab8500_codec_configuration->cr2_enad1 = - AB8500_CODEC_CR2_ENAD1_ENABLED; - p_ab8500_codec_configuration->cr2_enad2 = - AB8500_CODEC_CR2_ENAD2_ENABLED; - p_ab8500_codec_configuration->cr2_enad3 = - AB8500_CODEC_CR2_ENAD3_ENABLED; - p_ab8500_codec_configuration->cr2_enad4 = - AB8500_CODEC_CR2_ENAD4_ENABLED; - p_ab8500_codec_configuration->cr2_enad5 = - AB8500_CODEC_CR2_ENAD5_ENABLED; - p_ab8500_codec_configuration->cr2_enad6 = - AB8500_CODEC_CR2_ENAD6_ENABLED; - - p_ab8500_codec_configuration->cr26_ad1_voice = - AB8500_CODEC_CR26_AD1_VOICE_LOWLATENCYFILTER; - p_ab8500_codec_configuration->cr26_ad2_voice = - AB8500_CODEC_CR26_AD2_VOICE_LOWLATENCYFILTER; - p_ab8500_codec_configuration->cr26_ad3_voice = - AB8500_CODEC_CR26_AD3_VOICE_LOWLATENCYFILTER; - p_ab8500_codec_configuration->cr26_ad4_voice = - AB8500_CODEC_CR26_AD4_VOICE_LOWLATENCYFILTER; - - p_ab8500_codec_configuration->cr27_if0_bitclk_osr = - p_tdm_config->cr27_if0_bitclk_osr; - - if (AB8500_CODEC_MODE_HIFI == ab8500_codec_mode_in) { - p_ab8500_codec_configuration->cr28_fsync0p = - AB8500_CODEC_CR28_FSYNC0P_RISING_EDGE; - p_ab8500_codec_configuration->cr28_bitclk0p = p_tdm_config->cr28_bitclk0p; /*AB8500_CODEC_CR28_BITCLK0P_RISING_EDGE; */ - p_ab8500_codec_configuration->cr28_if0del = p_tdm_config->cr28_if0del; /*AB8500_CODEC_CR28_IF0DEL_NOT_DELAYED; */ - p_ab8500_codec_configuration->cr28_if0format = - AB8500_CODEC_CR28_IF0FORMAT_I2S_LEFTALIGNED; - p_ab8500_codec_configuration->cr28_if0wl = - p_tdm_config->cr28_if0wl; - } else { - p_ab8500_codec_configuration->cr28_fsync0p = - AB8500_CODEC_CR28_FSYNC0P_RISING_EDGE; - p_ab8500_codec_configuration->cr28_bitclk0p = p_tdm_config->cr28_bitclk0p; /*AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE; */ - p_ab8500_codec_configuration->cr28_if0del = p_tdm_config->cr28_if0del; /*AB8500_CODEC_CR28_IF0DEL_NOT_DELAYED; */ - p_ab8500_codec_configuration->cr28_if0format = - AB8500_CODEC_CR28_IF0FORMAT_TDM; - p_ab8500_codec_configuration->cr28_if0wl = - p_tdm_config->cr28_if0wl; - } - } - } - - ab8500_codec_error = ab8500_codec_SetModeAndDirectionUpdateCR(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - g_ab8500_codec_system_context.ab8500_codec_direction = - ab8500_codec_direction; - g_ab8500_codec_system_context.ab8500_codec_mode_in = - ab8500_codec_mode_in; - g_ab8500_codec_system_context.ab8500_codec_mode_out = - ab8500_codec_mode_out; - - ab8500_codec_error = ab8500_codec_SetDirection(ab8500_codec_direction); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetSrcVolume */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Sets the record volumes. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* t_ab8500_codec_src: select source device for recording. */ -/* in_left_volume: record volume for left channel. */ -/* in_right_volume: record volume for right channel. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetSrcVolume - (IN t_ab8500_codec_src src_device, - IN t_uint8 in_left_volume, IN t_uint8 in_right_volume) { - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER3(" (%lx %lx %lx)", src_device, in_left_volume, - in_right_volume); - - if (in_left_volume > AB8500_CODEC_MAX_VOLUME) { - in_left_volume = AB8500_CODEC_MAX_VOLUME; - } - - if (in_right_volume > AB8500_CODEC_MAX_VOLUME) { - in_right_volume = AB8500_CODEC_MAX_VOLUME; - } - - g_ab8500_codec_system_context.in_left_volume = in_left_volume; - g_ab8500_codec_system_context.in_right_volume = in_right_volume; - - p_ab8500_codec_configuration->cr65_ad1gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr66_ad2gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr67_ad3gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr68_ad4gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr69_ad5gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr70_ad6gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - - /* Set mininimum volume if volume is zero */ - switch (src_device) { - case AB8500_CODEC_SRC_LINEIN: - p_ab8500_codec_configuration->cr22_linl_gain = - AB8500_CODEC_LINEIN_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_LINEIN_VOLUME_MAX - - AB8500_CODEC_LINEIN_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr23_linr_gain = - AB8500_CODEC_LINEIN_VOLUME_MIN + - (in_right_volume * - (AB8500_CODEC_LINEIN_VOLUME_MAX - - AB8500_CODEC_LINEIN_VOLUME_MIN)) / 100; - break; - - case AB8500_CODEC_SRC_MICROPHONE_1A: - case AB8500_CODEC_SRC_MICROPHONE_1B: - p_ab8500_codec_configuration->cr20_mic1_gain = - AB8500_CODEC_MIC_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_MIC_VOLUME_MAX - - AB8500_CODEC_MIC_VOLUME_MIN)) / 100; - break; - - case AB8500_CODEC_SRC_MICROPHONE_2: - p_ab8500_codec_configuration->cr21_mic2_gain = - AB8500_CODEC_MIC_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_MIC_VOLUME_MAX - - AB8500_CODEC_MIC_VOLUME_MIN)) / 100; - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_1: - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_2: - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_3: - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_4: - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_5: - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_6: - break; - - case AB8500_CODEC_SRC_ALL: - p_ab8500_codec_configuration->cr22_linl_gain = - AB8500_CODEC_LINEIN_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_LINEIN_VOLUME_MAX - - AB8500_CODEC_LINEIN_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr23_linr_gain = - AB8500_CODEC_LINEIN_VOLUME_MIN + - (in_right_volume * - (AB8500_CODEC_LINEIN_VOLUME_MAX - - AB8500_CODEC_LINEIN_VOLUME_MIN)) / 100; - - p_ab8500_codec_configuration->cr20_mic1_gain = - AB8500_CODEC_MIC_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_MIC_VOLUME_MAX - - AB8500_CODEC_MIC_VOLUME_MIN)) / 100; - - p_ab8500_codec_configuration->cr21_mic2_gain = - AB8500_CODEC_MIC_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_MIC_VOLUME_MAX - - AB8500_CODEC_MIC_VOLUME_MIN)) / 100; - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_SetSrcVolumeUpdateCR(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetDestVolume */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Sets the play volumes. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* out_left_volume: play volume for left channel. */ -/* out_right_volume: play volume for right channel. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetDestVolume - (IN t_ab8500_codec_dest dest_device, - IN t_uint8 out_left_volume, IN t_uint8 out_right_volume) { - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER3(" (%lx %lx %lx)", dest_device, out_left_volume, - out_right_volume); - - if (out_left_volume > AB8500_CODEC_MAX_VOLUME) { - out_left_volume = AB8500_CODEC_MAX_VOLUME; - } - - if (out_right_volume > AB8500_CODEC_MAX_VOLUME) { - out_right_volume = AB8500_CODEC_MAX_VOLUME; - } - - g_ab8500_codec_system_context.out_left_volume = out_left_volume; - g_ab8500_codec_system_context.out_right_volume = out_right_volume; - - p_ab8500_codec_configuration->cr71_da1gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr72_da2gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr73_da3gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr74_da4gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr75_da5gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr76_da6gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - - /* Set mininimum volume if volume is zero */ - switch (dest_device) { - case AB8500_CODEC_DEST_HEADSET: - p_ab8500_codec_configuration->cr22_hsl_gain = - AB8500_CODEC_HEADSET_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_HEADSET_VOLUME_MAX - - AB8500_CODEC_HEADSET_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr23_hsr_gain = - AB8500_CODEC_HEADSET_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_HEADSET_VOLUME_MAX - - AB8500_CODEC_HEADSET_VOLUME_MIN)) / 100; - - p_ab8500_codec_configuration->cr79_hsldgain = - AB8500_CODEC_HEADSET_D_VOLUME_0DB; - p_ab8500_codec_configuration->cr80_hsrdgain = - AB8500_CODEC_HEADSET_D_VOLUME_0DB; - break; - - case AB8500_CODEC_DEST_EARPIECE: - p_ab8500_codec_configuration->cr79_hsldgain = - AB8500_CODEC_HEADSET_D_VOLUME_0DB; - break; - - case AB8500_CODEC_DEST_HANDSFREE: - - p_ab8500_codec_configuration->cr101_parlhf = - AB8500_CODEC_CR101_PARLHF_INDEPENDENT; - p_ab8500_codec_configuration->cr101_parlvib = - AB8500_CODEC_CR101_PARLVIB_INDEPENDENT; - p_ab8500_codec_configuration->cr101_classd_viblswapen = - AB8500_CODEC_CR101_CLASSD_VIBLSWAPEN_DISABLED; - p_ab8500_codec_configuration->cr101_classd_vibrswapen = - AB8500_CODEC_CR101_CLASSD_VIBRSWAPEN_DISABLED; - p_ab8500_codec_configuration->cr101_classd_hflswapen = - AB8500_CODEC_CR101_CLASSD_HFLSWAPEN_DISABLED; - p_ab8500_codec_configuration->cr101_classd_hfrswapen = - AB8500_CODEC_CR101_CLASSD_HFRSWAPEN_DISABLED; - - p_ab8500_codec_configuration->cr102_classd_firbyp = - AB8500_CODEC_CR102_CLASSD_FIRBYP_ALL_ENABLED; - p_ab8500_codec_configuration->cr102_classd_highvolen = - AB8500_CODEC_CR102_CLASSD_HIGHVOLEN_DISABLED; - - p_ab8500_codec_configuration->cr103_classd_ditherhpgain = 0x8; - p_ab8500_codec_configuration->cr103_classd_ditherwgain = 0x4; - - break; - - case AB8500_CODEC_DEST_VIBRATOR_L: - p_ab8500_codec_configuration->cr16_pwmnldutycycle = - AB8500_CODEC_VIBRATOR_VOLUME_MIN; - p_ab8500_codec_configuration->cr17_pwmpldutycycle = - AB8500_CODEC_VIBRATOR_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_VIBRATOR_VOLUME_MAX - - AB8500_CODEC_VIBRATOR_VOLUME_MIN)) / 100; - break; - - case AB8500_CODEC_DEST_VIBRATOR_R: - p_ab8500_codec_configuration->cr18_pwmnrdutycycle = - AB8500_CODEC_VIBRATOR_VOLUME_MIN; - p_ab8500_codec_configuration->cr19_pwmprdutycycle = - AB8500_CODEC_VIBRATOR_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_VIBRATOR_VOLUME_MAX - - AB8500_CODEC_VIBRATOR_VOLUME_MIN)) / 100; - break; - - case AB8500_CODEC_DEST_ALL: - p_ab8500_codec_configuration->cr22_hsl_gain = - AB8500_CODEC_HEADSET_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_HEADSET_VOLUME_MAX - - AB8500_CODEC_HEADSET_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr23_hsr_gain = - AB8500_CODEC_HEADSET_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_HEADSET_VOLUME_MAX - - AB8500_CODEC_HEADSET_VOLUME_MIN)) / 100; - - p_ab8500_codec_configuration->cr79_hsldgain = - AB8500_CODEC_HEADSET_D_VOLUME_0DB; - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_SetDestVolumeUpdateCR(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetMasterMode */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Set the Audio Codec in Master mode. */ -/* */ -/* ARGUMENTS */ -/* IN: t_codec_master_mode: Enable/disable master mode */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: Call this API after calling AB8500_CODEC_SetModeAndDirection() API*/ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetMasterMode(IN - t_ab8500_codec_master_mode - mode) -{ - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - - if (AB8500_CODEC_AUDIO_INTERFACE_1 == - g_ab8500_codec_system_context.audio_interface) { - - p_ab8500_codec_configuration->cr27_en_mastgen = - AB8500_CODEC_CR27_EN_MASTGEN_ENABLED; - p_ab8500_codec_configuration->cr27_enfs_bitclk1 = - AB8500_CODEC_CR27_ENFS_BITCLK1_ENABLED; - - if (AB8500_CODEC_MASTER_MODE_ENABLE == mode) { - p_ab8500_codec_configuration->cr29_if1master = - AB8500_CODEC_CR29_IF1MASTER_FS1CK1_OUTPUT; - } else { - p_ab8500_codec_configuration->cr29_if1master = - AB8500_CODEC_CR29_IF1MASTER_FS1CK1_INPUT; - } - - } else { - - p_ab8500_codec_configuration->cr27_en_mastgen = - AB8500_CODEC_CR27_EN_MASTGEN_ENABLED; - p_ab8500_codec_configuration->cr27_enfs_bitclk0 = - AB8500_CODEC_CR27_ENFS_BITCLK0_ENABLED; - - if (AB8500_CODEC_MASTER_MODE_ENABLE == mode) { - p_ab8500_codec_configuration->cr29_if0master = - AB8500_CODEC_CR29_IF0MASTER_FS0CK0_OUTPUT; - } else { - p_ab8500_codec_configuration->cr29_if0master = - AB8500_CODEC_CR29_IF0MASTER_FS0CK0_INPUT; - } - - } - - ab8500_codec_error = ab8500_codec_UpdateCR27(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR29(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SelectInput */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Select input source for recording. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* input_src: select input source for recording when several sources */ -/* are supported in codec. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If input_src provided is invalid */ -/* by the codec hardware in use. */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SelectInput(IN t_ab8500_codec_src - ab8500_codec_src) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER1(" (%lx)", ab8500_codec_src); - - g_ab8500_codec_system_context.ab8500_codec_src = ab8500_codec_src; - - ab8500_codec_error = - ab8500_codec_SetDirection(AB8500_CODEC_DIRECTION_IN); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SelectOutput */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Select output desination for playing. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* output_dest: select output destination for playing when several are */ -/* supported by codec hardware. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If output_src provided is invalid */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SelectOutput(IN t_ab8500_codec_dest - ab8500_codec_dest) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - g_ab8500_codec_system_context.ab8500_codec_dest = ab8500_codec_dest; - DBGENTER1(" (%lx)", ab8500_codec_dest); - - ab8500_codec_error = - ab8500_codec_SetDirection(AB8500_CODEC_DIRECTION_OUT); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_PowerDown */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Shuts the audio codec down completely. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* OUT: */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_PowerDown(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - - g_ab8500_codec_system_context.ab8500_codec_configuration.cr0_powerup = - AB8500_CODEC_CR0_POWERUP_OFF; - - ab8500_codec_error = ab8500_codec_UpdateCR0(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_PowerUp */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Switch on the audio codec. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_PowerUp(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - - DBGENTER(); - - /*g_ab8500_codec_system_context.ab8500_codec_configuration.cr1_swreset = AB8500_CODEC_CR1_SWRESET_ENABLED; Removed by kardad - ab8500_codec_error = ab8500_codec_UpdateCR1(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return(ab8500_codec_error); - } */ - - g_ab8500_codec_system_context.ab8500_codec_configuration.cr0_powerup = - AB8500_CODEC_CR0_POWERUP_ON; - g_ab8500_codec_system_context.ab8500_codec_configuration.cr0_enaana = - AB8500_CODEC_CR0_ENAANA_ON; - - ab8500_codec_error = ab8500_codec_UpdateCR0(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SelectInterface */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Select the Audio Interface 0 or 1. */ -/* */ -/* ARGUMENTS */ -/* IN: t_ab8500_codec_audio_interface: The selected interface */ -/* */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_OK: Always. */ -/* REMARK: Call this API before using a function of the low level drivers */ -/* to select the interface that you want to configure */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SelectInterface(IN - t_ab8500_codec_audio_interface - audio_interface) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - - g_ab8500_codec_system_context.audio_interface = audio_interface; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_GetInterface */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Get the Audio Interface 0 or 1. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: p_audio_interface: Store the selected interface */ -/* RETURN: */ -/* AB8500_CODEC_OK: Always */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Re-Entrant */ -/* REENTRANCY ISSUES: No Issues */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_GetInterface(OUT - t_ab8500_codec_audio_interface - * p_audio_interface) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - - *p_audio_interface = g_ab8500_codec_system_context.audio_interface; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetAnalogLoopback */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Sets Line-In to HeadSet loopback with the required gain. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* out_left_volume: play volume for left channel. */ -/* out_right_volume: play volume for right channel. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetAnalogLoopback(IN t_uint8 - out_left_volume, - IN t_uint8 - out_right_volume) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER2(" (%lx %lx)", out_left_volume, out_right_volume); - - if (out_left_volume > AB8500_CODEC_MAX_VOLUME) { - out_left_volume = AB8500_CODEC_MAX_VOLUME; - } - - if (out_right_volume > AB8500_CODEC_MAX_VOLUME) { - out_right_volume = AB8500_CODEC_MAX_VOLUME; - } - - g_ab8500_codec_system_context.out_left_volume = out_left_volume; - g_ab8500_codec_system_context.out_right_volume = out_right_volume; - - p_ab8500_codec_configuration->cr24_lintohsl_gain = - AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MAX - - AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr25_lintohsr_gain = - AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MAX - - AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN)) / 100; - - ab8500_codec_error = ab8500_codec_UpdateCR24(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR25(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_RemoveAnalogLoopback */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Remove Line-In to HeadSet loopback. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_RemoveAnalogLoopback(void) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER0(); - - p_ab8500_codec_configuration->cr24_lintohsl_gain = - AB8500_CODEC_LINEIN_TO_HS_L_R_LOOP_OPEN; - p_ab8500_codec_configuration->cr25_lintohsr_gain = - AB8500_CODEC_LINEIN_TO_HS_L_R_LOOP_OPEN; - - ab8500_codec_error = ab8500_codec_UpdateCR24(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR25(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_EnableBypassMode */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Enables IF0 to IF1 path or vice versa */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_EnableBypassMode(void) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER0(); - - if (AB8500_CODEC_AUDIO_INTERFACE_1 == - g_ab8500_codec_system_context.audio_interface) { - p_ab8500_codec_configuration->cr29_if1datoif0ad = - AB8500_CODEC_CR29_IF1DATOIF0AD_SENT; - p_ab8500_codec_configuration->cr29_if1cktoif0ck = - AB8500_CODEC_CR29_IF1CKTOIF0CK_SENT; - } else { - p_ab8500_codec_configuration->cr29_if0datoif1ad = - AB8500_CODEC_CR29_IF0DATOIF1AD_SENT; - p_ab8500_codec_configuration->cr29_if0cktoif1ck = - AB8500_CODEC_CR29_IF0CKTOIF1CK_SENT; - } - - ab8500_codec_error = ab8500_codec_UpdateCR29(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_DisableBypassMode */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Disables IF0 to IF1 path or vice versa */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_DisableBypassMode(void) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER0(); - - if (AB8500_CODEC_AUDIO_INTERFACE_1 == - g_ab8500_codec_system_context.audio_interface) { - p_ab8500_codec_configuration->cr29_if1datoif0ad = - AB8500_CODEC_CR29_IF1DATOIF0AD_NOTSENT; - p_ab8500_codec_configuration->cr29_if1cktoif0ck = - AB8500_CODEC_CR29_IF1CKTOIF0CK_NOTSENT; - } else { - p_ab8500_codec_configuration->cr29_if0datoif1ad = - AB8500_CODEC_CR29_IF0DATOIF1AD_NOTSENT; - p_ab8500_codec_configuration->cr29_if0cktoif1ck = - AB8500_CODEC_CR29_IF0CKTOIF1CK_NOTSENT; - } - - ab8500_codec_error = ab8500_codec_UpdateCR29(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SrcPowerControl */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Enables/Disables & UnMute/Mute the desired source */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* t_ab8500_codec_src: select source device for enabling/disabling. */ -/* t_ab8500_codec_src_state: Enable/Disable */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SrcPowerControl(IN t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state) -{ - t_ab8500_codec_error ab8500_codec_error; - - DBGENTER2(" (%lx %lx)", src_device, state); - - if (src_device <= AB8500_CODEC_SRC_D_MICROPHONE_2) { - ab8500_codec_error = - ab8500_codec_SrcPowerControlSwitch1(src_device, state); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else if (src_device <= AB8500_CODEC_SRC_ALL) { - ab8500_codec_error = - ab8500_codec_SrcPowerControlSwitch2(src_device, state); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else { - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR5(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR6(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR7(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR63(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_DestPowerControl */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Enables/Disables & UnMute/Mute the desired destination */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* t_ab8500_codec_dest: select destination device for enabling/disabling. */ -/* t_ab8500_codec_dest_state: Enable/Disable */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_DestPowerControl(IN t_ab8500_codec_dest - dest_device, - t_ab8500_codec_dest_state - state) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER2(" (%lx %lx)", dest_device, state); - - switch (dest_device) { - case AB8500_CODEC_DEST_HEADSET: - - if (AB8500_CODEC_DEST_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_ENABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_DISABLED; - } else { - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - } - break; - - case AB8500_CODEC_DEST_EARPIECE: - - if (AB8500_CODEC_DEST_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_ENABLED; - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_ENABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_DISABLED; - } else { - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_DISABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - } - break; - - case AB8500_CODEC_DEST_HANDSFREE: - - if (AB8500_CODEC_DEST_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_ENABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_ENABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_ENABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_DISABLED; - } else { - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_DISABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_DISABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_ENABLED; - } - break; - - case AB8500_CODEC_DEST_VIBRATOR_L: - - if (AB8500_CODEC_DEST_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_DISABLED; - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_PWM; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE; - } else { - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_DISABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_ENABLED; - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_DA_PATH; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLGPOL; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLGPOL; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLGPOL; - } - break; - - case AB8500_CODEC_DEST_VIBRATOR_R: - - if (AB8500_CODEC_DEST_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_DISABLED; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_PWM; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE; - } else { - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_DISABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_ENABLED; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_DA_PATH; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRGPOL; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRGPOL; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRGPOL; - } - break; - - case AB8500_CODEC_DEST_ALL: - - if (AB8500_CODEC_DEST_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_ENABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_ENABLED; - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_ENABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_ENABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_ENABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_ENABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_ENABLED; - - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_ENABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_ENABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_ENABLED; - - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_DISABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_DISABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_DISABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_DISABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_DISABLED; - - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_PWM; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_PWM; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE; - } else { - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_DISABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_DISABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_DISABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_DISABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_DISABLED; - - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_ENABLED; - - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_DA_PATH; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLGPOL; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLGPOL; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLGPOL; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_DA_PATH; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRGPOL; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRGPOL; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRGPOL; - - } - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_DestPowerControlUpdateCR(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_GetVersion */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* This routine populates the pVersion structure with */ -/* the current version of HCL. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* p_version: this parameter is used to return current HCL version. */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_ERROR: if p_version is NULL. */ -/* AB8500_CODEC_OK: if successful */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Re-Entrant */ -/* REENTRANCY ISSUES: No Issues */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_GetVersion(OUT t_version * p_version) -{ - DBGENTER1(" (%lx)", p_version); - if (p_version != NULL) { - p_version->minor = AB8500_CODEC_HCL_MINOR_ID; - p_version->major = AB8500_CODEC_HCL_MAJOR_ID; - p_version->version = AB8500_CODEC_HCL_VERSION_ID; - DBGEXIT0(AB8500_CODEC_OK); - return (AB8500_CODEC_OK); - } else { - DBGEXIT0(AB8500_CODEC_INVALID_PARAMETER); - return (AB8500_CODEC_INVALID_PARAMETER); - } -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetDbgLevel */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Set the debug level used by the debug module (mask-like value). */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* debug_level: debug level to be set */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_OK: always */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Re-Entrant */ -/* REENTRANCY ISSUES: No Issues */ - -/****************************************************************************/ -/* -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetDbgLevel(IN t_dbg_level dbg_level) -{ - DBGENTER1(" (%d)", dbg_level); - dbg_level = dbg_level; -#ifdef __DEBUG - MY_DEBUG_LEVEL_VAR_NAME = dbg_level; -#endif - DBGEXIT(AB8500_CODEC_OK); - return(AB8500_CODEC_OK); -}*/ - -/****************************************************************************/ -/* NAME: AB8500_CODEC_GetDbgLevel */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Set the debug level used by the debug module (mask-like value). */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* p_dbg_level: this parameter is used to return debug level. */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_ERROR: if p_version is NULL. */ -/* AB8500_CODEC_OK: if successful */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Re-Entrant */ -/* REENTRANCY ISSUES: No Issues */ - -/****************************************************************************/ -/* -PUBLIC t_ab8500_codec_error AB8500_CODEC_GetDbgLevel(OUT t_dbg_level *p_dbg_level) -{ - if (NULL == p_dbg_level) - { - DBGEXIT(AB8500_CODEC_INVALID_PARAMETER); - return(AB8500_CODEC_INVALID_PARAMETER); - } - -#ifdef __DEBUG - * p_dbg_level = MY_DEBUG_LEVEL_VAR_NAME; -#endif - DBGEXIT(AB8500_CODEC_OK); - return(AB8500_CODEC_OK); -} -*/ -/****************************************************************************/ -/* NAME: AB8500_CODEC_ADSlotAllocation */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* AD Data Allocation in slots. */ -/* */ -/* ARGUMENTS */ -/* IN: t_ab8500_codec_slot: The slot to be allocated. */ -/* IN: t_ab8500_codec_cr31_to_cr46_ad_data_allocation: The value */ -/* to be allocated. */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If invalid slot number */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_ADSlotAllocation - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - - DBGENTER2(" (%lx %lx)", ad_slot, value); - - if (ad_slot <= AB8500_CODEC_SLOT7) { - ab8500_codec_error = - ab8500_codec_ADSlotAllocationSwitch1(ad_slot, value); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else if (ad_slot <= AB8500_CODEC_SLOT15) { - ab8500_codec_error = - ab8500_codec_ADSlotAllocationSwitch2(ad_slot, value); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else if (ad_slot <= AB8500_CODEC_SLOT23) { - ab8500_codec_error = - ab8500_codec_ADSlotAllocationSwitch3(ad_slot, value); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else if (ad_slot <= AB8500_CODEC_SLOT31) { - ab8500_codec_error = - ab8500_codec_ADSlotAllocationSwitch4(ad_slot, value); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else { - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_DASlotAllocation */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Allocate the Audio Interface slot for DA paths. */ -/* */ -/* ARGUMENTS */ -/* IN: t_ab8500_codec_da_channel_number: Channel number 1/2/3/4/5/6 */ -/* IN: t_ab8500_codec_cr51_to_cr56_sltoda: Slot number */ -/* */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If invalid channel number */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_DASlotAllocation - (IN t_ab8500_codec_da_channel_number channel_number, - IN t_ab8500_codec_cr51_to_cr56_sltoda slot) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - t_ab8500_codec_cr0_powerup ab8500_codec_cr0_powerup; - - DBGENTER2(" (%lx %lx)", channel_number, slot); - - p_ab8500_codec_configuration->cr51_da12_voice = - AB8500_CODEC_CR51_DA12_VOICE_LOWLATENCYFILTER; - - switch (channel_number) { - case AB8500_CODEC_DA_CHANNEL_NUMBER_1: - p_ab8500_codec_configuration->cr51_sltoda1 = slot; - break; - - case AB8500_CODEC_DA_CHANNEL_NUMBER_2: - p_ab8500_codec_configuration->cr52_sltoda2 = slot; - break; - - case AB8500_CODEC_DA_CHANNEL_NUMBER_3: - p_ab8500_codec_configuration->cr53_sltoda3 = slot; - break; - - case AB8500_CODEC_DA_CHANNEL_NUMBER_4: - p_ab8500_codec_configuration->cr54_sltoda4 = slot; - break; - - case AB8500_CODEC_DA_CHANNEL_NUMBER_5: - p_ab8500_codec_configuration->cr55_sltoda5 = slot; - break; - - case AB8500_CODEC_DA_CHANNEL_NUMBER_6: - p_ab8500_codec_configuration->cr56_sltoda6 = slot; - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_cr0_powerup = p_ab8500_codec_configuration->cr0_powerup; - - p_ab8500_codec_configuration->cr0_powerup = - AB8500_CODEC_CR0_POWERUP_OFF; - - ab8500_codec_error = ab8500_codec_UpdateCR0(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR51(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR52(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR53(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR54(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR55(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR56(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - p_ab8500_codec_configuration->cr0_powerup = ab8500_codec_cr0_powerup; - - ab8500_codec_error = ab8500_codec_UpdateCR0(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_ConfigureBurstFifo */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Configuration for Burst FIFO control */ -/* */ -/* ARGUMENTS */ -/* IN: t_ab8500_codec_burst_fifo_config: structure for configuration of */ -/* burst FIFO */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If invalid parameter */ -/* AB8500_CODEC_UNSUPPORTED_FEATURE: If interface 1 selected */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -t_ab8500_codec_error AB8500_CODEC_ConfigureBurstFifo(IN - t_ab8500_codec_burst_fifo_config - const *const - p_burst_fifo_config) -{ - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER1(" (%lx)", p_burst_fifo_config); - - if (AB8500_CODEC_AUDIO_INTERFACE_0 == - g_ab8500_codec_system_context.audio_interface) { - if (AB8500_CODEC_CR27_EN_MASTGEN_ENABLED == - p_ab8500_codec_configuration->cr27_en_mastgen) { - p_ab8500_codec_configuration->cr104_bfifoint = - p_burst_fifo_config->cr104_bfifoint; - - p_ab8500_codec_configuration->cr105_bfifotx = - p_burst_fifo_config->cr105_bfifotx; - - p_ab8500_codec_configuration->cr106_bfifofsext = - p_burst_fifo_config->cr106_bfifofsext; - p_ab8500_codec_configuration->cr106_bfifomsk = - p_burst_fifo_config->cr106_bfifomsk; - p_ab8500_codec_configuration->cr106_bfifomstr = - p_burst_fifo_config->cr106_bfifomstr; - p_ab8500_codec_configuration->cr106_bfifostrt = - p_burst_fifo_config->cr106_bfifostrt; - - p_ab8500_codec_configuration->cr107_bfifosampnr = - p_burst_fifo_config->cr107_bfifosampnr; - - p_ab8500_codec_configuration->cr108_bfifowakeup = - p_burst_fifo_config->cr108_bfifowakeup; - - ab8500_codec_error = ab8500_codec_UpdateCR104(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR105(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR106(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR107(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR108(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else { - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else { - ab8500_codec_error = AB8500_CODEC_UNSUPPORTED_FEATURE; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_EnableBurstFifo */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Enable the Burst FIFO for Interface 0 */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_UNSUPPORTED_FEATURE: If Interface 1 is selected */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_EnableBurstFifo(void) -{ - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - - if (AB8500_CODEC_AUDIO_INTERFACE_0 == - g_ab8500_codec_system_context.audio_interface) { - p_ab8500_codec_configuration->cr29_if0bfifoen = - AB8500_CODEC_CR29_IF0BFIFOEN_BURST_MODE; - - ab8500_codec_error = ab8500_codec_UpdateCR29(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else { - ab8500_codec_error = AB8500_CODEC_UNSUPPORTED_FEATURE; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_DisableBurstFifo */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Disable the Burst FIFO for Interface 0 */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_UNSUPPORTED_FEATURE: If Interface 1 is selected */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_DisableBurstFifo(void) -{ - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - - if (AB8500_CODEC_AUDIO_INTERFACE_0 == - g_ab8500_codec_system_context.audio_interface) { - p_ab8500_codec_configuration->cr29_if0bfifoen = - AB8500_CODEC_CR29_IF0BFIFOEN_NORMAL_MODE; - - ab8500_codec_error = ab8500_codec_UpdateCR29(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } else { - ab8500_codec_error = AB8500_CODEC_UNSUPPORTED_FEATURE; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch1 - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - switch (ad_slot) { - case AB8500_CODEC_SLOT0: - p_ab8500_codec_configuration->cr31_adotoslot0 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR31(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT1: - p_ab8500_codec_configuration->cr31_adotoslot1 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR31(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT2: - p_ab8500_codec_configuration->cr32_adotoslot2 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR32(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT3: - p_ab8500_codec_configuration->cr32_adotoslot3 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR32(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT4: - p_ab8500_codec_configuration->cr33_adotoslot4 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR33(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT5: - p_ab8500_codec_configuration->cr33_adotoslot5 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR33(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT6: - p_ab8500_codec_configuration->cr34_adotoslot6 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR34(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT7: - p_ab8500_codec_configuration->cr34_adotoslot7 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR34(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch2 - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - switch (ad_slot) { - case AB8500_CODEC_SLOT8: - p_ab8500_codec_configuration->cr35_adotoslot8 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR35(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT9: - p_ab8500_codec_configuration->cr35_adotoslot9 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR35(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT10: - p_ab8500_codec_configuration->cr36_adotoslot10 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR36(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT11: - p_ab8500_codec_configuration->cr36_adotoslot11 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR36(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT12: - p_ab8500_codec_configuration->cr37_adotoslot12 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR37(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT13: - p_ab8500_codec_configuration->cr37_adotoslot13 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR37(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT14: - p_ab8500_codec_configuration->cr38_adotoslot14 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR38(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT15: - p_ab8500_codec_configuration->cr38_adotoslot15 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR38(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch3 - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - switch (ad_slot) { - case AB8500_CODEC_SLOT16: - p_ab8500_codec_configuration->cr39_adotoslot16 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR39(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT17: - p_ab8500_codec_configuration->cr39_adotoslot17 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR39(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT18: - p_ab8500_codec_configuration->cr40_adotoslot18 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR40(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT19: - p_ab8500_codec_configuration->cr40_adotoslot19 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR40(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT20: - p_ab8500_codec_configuration->cr41_adotoslot20 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR41(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT21: - p_ab8500_codec_configuration->cr41_adotoslot21 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR41(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT22: - p_ab8500_codec_configuration->cr42_adotoslot22 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR42(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT23: - p_ab8500_codec_configuration->cr42_adotoslot23 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR42(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch4 - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - switch (ad_slot) { - case AB8500_CODEC_SLOT24: - p_ab8500_codec_configuration->cr43_adotoslot24 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR43(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT25: - p_ab8500_codec_configuration->cr43_adotoslot25 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR43(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT26: - p_ab8500_codec_configuration->cr44_adotoslot26 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR44(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT27: - p_ab8500_codec_configuration->cr44_adotoslot27 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR44(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT28: - p_ab8500_codec_configuration->cr45_adotoslot28 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR45(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT29: - p_ab8500_codec_configuration->cr45_adotoslot29 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR45(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT30: - p_ab8500_codec_configuration->cr46_adotoslot30 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR46(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - case AB8500_CODEC_SLOT31: - p_ab8500_codec_configuration->cr46_adotoslot31 = value; - - ab8500_codec_error = ab8500_codec_UpdateCR46(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SrcPowerControlSwitch1(IN - t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - switch (src_device) { - case AB8500_CODEC_SRC_LINEIN: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_ENABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_DISABLED; - - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_LINR; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_ENABLED; - } else { - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_MIC2; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - } - break; - - case AB8500_CODEC_SRC_MICROPHONE_1A: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - - p_ab8500_codec_configuration->cr7_mic1sel = - AB8500_CODEC_CR7_MIC1SEL_MIC1A; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - } else { - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_DISABLED; - } - break; - - case AB8500_CODEC_SRC_MICROPHONE_1B: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - - p_ab8500_codec_configuration->cr7_mic1sel = - AB8500_CODEC_CR7_MIC1SEL_MIC1B; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - } else { - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_DISABLED; - } - break; - - case AB8500_CODEC_SRC_MICROPHONE_2: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_MIC2; - } else { - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_LINR; - } - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_1: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_ENABLED; - - p_ab8500_codec_configuration->cr63_ad1sel = - AB8500_CODEC_CR63_AD1SEL_DMIC1_SELECTED; - } else { - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - - p_ab8500_codec_configuration->cr63_ad1sel = - AB8500_CODEC_CR63_AD1SEL_LINLADL_SELECTED; - } - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_2: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_ENABLED; - - p_ab8500_codec_configuration->cr63_ad2sel = - AB8500_CODEC_CR63_AD2SEL_DMIC2_SELECTED; - } else { - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - - p_ab8500_codec_configuration->cr63_ad2sel = - AB8500_CODEC_CR63_AD2SEL_LINRADR_SELECTED; - } - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SrcPowerControlSwitch2(IN - t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - switch (src_device) { - case AB8500_CODEC_SRC_D_MICROPHONE_3: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_ENABLED; - - p_ab8500_codec_configuration->cr63_ad3sel = - AB8500_CODEC_CR63_AD3SEL_DMIC3_SELECTED; - } else { - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - - p_ab8500_codec_configuration->cr63_ad3sel = - AB8500_CODEC_CR63_AD3SEL_ADMO_SELECTED; - } - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_4: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_ENABLED; - } else { - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - } - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_5: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_ENABLED; - - p_ab8500_codec_configuration->cr63_ad5sel = - AB8500_CODEC_CR63_AD5SEL_DMIC5_SELECTED; - } else { - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - - p_ab8500_codec_configuration->cr63_ad5sel = - AB8500_CODEC_CR63_AD5SEL_AMADR_SELECTED; - } - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_6: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_ENABLED; - - p_ab8500_codec_configuration->cr63_ad6sel = - AB8500_CODEC_CR63_AD6SEL_DMIC6_SELECTED; - } else { - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - - p_ab8500_codec_configuration->cr63_ad6sel = - AB8500_CODEC_CR63_AD6SEL_ADMO_SELECTED; - } - break; - - case AB8500_CODEC_SRC_ALL: - - if (AB8500_CODEC_SRC_STATE_ENABLE == state) { - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_ENABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_ENABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_ENABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_ENABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_ENABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_ENABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_ENABLED; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_DISABLED; - } else { - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_DISABLED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - } - break; - case AB8500_CODEC_SRC_FM_RX: - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SetModeAndDirectionUpdateCR(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - t_ab8500_codec_cr0_powerup ab8500_codec_cr0_powerup; - - ab8500_codec_cr0_powerup = p_ab8500_codec_configuration->cr0_powerup; - - p_ab8500_codec_configuration->cr0_powerup = - AB8500_CODEC_CR0_POWERUP_OFF; - - ab8500_codec_error = ab8500_codec_UpdateCR0(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR2(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR3(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR26(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR28(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR30(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR63(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - p_ab8500_codec_configuration->cr0_powerup = ab8500_codec_cr0_powerup; - - ab8500_codec_error = ab8500_codec_UpdateCR0(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SetSrcVolumeUpdateCR(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - - ab8500_codec_error = ab8500_codec_UpdateCR20(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR21(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR22(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR23(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR65(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR66(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR67(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR68(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR69(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR70(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SetDestVolumeUpdateCR(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - - ab8500_codec_error = ab8500_codec_UpdateCR16(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR17(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR18(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR19(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR22(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR23(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR71(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR72(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR73(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR74(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR75(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR76(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR79(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR80(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR101(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR102(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR103(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirectionIN(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - switch (g_ab8500_codec_system_context.ab8500_codec_src) { - case AB8500_CODEC_SRC_LINEIN: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_ENABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_ENABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_LINR; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_ENABLED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - break; - - case AB8500_CODEC_SRC_MICROPHONE_1A: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_mic1sel = - AB8500_CODEC_CR7_MIC1SEL_MIC1A; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - break; - - case AB8500_CODEC_SRC_MICROPHONE_1B: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_mic1sel = - AB8500_CODEC_CR7_MIC1SEL_MIC1B; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - break; - - case AB8500_CODEC_SRC_MICROPHONE_2: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_ENABLED; - - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_MIC2; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_DISABLED; - - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_1: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_ENABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - - p_ab8500_codec_configuration->cr63_ad1sel = - AB8500_CODEC_CR63_AD1SEL_DMIC1_SELECTED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_2: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - - p_ab8500_codec_configuration->cr63_ad2sel = - AB8500_CODEC_CR63_AD2SEL_DMIC2_SELECTED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_3: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_ENABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - - p_ab8500_codec_configuration->cr63_ad3sel = - AB8500_CODEC_CR63_AD3SEL_DMIC3_SELECTED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_4: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_ENABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_5: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_ENABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - - p_ab8500_codec_configuration->cr63_ad5sel = - AB8500_CODEC_CR63_AD5SEL_DMIC5_SELECTED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - break; - - case AB8500_CODEC_SRC_D_MICROPHONE_6: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_ENABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - - p_ab8500_codec_configuration->cr63_ad6sel = - AB8500_CODEC_CR63_AD6SEL_DMIC6_SELECTED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - - break; - - case AB8500_CODEC_SRC_ALL: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_ENABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_ENABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_ENABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_ENABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_ENABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_ENABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_ENABLED; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_ENABLED; - - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_DISABLED; - - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirectionOUT(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration *p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - - switch (g_ab8500_codec_system_context.ab8500_codec_dest) { - case AB8500_CODEC_DEST_HEADSET: - p_ab8500_codec_configuration->cr7_endrvhsl = - AB8500_CODEC_CR7_ENDRVHSL_ENABLED; - p_ab8500_codec_configuration->cr7_endrvhsr = - AB8500_CODEC_CR7_ENDRVHSR_ENABLED; - - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_ENABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_ENABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - - p_ab8500_codec_configuration->cr9_endachsl = - AB8500_CODEC_CR9_ENDACHSL_ENABLED; - p_ab8500_codec_configuration->cr9_endachsr = - AB8500_CODEC_CR9_ENDACHSR_ENABLED; - - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_DISABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_ENABLED; - - p_ab8500_codec_configuration->cr12_encphs = - AB8500_CODEC_CR12_ENCPHS_ENABLED; - - break; - - case AB8500_CODEC_DEST_EARPIECE: - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_ENABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_ENABLED; - - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_ENABLED; - - break; - - case AB8500_CODEC_DEST_HANDSFREE: - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_ENABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_ENABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_ENABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_ENABLED; - - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_DISABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_ENABLED; - - break; - - case AB8500_CODEC_DEST_VIBRATOR_L: - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_ENABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_ENABLED; - - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_DISABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_ENABLED; - - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_PWM; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE; - - break; - - case AB8500_CODEC_DEST_VIBRATOR_R: - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_ENABLED; - - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_ENABLED; - - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_ENABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_DISABLED; - - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_PWM; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE; - - break; - - case AB8500_CODEC_DEST_ALL: - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_ENABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_ENABLED; - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_ENABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_ENABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_ENABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_ENABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_ENABLED; - - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_ENABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_ENABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_ENABLED; - - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_DISABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_DISABLED; - p_ab8500_codec_configuration->cr10_mutehfl = - AB8500_CODEC_CR10_MUTEHFL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehfr = - AB8500_CODEC_CR10_MUTEHFR_DISABLED; - p_ab8500_codec_configuration->cr10_mutevibl = - AB8500_CODEC_CR10_MUTEVIBL_DISABLED; - p_ab8500_codec_configuration->cr10_mutevibr = - AB8500_CODEC_CR10_MUTEVIBR_DISABLED; - - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_PWM; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_PWM; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE; - - break; - - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_DestPowerControlUpdateCR(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - - ab8500_codec_error = ab8500_codec_UpdateCR8(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR9(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR10(); - if (ab8500_codec_error != AB8500_CODEC_OK) { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - - ab8500_codec_error = ab8500_codec_UpdateCR15(); - - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} diff --git a/sound/ab8500_codec_v1_0.c b/sound/ab8500_codec_v1_0.c deleted file mode 100644 index 5df1ca3eae4..00000000000 --- a/sound/ab8500_codec_v1_0.c +++ /dev/null @@ -1,6405 +0,0 @@ -/*****************************************************************************/ - -/** -* © ST-Ericsson, 2009 - All rights reserved -* Reproduction and Communication of this document is strictly prohibited -* unless specifically authorized in writing by ST-Ericsson -* -* \brief This module provides some support routines for the AB8500 CODEC -* \author ST-Ericsson -*/ -/*****************************************************************************/ - -/*---------------------------------------------------------------------------- - * Includes - *---------------------------------------------------------------------------*/ - -#ifdef CONFIG_U8500_AB8500_CUT10 -#include <mach/ab8500_codec_v1_0.h> -#include <mach/ab8500_codec_p_v1_0.h> -#else /* */ -#include <mach/ab8500_codec.h> -#include <mach/ab8500_codec_p.h> -#endif /* */ - -/*--------------------------------------------------------------------------* - * debug stuff * - *--------------------------------------------------------------------------*/ -#ifdef __DEBUG -#define MY_DEBUG_LEVEL_VAR_NAME myDebugLevel_AB8500_CODEC -#define MY_DEBUG_ID myDebugID_AB8500_CODEC -PRIVATE t_dbg_level MY_DEBUG_LEVEL_VAR_NAME = DEBUG_LEVEL0; -PRIVATE t_dbg_id MY_DEBUG_ID = AB8500_CODEC_HCL_DBG_ID; - -#endif /* */ - -/*--------------------------------------------------------------------------* - * Global data for interrupt mode management * - *--------------------------------------------------------------------------*/ -PRIVATE t_ab8500_codec_system_context g_ab8500_codec_system_context; - -/*--------------------------------------------------------------------------* - * Default Values * - *--------------------------------------------------------------------------*/ -#define AB8500_CODEC_DEFAULT_SLAVE_ADDRESS_OF_CODEC 0xD -#define AB8500_CODEC_DEFAULT_DIRECTION AB8500_CODEC_DIRECTION_OUT - -#define AB8500_CODEC_DEFAULT_MODE_IN AB8500_CODEC_MODE_VOICE -#define AB8500_CODEC_DEFAULT_MODE_OUT AB8500_CODEC_MODE_VOICE - -#define AB8500_CODEC_DEFAULT_INPUT_SRC AB8500_CODEC_SRC_MICROPHONE_1A -#define AB8500_CODEC_DEFAULT_OUTPUT_DEST AB8500_CODEC_DEST_HEADSET - -#define AB8500_CODEC_DEFAULT_VOLUME_LEFT_IN 75 -#define AB8500_CODEC_DEFAULT_VOLUME_RIGHT_IN 75 -#define AB8500_CODEC_DEFAULT_VOLUME_LEFT_OUT 75 -#define AB8500_CODEC_DEFAULT_VOLUME_RIGHT_OUT 75 - -/*--------------------------------------------------------------------- - * PRIVATE APIs - *--------------------------------------------------------------------*/ -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch1(IN - t_ab8500_codec_slot - ad_slot, - IN - t_ab8500_codec_cr31_to_cr46_ad_data_allocation - value); -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch2(IN - t_ab8500_codec_slot - ad_slot, - IN - t_ab8500_codec_cr31_to_cr46_ad_data_allocation - value); -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch3(IN - t_ab8500_codec_slot - ad_slot, - IN - t_ab8500_codec_cr31_to_cr46_ad_data_allocation - value); -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch4(IN - t_ab8500_codec_slot - ad_slot, - IN - t_ab8500_codec_cr31_to_cr46_ad_data_allocation - value); -PRIVATE t_ab8500_codec_error ab8500_codec_SrcPowerControlSwitch1(IN - t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state); -PRIVATE t_ab8500_codec_error ab8500_codec_SrcPowerControlSwitch2(IN - t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state); -PRIVATE t_ab8500_codec_error ab8500_codec_SetModeAndDirectionUpdateCR(void); -PRIVATE t_ab8500_codec_error ab8500_codec_SetSrcVolumeUpdateCR(void); -PRIVATE t_ab8500_codec_error ab8500_codec_SetDestVolumeUpdateCR(void); -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirectionIN(void); -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirectionOUT(void); -PRIVATE t_ab8500_codec_error ab8500_codec_DestPowerControlUpdateCR(void); - -/********************************************************************************************/ -/* Name: ab8500_codec_SingleWrite */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_SingleWrite(t_uint8 - register_offset, - t_uint8 data) -{ - return (t_ab8500_codec_error) (AB8500_CODEC_Write - (register_offset, 0x01, &data)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_SingleRead */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_SingleRead(t_uint8 - register_offset, - t_uint8 data) -{ - t_uint8 dummy_data = 0xAA; - return (t_ab8500_codec_error) (AB8500_CODEC_Read - (register_offset, 0x01, &dummy_data, - &data)); -} - -#endif /* */ - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR0 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR0(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr0_powerup, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR0_POWERUP ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr0_enaana, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR0_ENAANA ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR0, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR1 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR1(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr1_swreset, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR1_SWRESET ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR1, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR2 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR2(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr2_enad1, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR2_ENAD1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr2_enad2, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR2_ENAD2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr2_enad3, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR2_ENAD3 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr2_enad4, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR2_ENAD4 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr2_enad5, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR2_ENAD5 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr2_enad6, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR2_ENAD6 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR2, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR3 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR3(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr3_enda1, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR3_ENDA1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr3_enda2, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR3_ENDA2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr3_enda3, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR3_ENDA3 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr3_enda4, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR3_ENDA4 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr3_enda5, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR3_ENDA5 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr3_enda6, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR3_ENDA6 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR3, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR4 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR4(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr4_lowpowhs, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR4_LOWPOWHS ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr4_lowpowdachs, - AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR4_LOWPOWDACHS ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr4_lowpowear, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR4_LOWPOWEAR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr4_ear_sel_cm, AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR4_EAR_SEL_CM ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr4_hs_hp_en, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR4_HS_HP_EN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR4, value)); -} - -#endif /* */ - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR5 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR5(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr5_enmic1, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR5_ENMIC1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr5_enmic2, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR5_ENMIC2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr5_enlinl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR5_ENLINL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr5_enlinr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR5_ENLINR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr5_mutmic1, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR5_MUTMIC1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr5_mutmic2, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR5_MUTMIC2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr5_mutlinl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR5_MUTELINL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr5_mutlinr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR5_MUTELINR ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR5, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR6 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR6(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr6_endmic1, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR6_ENDMIC1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr6_endmic2, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR6_ENDMIC2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr6_endmic3, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR6_ENDMIC3 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr6_endmic4, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR6_ENDMIC4 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr6_endmic5, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR6_ENDMIC5 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr6_endmic6, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR6_ENDMIC6 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR6, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR7 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR7(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr7_mic1sel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR7_MIC1SEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr7_linrsel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR7_LINRSEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr7_endrvhsl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR7_ENDRVHSL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr7_endrvhsr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR7_ENDRVHSR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr7_enadcmic, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR7_ENADCMIC ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr7_enadclinl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR7_ENADCLINL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr7_enadclinr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR7_ENADCLINR ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR7, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR8 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR8(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr8_cp_dis_pldwn, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR8_CP_DIS_PLDWN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr8_enear, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR8_ENEAR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr8_enhsl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR8_ENHSL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr8_enhsr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR8_ENHSR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr8_enhfl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR8_ENHFL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr8_enhfr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR8_ENHFR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr8_envibl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR8_ENVIBL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr8_envibr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR8_ENVIBR ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR8, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR9 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR9(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr9_endacear, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR9_ENADACEAR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr9_endachsl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR9_ENADACHSL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr9_endachsr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR9_ENADACHSR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr9_endachfl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR9_ENADACHFL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr9_endachfr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR9_ENADACHFR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr9_endacvibl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR9_ENADACVIBL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr9_endacvibr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR9_ENADACVIBR ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR9, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR10 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR10(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr10_muteear, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR10_MUTEEAR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr10_mutehsl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR10_MUTEHSL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr10_mutehsr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR10_MUTEHSR ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR10, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR11 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR11(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr11_earshortpwd, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR11_ENSHORTPWD ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr11_earshortdis, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR11_EARSHORTDIS ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr11_hsshortdis, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR11_HSSHORTDIS ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr11_hspullden, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR11_HSPULLDEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr11_hsoscen, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR11_HSOSCEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr11_hsfaden, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR11_HSFADEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr11_hszcddis, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR11_HSZCDDIS ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR11, value)); -} - -#endif /* */ - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR12 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR12(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr12_encphs, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR12_ENCPHS ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr12_hsautoen, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR12_HSAUTOEN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR12, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR13 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR13(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr13_envdet_hthresh, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR13_ENVDET_HTHRESH ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr13_envdet_lthresh, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR13_ENVDET_LTHRESH ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR13, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR14 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR14(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr14_smpslven, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR14_SMPSLVEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr14_envdetsmpsen, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR14_ENVDETSMPSEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr14_cplven, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR14_CPLVEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr14_envdetcpen, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR14_ENVDETCPEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr14_envet_time, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR14_ENVDET_TIME ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR14, value)); -} - -#endif /* */ - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR15 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR15(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr15_pwmtovibl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR15_PWMTOVIBL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr15_pwmtovibr, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR15_PWMTOVIBR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr15_pwmlctrl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR15_PWMLCTRL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr15_pwmrctrl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR15_PWMRCTRL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr15_pwmnlctrl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR15_PWMNLCTRL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr15_pwmplctrl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR15_PWMPLCTRL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr15_pwmnrctrl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR15_PWMNRCTRL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr15_pwmprctrl, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR15_PWMPRCTRL ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR15, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR16 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR16(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr16_pwmnlpol, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR16_PWMNLPOL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr16_pwmnldutycycle, - AB8500_CODEC_MASK_SEVEN_BITS, - AB8500_CODEC_CR16_PWMNLDUTYCYCLE ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR16, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR17 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR17(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr17_pwmplpol, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR17_PWMPLPOL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr17_pwmpldutycycle, - AB8500_CODEC_MASK_SEVEN_BITS, - AB8500_CODEC_CR17_PWMLPDUTYCYCLE ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR17, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR18 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR18(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr18_pwmnrpol, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR18_PWMNRPOL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr18_pwmnrdutycycle, - AB8500_CODEC_MASK_SEVEN_BITS, - AB8500_CODEC_CR18_PWMNRDUTYCYCLE ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR18, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR19 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR19(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr19_pwmprpol, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR19_PWMPRPOL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr19_pwmprdutycycle, - AB8500_CODEC_MASK_SEVEN_BITS, - AB8500_CODEC_CR19_PWMRPDUTYCYCLE ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR19, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR20 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR20(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr20_en_se_mic1, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR20_EN_SE_MIC1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr20_low_pow_mic1, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR20_LOW_POW_MIC1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr20_mic1_gain, - AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR20_MIC1_GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR20, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR21 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR21(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr21_en_se_mic2, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR21_EN_SE_MIC2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr21_low_pow_mic2, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR21_LOW_POW_MIC2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr21_mic2_gain, - AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR21_MIC2_GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR21, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR22 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR22(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr22_hsl_gain, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR22_HSL_GAIN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr22_hsr_gain, AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR22_HSR_GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR22, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR23 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR23(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr23_linl_gain, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR23_LINL_GAIN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr23_linr_gain, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR23_LINR_GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR23, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR24 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR24(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr24_lintohsl_gain, - AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR24_LINTOHSL_GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR24, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR25 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR25(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr25_lintohsr_gain, - AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR25_LINTOHSR_GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR25, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR26 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR26(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr26_ad1nh, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR26_AD1NH ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr26_ad2nh, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR26_AD2NH ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr26_ad3nh, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR26_AD3NH ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr26_ad4nh, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR26_AD4NH ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr26_ad1_voice, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR26_AD1_VOICE ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr26_ad2_voice, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR26_AD2_VOICE ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr26_ad3_voice, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR26_AD3_VOICE ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr26_ad4_voice, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR26_AD4_VOICE ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR26, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR27 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR27(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr27_en_mastgen, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR27_EN_MASTGEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr27_if1_bitclk_osr, - AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR27_IF1_BITCLK_OSR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr27_enfs_bitclk1, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR27_ENFS_BITCLK1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr27_if0_bitclk_osr, - AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR27_IF0_BITCLK_OSR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr27_enfs_bitclk0, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR27_ENFS_BITCLK0 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR27, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR28 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR28(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr28_fsync0p, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR28_FSYNC0P ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr28_bitclk0p, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR28_BITCLK0P ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr28_if0del, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR28_IF0DEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr28_if0format, AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR28_IF0FORMAT ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr28_if0wl, AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR28_IF0WL ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR28, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR29 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR29(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr29_if0datoif1ad, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR29_IF0DATOIF1AD ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr29_if0cktoif1ck, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR29_IF0CKTOIF1CK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr29_if1master, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR29_IF1MASTER ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr29_if1datoif0ad, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR29_IF1DATOIF0AD ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr29_if1cktoif0ck, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR29_IF1CKTOIF0CK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr29_if0master, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR29_IF0MASTER ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr29_if0bfifoen, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR29_IF0BFIFOEN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR29, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR30 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR30(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr30_fsync1p, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR30_FSYNC1P ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr30_bitclk1p, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR30_BITCLK1P ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr30_if1del, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR30_IF1DEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr30_if1format, AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR30_IF1FORMAT ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr30_if1wl, AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR30_IF1WL ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR30, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR31 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR31(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr31_adotoslot1, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR31_ADOTOSLOT1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr31_adotoslot0, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR31_ADOTOSLOT0 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR31, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR32 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR32(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr32_adotoslot3, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR32_ADOTOSLOT3 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr32_adotoslot2, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR32_ADOTOSLOT2 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR32, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR33 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR33(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr33_adotoslot5, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR33_ADOTOSLOT5 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr33_adotoslot4, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR33_ADOTOSLOT4 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR33, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR34 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR34(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr34_adotoslot7, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR34_ADOTOSLOT7 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr34_adotoslot6, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR34_ADOTOSLOT6 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR34, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR35 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR35(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr35_adotoslot9, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR35_ADOTOSLOT9 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr35_adotoslot8, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR35_ADOTOSLOT8 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR35, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR36 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR36(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr36_adotoslot11, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR36_ADOTOSLOT11 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr36_adotoslot10, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR36_ADOTOSLOT10 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR36, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR37 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR37(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr37_adotoslot13, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR37_ADOTOSLOT13 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr37_adotoslot12, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR37_ADOTOSLOT12 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR37, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR38 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR38(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr38_adotoslot15, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR38_ADOTOSLOT15 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr38_adotoslot14, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR38_ADOTOSLOT14 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR38, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR39 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR39(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr39_adotoslot17, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR39_ADOTOSLOT17 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr39_adotoslot16, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR39_ADOTOSLOT16 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR39, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR40 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR40(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr40_adotoslot19, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR40_ADOTOSLOT19 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr40_adotoslot18, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR40_ADOTOSLOT18 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR40, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR41 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR41(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr41_adotoslot21, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR41_ADOTOSLOT21 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr41_adotoslot20, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR41_ADOTOSLOT20 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR41, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR42 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR42(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr42_adotoslot23, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR42_ADOTOSLOT23 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr42_adotoslot22, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR42_ADOTOSLOT22 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR42, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR43 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR43(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr43_adotoslot25, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR43_ADOTOSLOT25 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr43_adotoslot24, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR43_ADOTOSLOT24 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR43, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR44 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR44(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr44_adotoslot27, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR44_ADOTOSLOT27 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr44_adotoslot26, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR44_ADOTOSLOT26 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR44, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR45 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR45(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr45_adotoslot29, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR45_ADOTOSLOT29 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr45_adotoslot28, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR45_ADOTOSLOT28 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR45, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR46 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR46(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr46_adotoslot31, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR46_ADOTOSLOT31 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr46_adotoslot30, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR46_ADOTOSLOT30 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR46, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR47 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR47(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr47_hiz_sl7, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR47_HIZ_SL7 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr47_hiz_sl6, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR47_HIZ_SL6 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr47_hiz_sl5, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR47_HIZ_SL5 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr47_hiz_sl4, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR47_HIZ_SL4 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr47_hiz_sl3, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR47_HIZ_SL3 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr47_hiz_sl2, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR47_HIZ_SL2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr47_hiz_sl1, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR47_HIZ_SL1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr47_hiz_sl0, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR47_HIZ_SL0 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR47, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR48 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR48(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr48_hiz_sl15, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR48_HIZ_SL15 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr48_hiz_sl14, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR48_HIZ_SL14 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr48_hiz_sl13, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR48_HIZ_SL13 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr48_hiz_sl12, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR48_HIZ_SL12 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr48_hiz_sl11, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR48_HIZ_SL11 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr48_hiz_sl10, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR48_HIZ_SL10 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr48_hiz_sl9, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR48_HIZ_SL9 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr48_hiz_sl8, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR48_HIZ_SL8 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR48, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR49 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR49(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr49_hiz_sl23, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR49_HIZ_SL23 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr49_hiz_sl22, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR49_HIZ_SL22 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr49_hiz_sl21, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR49_HIZ_SL21 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr49_hiz_sl20, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR49_HIZ_SL20 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr49_hiz_sl19, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR49_HIZ_SL19 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr49_hiz_sl18, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR49_HIZ_SL18 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr49_hiz_sl17, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR49_HIZ_SL17 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr49_hiz_sl16, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR49_HIZ_SL16 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR49, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR50 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR50(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr50_hiz_sl31, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR50_HIZ_SL31 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr50_hiz_sl30, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR50_HIZ_SL30 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr50_hiz_sl29, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR50_HIZ_SL29 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr50_hiz_sl28, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR50_HIZ_SL28 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr50_hiz_sl27, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR50_HIZ_SL27 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr50_hiz_sl26, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR50_HIZ_SL26 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr50_hiz_sl25, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR50_HIZ_SL25 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr50_hiz_sl24, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR50_HIZ_SL24 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR50, value)); -} - -#endif /* */ - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR51 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR51(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr51_da12_voice, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR51_DA12_VOICE ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr51_swapda12_34, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR51_SWAP_DA12_34 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr51_sldai7toslado1, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR51_SLDAI7TOSLADO1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr51_sltoda1, AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR51_SLTODA1 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR51, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR52 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR52(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr52_sldai8toslado2, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR52_SLDAI8TOSLADO2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr52_sltoda2, AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR52_SLTODA2 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR52, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR53 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR53(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr53_da34_voice, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR53_DA34_VOICE ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr53_sldai7toslado3, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR53_SLDAI7TOSLADO3 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr53_sltoda3, AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR53_SLTODA3 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR53, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR54 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR54(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr54_sldai8toslado4, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR54_SLDAI8TOSLADO4 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr54_sltoda4, AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR54_SLTODA4 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR54, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR55 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR55(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr55_da56_voice, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR55_DA56_VOICE ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr55_sldai7toslado5, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR55_SLDAI7TOSLADO5 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr55_sltoda5, AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR55_SLTODA5 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR55, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR56 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR56(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr56_sldai8toslado6, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR56_SLDAI8TOSLADO6 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr56_sltoda6, AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR56_SLTODA6 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR56, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR57 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR57(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr57_sldai8toslado7, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR57_SLDAI8TOSLADO7 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr57_sltoda7, AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR57_SLTODA7 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR57, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR58 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR58(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr58_sldai7toslado8, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR58_SLDAI7TOSLADO8 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr58_sltoda8, AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR58_SLTODA8 ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR58, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR59 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR59(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr59_parlhf, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR59_PARLHF ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr59_parlvib, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR59_PARLVIB ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr59_classdvib1_swapen, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR59_CLASSDVIB1SWAPEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr59_classdvib2_swapen, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR59_CLASSDVIB2SWAPEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr59_classdhfl_swapen, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR59_CLASSDHFLSWAPEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr59_classdhfr_swapen, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR59_CLASSDHFRSWAPEN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR59, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR60 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR60(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr60_classd_firbyp, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR60_CLASSD_FIR_BYP ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr60_classd_highvolen, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR60_CLASSD_HIGHVOL_EN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR60, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR61 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR61(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - - /* 5 bits are Read Only */ - AB8500_CODEC_WRITE_BITS - (value, - (t_uint8) p_ab8500_codec_configuration->cr61_classddith_hpgain, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR61_CLASSD_DITH_HPGAIN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr61_classddith_wgain, - AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR61_CLASSD_DITH_WGAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR61, value)); -} - -#endif /* */ - -/* CR62 is Read Only */ -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR63 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR63(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr63_datohslen, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR63_DATOHSLEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr63_datohsren, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR63_DATOHSREN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr63_ad1sel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR63_AD1SEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr63_ad2sel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR63_AD2SEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr63_ad3sel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR63_AD3SEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr63_ad5sel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR63_AD5SEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr63_ad6sel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR63_AD6SEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr63_ancsel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR63_ANCSEL ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR63, value)); -} - -#if 0 -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR64 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR64(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr64_datohfren, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR64_DATOHFREN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr64_datohflen, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR64_DATOHFLEN ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr64_hfrsel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR64_HFRSEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr64_hflsel, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR64_HFLSEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr64_stfir1sel, AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR64_STFIR1SEL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr64_stfir2sel, AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR64_STFIR2SEL ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR64, value)); -} - -#endif /* */ - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR65 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR65(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr65_fadedis_ad1, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR65_FADEDIS_AD1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr65_ad1gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR65_AD1GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR65, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR66 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR66(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr66_fadedis_ad2, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR66_FADEDIS_AD2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr66_ad2gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR66_AD2GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR66, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR67 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR67(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr67_fadedis_ad3, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR67_FADEDIS_AD3 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr67_ad3gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR67_AD3GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR67, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR68 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR68(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr68_fadedis_ad4, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR68_FADEDIS_AD4 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr68_ad4gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR68_AD4GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR68, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR69 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR69(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr69_fadedis_ad5, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR69_FADEDIS_AD5 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr69_ad5gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR69_AD5GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR69, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR70 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR70(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr70_fadedis_ad6, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR70_FADEDIS_AD6 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr70_ad6gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR70_AD6GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR70, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR71 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR71(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr71_fadedis_da1, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR71_FADEDIS_DA1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr71_da1gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR71_DA1GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR71, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR72 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR72(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr72_fadedis_da2, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR72_FADEDIS_DA2 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr72_da2gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR72_DA2GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR72, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR73 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR73(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr73_fadedis_da3, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR73_FADEDIS_DA3 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr73_da3gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR73_DA3GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR73, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR74 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR74(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr74_fadedis_da4, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR74_FADEDIS_DA4 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr74_da4gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR74_DA4GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR74, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR75 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR75(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr75_fadedis_da5, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR75_FADEDIS_DA5 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr75_da5gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR75_DA5GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR75, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR76 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR76(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr76_fadedis_da6, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR76_FADEDIS_DA6 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr76_da6gain, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR76_DA6GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR76, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR77 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR77(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr77_fadedis_ad1l, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR77_FADEDIS_AD1L ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr77_ad1lbgain_to_hfl, - AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR77_AD1LBGAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR77, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR78 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR78(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr78_fadedis_ad2l, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR78_FADEDIS_AD2L ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr78_ad2lbgain_to_hfr, - AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR78_AD2LBGAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR78, value)); -} - -#endif /* */ - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR79 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR79(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr79_hssinc1, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR79_HSSINC1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr79_fadedis_hsl, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR79_FADEDIS_HSL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr79_hsldgain, AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR79_HSLDGAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR79, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR80 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR80(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr80_fade_speed, - AB8500_CODEC_MASK_TWO_BITS, - AB8500_CODEC_CR80_FADE_SPEED ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr80_fadedis_hsr, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR80_FADEDIS_HSR ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr80_hsrdgain, AB8500_CODEC_MASK_FOUR_BITS, - AB8500_CODEC_CR80_HSRDGAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR80, value)); -} - -#if 0 - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR81 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR81(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr81_stfir1gain, - AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR81_STFIR1GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR81, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR82 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR82(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr82_stfir2gain, - AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR82_STFIR2GAIN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR82, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR83 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR83(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr83_enanc, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR83_ENANC ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr83_anciirinit, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR83_ANCIIRINIT ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr83_ancfirupdate, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR83_ANCFIRUPDATE ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR83, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR84 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR84(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr84_ancinshift, - AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR84_ANCINSHIFT ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR84, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR85 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR85(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr85_ancfiroutshift, - AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR85_ANCFIROUTSHIFT ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR85, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR86 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR86(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr86_ancshiftout, - AB8500_CODEC_MASK_FIVE_BITS, - AB8500_CODEC_CR86_ANCSHIFTOUT ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR86, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR87 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR87(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr87_ancfircoeff_msb, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR87_ANCFIRCOEFF_MSB ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR87, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR88 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR88(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr88_ancfircoeff_lsb, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR88_ANCFIRCOEFF_LSB ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR88, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR89 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR89(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr89_anciircoeff_msb, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR89_ANCIIRCOEFF_MSB ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR89, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR90 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR90(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr90_anciircoeff_lsb, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR90_ANCIIRCOEFF_LSB ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR90, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR91 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR91(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr91_ancwarpdel_msb, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR91_ANCWARPDEL_MSB ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR91, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR92 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR92(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr92_ancwarpdel_lsb, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR92_ANCWARPDEL_LSB ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR92, value)); -} - -/* CR93 is Read Only */ -/* CR94 is Read Only */ -/* CR95 is Read Only */ -/* CR96 is Read Only */ -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR97 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR97(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr97_stfir_set, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR97_STFIR_SET ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr97_stfir_addr, - AB8500_CODEC_MASK_SEVEN_BITS, - AB8500_CODEC_CR97_STFIR_ADDR ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR97, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR98 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR98(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr98_stfir_coeff_msb, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR98_STFIR_COEFF_MSB ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR98, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR99 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR99(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr99_stfir_coeff_lsb, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR99_STFIR_COEFF_LSB ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR99, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR100 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR100(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr100_enstfirs, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR100_ENSTFIRS ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr100_stfirstoif1, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR100_STFIRSTOIF1 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr100_stfir_busy, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR100_STFIR_BUSY ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR100, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR101 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR101(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr101_hsoffst_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR101_HSOFFSTMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr101_fifofull_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR101_FIFOFULLMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr101_fifoempty_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR101_FIFOEMPTYMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr101_dasat_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR101_DASATMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr101_adsat_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR101_ADSATMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr101_addsp_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR101_ADDSPMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr101_dadsp_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR101_DADSPMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr101_firsid_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR101_FIRSIDMASK ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR101, value)); -} - -/* CR102 is Read Only */ - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR103 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR103(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr103_vssready_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR103_VSSREADYMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr103_shorthsl_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR103_SHORTHSLMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr103_shorthsr_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR103_SHORTHSRMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr103_shortear_mask, - AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR103_SHORTEARMASK ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR103, value)); -} - -#endif /* */ - -/* CR104 is Read Only */ - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR105 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR105(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr105_bfifomsk, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR105_BFIFOMASK ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr105_bfifoint, AB8500_CODEC_MASK_SIX_BITS, - AB8500_CODEC_CR105_BFIFOINT ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR105, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR106 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR106(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr106_bfifotx, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR106_BFIFOTX ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR106, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR107 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR107(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr107_bfifoexsl, - AB8500_CODEC_MASK_THREE_BITS, - AB8500_CODEC_CR107_BFIFOEXSL ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr107_prebitclk0, - AB8500_CODEC_MASK_THREE_BITS, - AB8500_CODEC_CR107_PREBITCLK0 ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr107_bfifomast, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR107_BFIFOMAST ); - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr107_bfiforun, AB8500_CODEC_MASK_ONE_BIT, - AB8500_CODEC_CR107_BFIFORUN ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR107, value)); -} - - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR108 */ -/********************************************************************************************/ - PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR108(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr108_bfifoframsw, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR108_BFIFOFRAMESW ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR108, value)); -} - -/********************************************************************************************/ -/* Name: ab8500_codec_UpdateCR109 */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_UpdateCR109(void) -{ - t_uint8 value = 0x00; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - AB8500_CODEC_WRITE_BITS (value, - (t_uint8) p_ab8500_codec_configuration-> - cr109_bfifowakeup, - AB8500_CODEC_MASK_EIGHT_BITS, - AB8500_CODEC_CR109_BFIFOWAKEUP ); - return (ab8500_codec_SingleWrite(AB8500_CODEC_CR109, value)); -} - -/* CR110 is Read Only */ - -/* CR111 is Read Only */ - -/********************************************************************************************/ -/* Name: ab8500_codec_Reset() */ - -/********************************************************************************************/ -PRIVATE t_ab8500_codec_error ab8500_codec_Reset(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - p_ab8500_codec_configuration->cr1_swreset = - AB8500_CODEC_CR1_SWRESET_ENABLED; - ab8500_codec_error = ab8500_codec_UpdateCR1(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirection(IN - t_ab8500_codec_direction - ab8500_codec_direction) - /*only IN or OUT must be passed (not INOUT) */ -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - if (AB8500_CODEC_DIRECTION_IN == ab8500_codec_direction) - { - ab8500_codec_error = ab8500_codec_ProgramDirectionIN(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - if (AB8500_CODEC_DIRECTION_OUT == ab8500_codec_direction) - { - ab8500_codec_error = ab8500_codec_ProgramDirectionOUT(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SetDirection(IN - t_ab8500_codec_direction - ab8500_codec_direction) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - switch (ab8500_codec_direction) - { - case AB8500_CODEC_DIRECTION_IN: - ab8500_codec_error = - ab8500_codec_ProgramDirection(AB8500_CODEC_DIRECTION_IN); - break; - case AB8500_CODEC_DIRECTION_OUT: - ab8500_codec_error = - ab8500_codec_ProgramDirection(AB8500_CODEC_DIRECTION_OUT); - break; - case AB8500_CODEC_DIRECTION_INOUT: - ab8500_codec_error = - ab8500_codec_ProgramDirection(AB8500_CODEC_DIRECTION_IN); - if (AB8500_CODEC_OK == ab8500_codec_error) - { - ab8500_codec_error = - ab8500_codec_ProgramDirection - (AB8500_CODEC_DIRECTION_OUT); - } - break; - } - if (ab8500_codec_error != AB8500_CODEC_OK) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR5(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR6(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR7(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR8(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR9(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR10(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR12(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR15(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR63(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_Init */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Initialize the global variables & stores the slave address of codec. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* slave_address_of_ab8500_codec: Audio codec slave address */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* Returns AB8500_CODEC_OK */ -/* COMMENTS: */ -/* 1) Saves the supplied slave_address_of_codec in global variable */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_Init(IN t_uint8 - slave_address_of_ab8500_codec) -{ - DBGENTER1(" (%lx)", slave_address_of_ab8500_codec); - g_ab8500_codec_system_context.slave_address_of_ab8500_codec = - slave_address_of_ab8500_codec; - DBGEXIT(AB8500_CODEC_OK); - return (AB8500_CODEC_OK); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_Reset */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Reset the global variables and clear audiocodec settings to default. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_Reset(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER(); - g_ab8500_codec_system_context.ab8500_codec_direction = - AB8500_CODEC_DEFAULT_DIRECTION; - g_ab8500_codec_system_context.ab8500_codec_mode_in = - AB8500_CODEC_DEFAULT_MODE_IN; - g_ab8500_codec_system_context.ab8500_codec_mode_out = - AB8500_CODEC_DEFAULT_MODE_OUT; - g_ab8500_codec_system_context.ab8500_codec_src = - AB8500_CODEC_DEFAULT_INPUT_SRC; - g_ab8500_codec_system_context.ab8500_codec_dest = - AB8500_CODEC_DEFAULT_OUTPUT_DEST; - g_ab8500_codec_system_context.in_left_volume = - AB8500_CODEC_DEFAULT_VOLUME_LEFT_IN; - g_ab8500_codec_system_context.in_right_volume = - AB8500_CODEC_DEFAULT_VOLUME_RIGHT_IN; - g_ab8500_codec_system_context.out_left_volume = - AB8500_CODEC_DEFAULT_VOLUME_LEFT_OUT; - g_ab8500_codec_system_context.out_right_volume = - AB8500_CODEC_DEFAULT_VOLUME_RIGHT_OUT; - ab8500_codec_error = ab8500_codec_Reset(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetModeAndDirection */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Configures the whole audio codec to work in audio mode */ -/* (using I2S protocol). */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* direction: select the direction (IN, OUT or INOUT) */ -/* in_mode: codec mode for recording. If direction is OUT only, */ -/* this parameter is ignored. */ -/* out_mode: codec mode for playing. If direction is IN only, */ -/* this parameter is ignored. */ -/* p_tdm_config: TDM configuration required to be configured by user */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_UNSUPPORTED_FEATURE: The API may not allow setting */ -/* 2 different modes, in which case it should return this value. */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetModeAndDirection - (IN t_ab8500_codec_direction ab8500_codec_direction, - IN t_ab8500_codec_mode ab8500_codec_mode_in, - IN t_ab8500_codec_mode ab8500_codec_mode_out, - IN t_ab8500_codec_tdm_config const *const p_tdm_config ) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - DBGENTER3(" (%lx %lx %lx)", ab8500_codec_direction, - ab8500_codec_mode_in, ab8500_codec_mode_out); - if (AB8500_CODEC_AUDIO_INTERFACE_1 == - g_ab8500_codec_system_context.audio_interface) - { - if (AB8500_CODEC_DIRECTION_OUT == ab8500_codec_direction - || AB8500_CODEC_DIRECTION_INOUT == - ab8500_codec_direction ) - { - p_ab8500_codec_configuration->cr3_enda1 = - AB8500_CODEC_CR3_ENDA1_ENABLED; - p_ab8500_codec_configuration->cr3_enda2 = - AB8500_CODEC_CR3_ENDA2_ENABLED; - p_ab8500_codec_configuration->cr3_enda3 = - AB8500_CODEC_CR3_ENDA3_ENABLED; - p_ab8500_codec_configuration->cr3_enda4 = - AB8500_CODEC_CR3_ENDA4_ENABLED; - p_ab8500_codec_configuration->cr3_enda5 = - AB8500_CODEC_CR3_ENDA5_ENABLED; - p_ab8500_codec_configuration->cr3_enda6 = - AB8500_CODEC_CR3_ENDA6_ENABLED; - p_ab8500_codec_configuration->cr27_if1_bitclk_osr = - p_tdm_config->cr27_if1_bitclk_osr; - if (AB8500_CODEC_MODE_HIFI == ab8500_codec_mode_out) - { - p_ab8500_codec_configuration->cr30_fsync1p = - AB8500_CODEC_CR30_FSYNC1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_bitclk1p = - AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_if1del = - AB8500_CODEC_CR30_IF1DEL_DELAYED; - p_ab8500_codec_configuration->cr30_if1format = - AB8500_CODEC_CR30_IF1FORMAT_I2S_LEFTALIGNED; - p_ab8500_codec_configuration->cr30_if1wl = - p_tdm_config->cr30_if1wl; - } - - else - { - p_ab8500_codec_configuration->cr30_fsync1p = - AB8500_CODEC_CR30_FSYNC1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_bitclk1p = - AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_if1del = - AB8500_CODEC_CR30_IF1DEL_DELAYED; - p_ab8500_codec_configuration->cr30_if1format = - AB8500_CODEC_CR30_IF1FORMAT_TDM; - p_ab8500_codec_configuration->cr30_if1wl = - p_tdm_config->cr30_if1wl; - } - } - if (AB8500_CODEC_DIRECTION_IN == ab8500_codec_direction - || AB8500_CODEC_DIRECTION_INOUT == - ab8500_codec_direction ) - { - p_ab8500_codec_configuration->cr2_enad1 = - AB8500_CODEC_CR2_ENAD1_ENABLED; - p_ab8500_codec_configuration->cr2_enad2 = - AB8500_CODEC_CR2_ENAD2_ENABLED; - p_ab8500_codec_configuration->cr2_enad3 = - AB8500_CODEC_CR2_ENAD3_ENABLED; - p_ab8500_codec_configuration->cr2_enad4 = - AB8500_CODEC_CR2_ENAD4_ENABLED; - p_ab8500_codec_configuration->cr2_enad5 = - AB8500_CODEC_CR2_ENAD5_ENABLED; - p_ab8500_codec_configuration->cr2_enad6 = - AB8500_CODEC_CR2_ENAD6_ENABLED; - p_ab8500_codec_configuration->cr27_if1_bitclk_osr = - p_tdm_config->cr27_if1_bitclk_osr; - if (AB8500_CODEC_MODE_HIFI == ab8500_codec_mode_in) - { - p_ab8500_codec_configuration->cr30_fsync1p = - AB8500_CODEC_CR30_FSYNC1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_bitclk1p = - AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_if1del = - AB8500_CODEC_CR30_IF1DEL_DELAYED; - p_ab8500_codec_configuration->cr30_if1format = - AB8500_CODEC_CR30_IF1FORMAT_I2S_LEFTALIGNED; - p_ab8500_codec_configuration->cr30_if1wl = - p_tdm_config->cr30_if1wl; - } - - else - { - p_ab8500_codec_configuration->cr30_fsync1p = - AB8500_CODEC_CR30_FSYNC1P_RISING_EDGE; - p_ab8500_codec_configuration->cr30_bitclk1p = - AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE; - p_ab8500_codec_configuration->cr30_if1del = - AB8500_CODEC_CR30_IF1DEL_NOT_DELAYED; - p_ab8500_codec_configuration->cr30_if1format = - AB8500_CODEC_CR30_IF1FORMAT_TDM; - p_ab8500_codec_configuration->cr30_if1wl = - p_tdm_config->cr30_if1wl; - } - } - } - - else - { - if (AB8500_CODEC_DIRECTION_OUT == ab8500_codec_direction - || AB8500_CODEC_DIRECTION_INOUT == - ab8500_codec_direction ) - { - p_ab8500_codec_configuration->cr3_enda1 = - AB8500_CODEC_CR3_ENDA1_ENABLED; - p_ab8500_codec_configuration->cr3_enda2 = - AB8500_CODEC_CR3_ENDA2_ENABLED; - p_ab8500_codec_configuration->cr3_enda3 = - AB8500_CODEC_CR3_ENDA3_ENABLED; - p_ab8500_codec_configuration->cr3_enda4 = - AB8500_CODEC_CR3_ENDA4_ENABLED; - p_ab8500_codec_configuration->cr3_enda5 = - AB8500_CODEC_CR3_ENDA5_ENABLED; - p_ab8500_codec_configuration->cr3_enda6 = - AB8500_CODEC_CR3_ENDA6_ENABLED; - p_ab8500_codec_configuration->cr27_if0_bitclk_osr = - p_tdm_config->cr27_if0_bitclk_osr; - p_ab8500_codec_configuration->cr63_datohslen = - AB8500_CODEC_CR63_DATOHSLEN_ENABLED; - p_ab8500_codec_configuration->cr63_datohsren = - AB8500_CODEC_CR63_DATOHSREN_ENABLED; - if (AB8500_CODEC_MODE_HIFI == ab8500_codec_mode_out) - { - p_ab8500_codec_configuration->cr28_fsync0p = - AB8500_CODEC_CR28_FSYNC0P_FALLING_EDGE; - p_ab8500_codec_configuration->cr28_bitclk0p = p_tdm_config->cr28_bitclk0p; /*AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE; */ - p_ab8500_codec_configuration->cr28_if0del = p_tdm_config->cr28_if0del; /*AB8500_CODEC_CR28_IF0DEL_DELAYED; */ - p_ab8500_codec_configuration->cr28_if0format = - AB8500_CODEC_CR28_IF0FORMAT_I2S_LEFTALIGNED; - p_ab8500_codec_configuration->cr28_if0wl = - p_tdm_config->cr28_if0wl; - } - - else - { - p_ab8500_codec_configuration->cr28_fsync0p = - AB8500_CODEC_CR28_FSYNC0P_FALLING_EDGE; - p_ab8500_codec_configuration->cr28_bitclk0p = p_tdm_config->cr28_bitclk0p; /*AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE; */ - p_ab8500_codec_configuration->cr28_if0del = p_tdm_config->cr28_if0del; /*AB8500_CODEC_CR28_IF0DEL_DELAYED; */ - p_ab8500_codec_configuration->cr28_if0format = - AB8500_CODEC_CR28_IF0FORMAT_TDM; - p_ab8500_codec_configuration->cr28_if0wl = - p_tdm_config->cr28_if0wl; - } - } - if (AB8500_CODEC_DIRECTION_IN == ab8500_codec_direction - || AB8500_CODEC_DIRECTION_INOUT == - ab8500_codec_direction ) - { - p_ab8500_codec_configuration->cr2_enad1 = - AB8500_CODEC_CR2_ENAD1_ENABLED; - p_ab8500_codec_configuration->cr2_enad2 = - AB8500_CODEC_CR2_ENAD2_ENABLED; - p_ab8500_codec_configuration->cr2_enad3 = - AB8500_CODEC_CR2_ENAD3_ENABLED; - p_ab8500_codec_configuration->cr2_enad4 = - AB8500_CODEC_CR2_ENAD4_ENABLED; - p_ab8500_codec_configuration->cr2_enad5 = - AB8500_CODEC_CR2_ENAD5_ENABLED; - p_ab8500_codec_configuration->cr2_enad6 = - AB8500_CODEC_CR2_ENAD6_ENABLED; - p_ab8500_codec_configuration->cr26_ad1_voice = - AB8500_CODEC_CR26_AD1_VOICE_LOWLATENCYFILTER; - p_ab8500_codec_configuration->cr26_ad2_voice = - AB8500_CODEC_CR26_AD2_VOICE_LOWLATENCYFILTER; - p_ab8500_codec_configuration->cr26_ad3_voice = - AB8500_CODEC_CR26_AD3_VOICE_LOWLATENCYFILTER; - p_ab8500_codec_configuration->cr26_ad4_voice = - AB8500_CODEC_CR26_AD4_VOICE_LOWLATENCYFILTER; - p_ab8500_codec_configuration->cr27_if0_bitclk_osr = - p_tdm_config->cr27_if0_bitclk_osr; - if (AB8500_CODEC_MODE_HIFI == ab8500_codec_mode_in) - { - p_ab8500_codec_configuration->cr28_fsync0p = - AB8500_CODEC_CR28_FSYNC0P_RISING_EDGE; - p_ab8500_codec_configuration->cr28_bitclk0p = p_tdm_config->cr28_bitclk0p; /*AB8500_CODEC_CR28_BITCLK0P_RISING_EDGE; */ - p_ab8500_codec_configuration->cr28_if0del = p_tdm_config->cr28_if0del; /*AB8500_CODEC_CR28_IF0DEL_NOT_DELAYED; */ - p_ab8500_codec_configuration->cr28_if0format = - AB8500_CODEC_CR28_IF0FORMAT_I2S_LEFTALIGNED; - p_ab8500_codec_configuration->cr28_if0wl = - p_tdm_config->cr28_if0wl; - } - - else - { - p_ab8500_codec_configuration->cr28_fsync0p = - AB8500_CODEC_CR28_FSYNC0P_RISING_EDGE; - p_ab8500_codec_configuration->cr28_bitclk0p = p_tdm_config->cr28_bitclk0p; /*AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE; */ - p_ab8500_codec_configuration->cr28_if0del = p_tdm_config->cr28_if0del; /*AB8500_CODEC_CR28_IF0DEL_NOT_DELAYED; */ - p_ab8500_codec_configuration->cr28_if0format = - AB8500_CODEC_CR28_IF0FORMAT_TDM; - p_ab8500_codec_configuration->cr28_if0wl = - p_tdm_config->cr28_if0wl; - } - } - } - ab8500_codec_error = ab8500_codec_SetModeAndDirectionUpdateCR(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - g_ab8500_codec_system_context.ab8500_codec_direction = - ab8500_codec_direction; - g_ab8500_codec_system_context.ab8500_codec_mode_in = - ab8500_codec_mode_in; - g_ab8500_codec_system_context.ab8500_codec_mode_out = - ab8500_codec_mode_out; - ab8500_codec_error = - ab8500_codec_SetDirection(ab8500_codec_direction); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetSrcVolume */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Sets the record volumes. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* t_ab8500_codec_src: select source device for recording. */ -/* in_left_volume: record volume for left channel. */ -/* in_right_volume: record volume for right channel. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetSrcVolume - (IN t_ab8500_codec_src src_device, IN t_uint8 in_left_volume, - IN t_uint8 in_right_volume ) { - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - DBGENTER3(" (%lx %lx %lx)", src_device, in_left_volume, - in_right_volume); - if (in_left_volume > AB8500_CODEC_MAX_VOLUME) - { - in_left_volume = AB8500_CODEC_MAX_VOLUME; - } - if (in_right_volume > AB8500_CODEC_MAX_VOLUME) - { - in_right_volume = AB8500_CODEC_MAX_VOLUME; - } - g_ab8500_codec_system_context.in_left_volume = in_left_volume; - g_ab8500_codec_system_context.in_right_volume = in_right_volume; - p_ab8500_codec_configuration->cr65_ad1gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr66_ad2gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr67_ad3gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr68_ad4gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr69_ad5gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr70_ad6gain = - AB8500_CODEC_AD_D_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_AD_D_VOLUME_MAX - - AB8500_CODEC_AD_D_VOLUME_MIN)) / 100; - - /* Set mininimum volume if volume is zero */ - switch (src_device) - { - case AB8500_CODEC_SRC_LINEIN: - p_ab8500_codec_configuration->cr23_linl_gain = - AB8500_CODEC_LINEIN_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_LINEIN_VOLUME_MAX - - AB8500_CODEC_LINEIN_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr23_linr_gain = - AB8500_CODEC_LINEIN_VOLUME_MIN + - (in_right_volume * - (AB8500_CODEC_LINEIN_VOLUME_MAX - - AB8500_CODEC_LINEIN_VOLUME_MIN)) / 100; - break; - case AB8500_CODEC_SRC_MICROPHONE_1A: - case AB8500_CODEC_SRC_MICROPHONE_1B: - p_ab8500_codec_configuration->cr20_mic1_gain = - AB8500_CODEC_MIC_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_MIC_VOLUME_MAX - - AB8500_CODEC_MIC_VOLUME_MIN)) / 100; - break; - case AB8500_CODEC_SRC_MICROPHONE_2: - p_ab8500_codec_configuration->cr21_mic2_gain = - AB8500_CODEC_MIC_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_MIC_VOLUME_MAX - - AB8500_CODEC_MIC_VOLUME_MIN)) / 100; - break; - case AB8500_CODEC_SRC_D_MICROPHONE_1: - break; - case AB8500_CODEC_SRC_D_MICROPHONE_2: - break; - case AB8500_CODEC_SRC_D_MICROPHONE_3: - break; - case AB8500_CODEC_SRC_D_MICROPHONE_4: - break; - case AB8500_CODEC_SRC_D_MICROPHONE_5: - break; - case AB8500_CODEC_SRC_D_MICROPHONE_6: - break; - case AB8500_CODEC_SRC_ALL: - p_ab8500_codec_configuration->cr23_linl_gain = - AB8500_CODEC_LINEIN_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_LINEIN_VOLUME_MAX - - AB8500_CODEC_LINEIN_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr23_linr_gain = - AB8500_CODEC_LINEIN_VOLUME_MIN + - (in_right_volume * - (AB8500_CODEC_LINEIN_VOLUME_MAX - - AB8500_CODEC_LINEIN_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr20_mic1_gain = - AB8500_CODEC_MIC_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_MIC_VOLUME_MAX - - AB8500_CODEC_MIC_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr21_mic2_gain = - AB8500_CODEC_MIC_VOLUME_MIN + - (in_left_volume * - (AB8500_CODEC_MIC_VOLUME_MAX - - AB8500_CODEC_MIC_VOLUME_MIN)) / 100; - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_SetSrcVolumeUpdateCR(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetDestVolume */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Sets the play volumes. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* out_left_volume: play volume for left channel. */ -/* out_right_volume: play volume for right channel. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetDestVolume - (IN t_ab8500_codec_dest dest_device, IN t_uint8 out_left_volume, - IN t_uint8 out_right_volume ) { - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - DBGENTER3(" (%lx %lx %lx)", dest_device, out_left_volume, - out_right_volume); - if (out_left_volume > AB8500_CODEC_MAX_VOLUME) - { - out_left_volume = AB8500_CODEC_MAX_VOLUME; - } - if (out_right_volume > AB8500_CODEC_MAX_VOLUME) - { - out_right_volume = AB8500_CODEC_MAX_VOLUME; - } - g_ab8500_codec_system_context.out_left_volume = out_left_volume; - g_ab8500_codec_system_context.out_right_volume = out_right_volume; - p_ab8500_codec_configuration->cr71_da1gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr72_da2gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr73_da3gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr74_da4gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr75_da5gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr76_da6gain = - AB8500_CODEC_DA_D_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_DA_D_VOLUME_MAX - - AB8500_CODEC_DA_D_VOLUME_MIN)) / 100; - - /* Set mininimum volume if volume is zero */ - switch (dest_device) - { - case AB8500_CODEC_DEST_HEADSET: - p_ab8500_codec_configuration->cr22_hsl_gain = - AB8500_CODEC_HEADSET_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_HEADSET_VOLUME_MAX - - AB8500_CODEC_HEADSET_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr22_hsr_gain = - AB8500_CODEC_HEADSET_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_HEADSET_VOLUME_MAX - - AB8500_CODEC_HEADSET_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr79_hsldgain = - AB8500_CODEC_HEADSET_D_VOLUME_0DB; - p_ab8500_codec_configuration->cr80_hsrdgain = - AB8500_CODEC_HEADSET_D_VOLUME_0DB; - break; - case AB8500_CODEC_DEST_EARPIECE: - p_ab8500_codec_configuration->cr79_hsldgain = - AB8500_CODEC_HEADSET_D_VOLUME_0DB; - break; - case AB8500_CODEC_DEST_HANDSFREE: - break; - case AB8500_CODEC_DEST_VIBRATOR_L: - p_ab8500_codec_configuration->cr16_pwmnldutycycle = - AB8500_CODEC_VIBRATOR_VOLUME_MIN; - p_ab8500_codec_configuration->cr17_pwmpldutycycle = - AB8500_CODEC_VIBRATOR_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_VIBRATOR_VOLUME_MAX - - AB8500_CODEC_VIBRATOR_VOLUME_MIN)) / 100; - break; - case AB8500_CODEC_DEST_VIBRATOR_R: - p_ab8500_codec_configuration->cr18_pwmnrdutycycle = - AB8500_CODEC_VIBRATOR_VOLUME_MIN; - p_ab8500_codec_configuration->cr19_pwmprdutycycle = - AB8500_CODEC_VIBRATOR_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_VIBRATOR_VOLUME_MAX - - AB8500_CODEC_VIBRATOR_VOLUME_MIN)) / 100; - break; - case AB8500_CODEC_DEST_ALL: - p_ab8500_codec_configuration->cr22_hsl_gain = - AB8500_CODEC_HEADSET_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_HEADSET_VOLUME_MAX - - AB8500_CODEC_HEADSET_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr22_hsr_gain = - AB8500_CODEC_HEADSET_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_HEADSET_VOLUME_MAX - - AB8500_CODEC_HEADSET_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr79_hsldgain = - AB8500_CODEC_HEADSET_D_VOLUME_0DB; - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_SetDestVolumeUpdateCR(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetMasterMode */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Set the Audio Codec in Master mode. */ -/* */ -/* ARGUMENTS */ -/* IN: t_codec_master_mode: Enable/disable master mode */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: Call this API after calling AB8500_CODEC_SetModeAndDirection() API*/ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetMasterMode(IN - t_ab8500_codec_master_mode - mode) -{ - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - if (AB8500_CODEC_AUDIO_INTERFACE_1 == - g_ab8500_codec_system_context.audio_interface) - { - p_ab8500_codec_configuration->cr27_en_mastgen = - AB8500_CODEC_CR27_EN_MASTGEN_ENABLED; - p_ab8500_codec_configuration->cr27_enfs_bitclk1 = - AB8500_CODEC_CR27_ENFS_BITCLK1_ENABLED; - if (AB8500_CODEC_MASTER_MODE_ENABLE == mode) - { - p_ab8500_codec_configuration->cr29_if1master = - AB8500_CODEC_CR29_IF1MASTER_FS1CK1_OUTPUT; - } - - else - { - p_ab8500_codec_configuration->cr29_if1master = - AB8500_CODEC_CR29_IF1MASTER_FS1CK1_INPUT; - } - } - - else - { - p_ab8500_codec_configuration->cr27_en_mastgen = - AB8500_CODEC_CR27_EN_MASTGEN_ENABLED; - p_ab8500_codec_configuration->cr27_enfs_bitclk0 = - AB8500_CODEC_CR27_ENFS_BITCLK0_ENABLED; - if (AB8500_CODEC_MASTER_MODE_ENABLE == mode) - { - p_ab8500_codec_configuration->cr29_if0master = - AB8500_CODEC_CR29_IF0MASTER_FS0CK0_OUTPUT; - } - - else - { - p_ab8500_codec_configuration->cr29_if0master = - AB8500_CODEC_CR29_IF0MASTER_FS0CK0_INPUT; - } - } - ab8500_codec_error = ab8500_codec_UpdateCR27(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR29(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SelectInput */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Select input source for recording. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* input_src: select input source for recording when several sources */ -/* are supported in codec. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If input_src provided is invalid */ -/* by the codec hardware in use. */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SelectInput(IN t_ab8500_codec_src - ab8500_codec_src) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER1(" (%lx)", ab8500_codec_src); - g_ab8500_codec_system_context.ab8500_codec_src = ab8500_codec_src; - ab8500_codec_error = - ab8500_codec_SetDirection(AB8500_CODEC_DIRECTION_IN); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SelectOutput */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Select output desination for playing. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* output_dest: select output destination for playing when several are */ -/* supported by codec hardware. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If output_src provided is invalid */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SelectOutput(IN t_ab8500_codec_dest - ab8500_codec_dest) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - g_ab8500_codec_system_context.ab8500_codec_dest = ab8500_codec_dest; - DBGENTER1(" (%lx)", ab8500_codec_dest); - ab8500_codec_error = - ab8500_codec_SetDirection(AB8500_CODEC_DIRECTION_OUT); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_PowerDown */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Shuts the audio codec down completely. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* OUT: */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_PowerDown(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - g_ab8500_codec_system_context.ab8500_codec_configuration.cr0_powerup = - AB8500_CODEC_CR0_POWERUP_OFF; - ab8500_codec_error = ab8500_codec_UpdateCR0(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_PowerUp */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Switch on the audio codec. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_PowerUp(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER(); - g_ab8500_codec_system_context.ab8500_codec_configuration.cr0_powerup = - AB8500_CODEC_CR0_POWERUP_ON; - g_ab8500_codec_system_context.ab8500_codec_configuration.cr0_enaana = - AB8500_CODEC_CR0_ENAANA_ON; - ab8500_codec_error = ab8500_codec_UpdateCR0(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SelectInterface */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Select the Audio Interface 0 or 1. */ -/* */ -/* ARGUMENTS */ -/* IN: t_ab8500_codec_audio_interface: The selected interface */ -/* */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_OK: Always. */ -/* REMARK: Call this API before using a function of the low level drivers */ -/* to select the interface that you want to configure */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SelectInterface(IN - t_ab8500_codec_audio_interface - audio_interface) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - g_ab8500_codec_system_context.audio_interface = audio_interface; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_GetInterface */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Get the Audio Interface 0 or 1. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: p_audio_interface: Store the selected interface */ -/* RETURN: */ -/* AB8500_CODEC_OK: Always */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Re-Entrant */ -/* REENTRANCY ISSUES: No Issues */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_GetInterface(OUT - t_ab8500_codec_audio_interface - * p_audio_interface) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - *p_audio_interface = g_ab8500_codec_system_context.audio_interface; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetAnalogLoopback */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Sets Line-In to HeadSet loopback with the required gain. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* out_left_volume: play volume for left channel. */ -/* out_right_volume: play volume for right channel. */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetAnalogLoopback(IN t_uint8 - out_left_volume, - IN t_uint8 - out_right_volume) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER2(" (%lx %lx)", out_left_volume, out_right_volume); - if (out_left_volume > AB8500_CODEC_MAX_VOLUME) - { - out_left_volume = AB8500_CODEC_MAX_VOLUME; - } - if (out_right_volume > AB8500_CODEC_MAX_VOLUME) - { - out_right_volume = AB8500_CODEC_MAX_VOLUME; - } - g_ab8500_codec_system_context.out_left_volume = out_left_volume; - g_ab8500_codec_system_context.out_right_volume = out_right_volume; - p_ab8500_codec_configuration->cr24_lintohsl_gain = - AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN + - (out_left_volume * - (AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MAX - - AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN)) / 100; - p_ab8500_codec_configuration->cr25_lintohsr_gain = - AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN + - (out_right_volume * - (AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MAX - - AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN)) / 100; - ab8500_codec_error = ab8500_codec_UpdateCR24(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR25(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_RemoveAnalogLoopback */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Remove Line-In to HeadSet loopback. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_RemoveAnalogLoopback(void) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER0(); - p_ab8500_codec_configuration->cr24_lintohsl_gain = - AB8500_CODEC_LINEIN_TO_HS_L_R_LOOP_OPEN; - p_ab8500_codec_configuration->cr25_lintohsr_gain = - AB8500_CODEC_LINEIN_TO_HS_L_R_LOOP_OPEN; - ab8500_codec_error = ab8500_codec_UpdateCR24(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR25(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_EnableBypassMode */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Enables IF0 to IF1 path or vice versa */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_EnableBypassMode(void) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER0(); - if (AB8500_CODEC_AUDIO_INTERFACE_1 == - g_ab8500_codec_system_context.audio_interface) - { - p_ab8500_codec_configuration->cr29_if1datoif0ad = - AB8500_CODEC_CR29_IF1DATOIF0AD_SENT; - p_ab8500_codec_configuration->cr29_if1cktoif0ck = - AB8500_CODEC_CR29_IF1CKTOIF0CK_SENT; - } - - else - { - p_ab8500_codec_configuration->cr29_if0datoif1ad = - AB8500_CODEC_CR29_IF0DATOIF1AD_SENT; - p_ab8500_codec_configuration->cr29_if0cktoif1ck = - AB8500_CODEC_CR29_IF0CKTOIF1CK_SENT; - } - ab8500_codec_error = ab8500_codec_UpdateCR29(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_DisableBypassMode */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Disables IF0 to IF1 path or vice versa */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_DisableBypassMode(void) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER0(); - if (AB8500_CODEC_AUDIO_INTERFACE_1 == - g_ab8500_codec_system_context.audio_interface) - { - p_ab8500_codec_configuration->cr29_if1datoif0ad = - AB8500_CODEC_CR29_IF1DATOIF0AD_NOTSENT; - p_ab8500_codec_configuration->cr29_if1cktoif0ck = - AB8500_CODEC_CR29_IF1CKTOIF0CK_NOTSENT; - } - - else - { - p_ab8500_codec_configuration->cr29_if0datoif1ad = - AB8500_CODEC_CR29_IF0DATOIF1AD_NOTSENT; - p_ab8500_codec_configuration->cr29_if0cktoif1ck = - AB8500_CODEC_CR29_IF0CKTOIF1CK_NOTSENT; - } - ab8500_codec_error = ab8500_codec_UpdateCR29(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SrcPowerControl */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Enables/Disables & UnMute/Mute the desired source */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* t_ab8500_codec_src: select source device for enabling/disabling. */ -/* t_ab8500_codec_src_state: Enable/Disable */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_SrcPowerControl(IN - t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state) -{ - t_ab8500_codec_error ab8500_codec_error; - DBGENTER2(" (%lx %lx)", src_device, state); - if (src_device <= AB8500_CODEC_SRC_D_MICROPHONE_2) - { - ab8500_codec_error = - ab8500_codec_SrcPowerControlSwitch1(src_device, state); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else if (src_device <= AB8500_CODEC_SRC_ALL) - { - ab8500_codec_error = - ab8500_codec_SrcPowerControlSwitch2(src_device, state); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else - { - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR5(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR6(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR7(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR63(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_DestPowerControl */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Enables/Disables & UnMute/Mute the desired destination */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* t_ab8500_codec_dest: select destination device for enabling/disabling. */ -/* t_ab8500_codec_dest_state: Enable/Disable */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_TRANSACTION_FAILED: If transaction fails. */ -/* AB8500_CODEC_OK: if successful. */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_DestPowerControl(IN - t_ab8500_codec_dest - dest_device, - t_ab8500_codec_dest_state - state) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context.ab8500_codec_configuration; - DBGENTER2(" (%lx %lx)", dest_device, state); - switch (dest_device) - { - case AB8500_CODEC_DEST_HEADSET: - if (AB8500_CODEC_DEST_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_ENABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_DISABLED; - p_ab8500_codec_configuration->cr9_endachsl = - AB8500_CODEC_CR9_ENDACHSL_ENABLED; - p_ab8500_codec_configuration->cr9_endachsr = - AB8500_CODEC_CR9_ENDACHSR_ENABLED; - } - - else - { - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - p_ab8500_codec_configuration->cr9_endachsl = - AB8500_CODEC_CR9_ENDACHSL_DISABLED; - p_ab8500_codec_configuration->cr9_endachsr = - AB8500_CODEC_CR9_ENDACHSR_DISABLED; - } - break; - case AB8500_CODEC_DEST_EARPIECE: - if (AB8500_CODEC_DEST_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_ENABLED; - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_ENABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_DISABLED; - } - - else - { - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_DISABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - } - break; - case AB8500_CODEC_DEST_HANDSFREE: - if (AB8500_CODEC_DEST_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_ENABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_ENABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_ENABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_ENABLED; - } - - else - { - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_DISABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_DISABLED; - } - break; - case AB8500_CODEC_DEST_VIBRATOR_L: - if (AB8500_CODEC_DEST_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_ENABLED; - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_PWM; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE; - } - - else - { - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_DISABLED; - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_DA_PATH; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLGPOL; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLGPOL; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLGPOL; - } - break; - case AB8500_CODEC_DEST_VIBRATOR_R: - if (AB8500_CODEC_DEST_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_ENABLED; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_PWM; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE; - } - - else - { - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_DISABLED; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_DA_PATH; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRGPOL; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRGPOL; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRGPOL; - } - break; - case AB8500_CODEC_DEST_ALL: - if (AB8500_CODEC_DEST_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_ENABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_ENABLED; - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_ENABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_ENABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_ENABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_ENABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_ENABLED; - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_ENABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_ENABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_DISABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_DISABLED; - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_PWM; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_PWM; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE; - } - - else - { - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_DISABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_DISABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_DISABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_DISABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_DA_PATH; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLGPOL; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLGPOL; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLGPOL; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_DA_PATH; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRGPOL; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRGPOL; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRGPOL; - } - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_DestPowerControlUpdateCR(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_GetVersion */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* This routine populates the pVersion structure with */ -/* the current version of HCL. */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* p_version: this parameter is used to return current HCL version. */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_ERROR: if p_version is NULL. */ -/* AB8500_CODEC_OK: if successful */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Re-Entrant */ -/* REENTRANCY ISSUES: No Issues */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_GetVersion(OUT t_version * p_version) -{ - DBGENTER1(" (%lx)", p_version); - if (p_version != NULL) - { - p_version->minor = AB8500_CODEC_HCL_MINOR_ID; - p_version->major = AB8500_CODEC_HCL_MAJOR_ID; - p_version->version = AB8500_CODEC_HCL_VERSION_ID; - DBGEXIT0(AB8500_CODEC_OK); - return (AB8500_CODEC_OK); - } - - else - { - DBGEXIT0(AB8500_CODEC_INVALID_PARAMETER); - return (AB8500_CODEC_INVALID_PARAMETER); - } -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_SetDbgLevel */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Set the debug level used by the debug module (mask-like value). */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* debug_level: debug level to be set */ -/* OUT: */ -/* None */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_OK: always */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Re-Entrant */ -/* REENTRANCY ISSUES: No Issues */ - -/****************************************************************************/ -/* -PUBLIC t_ab8500_codec_error AB8500_CODEC_SetDbgLevel(IN t_dbg_level dbg_level) -{ - DBGENTER1(" (%d)", dbg_level); - dbg_level = dbg_level; -#ifdef __DEBUG - MY_DEBUG_LEVEL_VAR_NAME = dbg_level; -#endif - DBGEXIT(AB8500_CODEC_OK); - return(AB8500_CODEC_OK); -} - */ - -/****************************************************************************/ -/* NAME: AB8500_CODEC_GetDbgLevel */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Set the debug level used by the debug module (mask-like value). */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* p_dbg_level: this parameter is used to return debug level. */ -/* */ -/* RETURN: */ -/* AB8500_CODEC_ERROR: if p_version is NULL. */ -/* AB8500_CODEC_OK: if successful */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Re-Entrant */ -/* REENTRANCY ISSUES: No Issues */ - -/****************************************************************************/ -/* -PUBLIC t_ab8500_codec_error AB8500_CODEC_GetDbgLevel(OUT t_dbg_level *p_dbg_level) -{ - if (NULL == p_dbg_level) - { - DBGEXIT(AB8500_CODEC_INVALID_PARAMETER); - return(AB8500_CODEC_INVALID_PARAMETER); - } - -#ifdef __DEBUG - * p_dbg_level = MY_DEBUG_LEVEL_VAR_NAME; -#endif - DBGEXIT(AB8500_CODEC_OK); - return(AB8500_CODEC_OK); -} -*/ -/****************************************************************************/ -/* NAME: AB8500_CODEC_ADSlotAllocation */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* AD Data Allocation in slots. */ -/* */ -/* ARGUMENTS */ -/* IN: t_ab8500_codec_slot: The slot to be allocated. */ -/* IN: t_ab8500_codec_cr31_to_cr46_ad_data_allocation: The value */ -/* to be allocated. */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If invalid slot number */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_ADSlotAllocation - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value ) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER2(" (%lx %lx)", ad_slot, value); - if (ad_slot <= AB8500_CODEC_SLOT7) - { - ab8500_codec_error = - ab8500_codec_ADSlotAllocationSwitch1(ad_slot, value); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else if (ad_slot <= AB8500_CODEC_SLOT15) - { - ab8500_codec_error = - ab8500_codec_ADSlotAllocationSwitch2(ad_slot, value); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else if (ad_slot <= AB8500_CODEC_SLOT23) - { - ab8500_codec_error = - ab8500_codec_ADSlotAllocationSwitch3(ad_slot, value); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else if (ad_slot <= AB8500_CODEC_SLOT31) - { - ab8500_codec_error = - ab8500_codec_ADSlotAllocationSwitch4(ad_slot, value); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else - { - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_DASlotAllocation */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Allocate the Audio Interface slot for DA paths. */ -/* */ -/* ARGUMENTS */ -/* IN: t_ab8500_codec_da_channel_number: Channel number 1/2/3/4/5/6 */ -/* IN: t_ab8500_codec_cr51_to_cr56_sltoda: Slot number */ -/* */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If invalid channel number */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_DASlotAllocation - (IN t_ab8500_codec_da_channel_number channel_number, - IN t_ab8500_codec_cr51_to_cr58_sltoda slot ) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - t_ab8500_codec_cr0_powerup ab8500_codec_cr0_powerup; - DBGENTER2(" (%lx %lx)", channel_number, slot); - p_ab8500_codec_configuration->cr51_da12_voice = - AB8500_CODEC_CR51_DA12_VOICE_LOWLATENCYFILTER; - switch (channel_number) - { - case AB8500_CODEC_DA_CHANNEL_NUMBER_1: - p_ab8500_codec_configuration->cr51_sltoda1 = slot; - break; - case AB8500_CODEC_DA_CHANNEL_NUMBER_2: - p_ab8500_codec_configuration->cr52_sltoda2 = slot; - break; - case AB8500_CODEC_DA_CHANNEL_NUMBER_3: - p_ab8500_codec_configuration->cr53_sltoda3 = slot; - break; - case AB8500_CODEC_DA_CHANNEL_NUMBER_4: - p_ab8500_codec_configuration->cr54_sltoda4 = slot; - break; - case AB8500_CODEC_DA_CHANNEL_NUMBER_5: - p_ab8500_codec_configuration->cr55_sltoda5 = slot; - break; - case AB8500_CODEC_DA_CHANNEL_NUMBER_6: - p_ab8500_codec_configuration->cr56_sltoda6 = slot; - break; - case AB8500_CODEC_DA_CHANNEL_NUMBER_7: - p_ab8500_codec_configuration->cr57_sltoda7 = slot; - break; - case AB8500_CODEC_DA_CHANNEL_NUMBER_8: - p_ab8500_codec_configuration->cr58_sltoda8 = slot; - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_cr0_powerup = p_ab8500_codec_configuration->cr0_powerup; - p_ab8500_codec_configuration->cr0_powerup = - AB8500_CODEC_CR0_POWERUP_OFF; - ab8500_codec_error = ab8500_codec_UpdateCR0(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR51(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR52(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR53(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR54(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR55(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR56(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR57(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR58(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - p_ab8500_codec_configuration->cr0_powerup = ab8500_codec_cr0_powerup; - ab8500_codec_error = ab8500_codec_UpdateCR0(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_ConfigureBurstFifo */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Configuration for Burst FIFO control */ -/* */ -/* ARGUMENTS */ -/* IN: t_ab8500_codec_burst_fifo_config: structure for configuration of */ -/* burst FIFO */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_INVALID_PARAMETER: If invalid parameter */ -/* AB8500_CODEC_UNSUPPORTED_FEATURE: If interface 1 selected */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -t_ab8500_codec_error AB8500_CODEC_ConfigureBurstFifo(IN - t_ab8500_codec_burst_fifo_config - const *const - p_burst_fifo_config) -{ - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER1(" (%lx)", p_burst_fifo_config); - if (AB8500_CODEC_AUDIO_INTERFACE_0 == - g_ab8500_codec_system_context.audio_interface) - { - if (AB8500_CODEC_CR27_EN_MASTGEN_ENABLED == - p_ab8500_codec_configuration->cr27_en_mastgen) - { - p_ab8500_codec_configuration->cr105_bfifomsk = - p_burst_fifo_config->cr105_bfifomsk; - p_ab8500_codec_configuration->cr105_bfifoint = - p_burst_fifo_config->cr105_bfifoint; - p_ab8500_codec_configuration->cr106_bfifotx = - p_burst_fifo_config->cr106_bfifotx; - p_ab8500_codec_configuration->cr107_bfifoexsl = - p_burst_fifo_config->cr107_bfifoexsl; - p_ab8500_codec_configuration->cr107_bfifomast = - p_burst_fifo_config->cr107_bfifomast; - p_ab8500_codec_configuration->cr107_bfiforun = - p_burst_fifo_config->cr107_bfiforun; - p_ab8500_codec_configuration->cr108_bfifoframsw = - p_burst_fifo_config->cr108_bfifoframsw; - p_ab8500_codec_configuration->cr109_bfifowakeup = - p_burst_fifo_config->cr109_bfifowakeup; - ab8500_codec_error = ab8500_codec_UpdateCR105(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR106(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR107(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR108(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR109(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else - { - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else - { - ab8500_codec_error = AB8500_CODEC_UNSUPPORTED_FEATURE; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_EnableBurstFifo */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Enable the Burst FIFO for Interface 0 */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_UNSUPPORTED_FEATURE: If Interface 1 is selected */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_EnableBurstFifo(void) -{ - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - if (AB8500_CODEC_AUDIO_INTERFACE_0 == - g_ab8500_codec_system_context.audio_interface) - { - p_ab8500_codec_configuration->cr29_if0bfifoen = - AB8500_CODEC_CR29_IF0BFIFOEN_BURST_MODE; - ab8500_codec_error = ab8500_codec_UpdateCR29(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else - { - ab8500_codec_error = AB8500_CODEC_UNSUPPORTED_FEATURE; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -/****************************************************************************/ -/* NAME: AB8500_CODEC_DisableBurstFifo */ -/*--------------------------------------------------------------------------*/ -/* DESCRIPTION: */ -/* Disable the Burst FIFO for Interface 0 */ -/* */ -/* ARGUMENTS */ -/* IN: */ -/* None */ -/* OUT: */ -/* None */ -/* RETURN: */ -/* AB8500_CODEC_UNSUPPORTED_FEATURE: If Interface 1 is selected */ -/* AB8500_CODEC_OK: if successful. */ -/* REMARK: */ -/*--------------------------------------------------------------------------*/ -/* REENTRANCY: Non Re-Entrant */ - -/****************************************************************************/ -PUBLIC t_ab8500_codec_error AB8500_CODEC_DisableBurstFifo(void) -{ - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - DBGENTER0(); - if (AB8500_CODEC_AUDIO_INTERFACE_0 == - g_ab8500_codec_system_context.audio_interface) - { - p_ab8500_codec_configuration->cr29_if0bfifoen = - AB8500_CODEC_CR29_IF0BFIFOEN_NORMAL_MODE; - ab8500_codec_error = ab8500_codec_UpdateCR29(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - } - - else - { - ab8500_codec_error = AB8500_CODEC_UNSUPPORTED_FEATURE; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch1 - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value ) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - switch (ad_slot) - { - case AB8500_CODEC_SLOT0: - p_ab8500_codec_configuration->cr31_adotoslot0 = value; - ab8500_codec_error = ab8500_codec_UpdateCR31(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT1: - p_ab8500_codec_configuration->cr31_adotoslot1 = value; - ab8500_codec_error = ab8500_codec_UpdateCR31(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT2: - p_ab8500_codec_configuration->cr32_adotoslot2 = value; - ab8500_codec_error = ab8500_codec_UpdateCR32(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT3: - p_ab8500_codec_configuration->cr32_adotoslot3 = value; - ab8500_codec_error = ab8500_codec_UpdateCR32(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT4: - p_ab8500_codec_configuration->cr33_adotoslot4 = value; - ab8500_codec_error = ab8500_codec_UpdateCR33(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT5: - p_ab8500_codec_configuration->cr33_adotoslot5 = value; - ab8500_codec_error = ab8500_codec_UpdateCR33(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT6: - p_ab8500_codec_configuration->cr34_adotoslot6 = value; - ab8500_codec_error = ab8500_codec_UpdateCR34(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT7: - p_ab8500_codec_configuration->cr34_adotoslot7 = value; - ab8500_codec_error = ab8500_codec_UpdateCR34(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch2 - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value ) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - switch (ad_slot) - { - case AB8500_CODEC_SLOT8: - p_ab8500_codec_configuration->cr35_adotoslot8 = value; - ab8500_codec_error = ab8500_codec_UpdateCR35(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT9: - p_ab8500_codec_configuration->cr35_adotoslot9 = value; - ab8500_codec_error = ab8500_codec_UpdateCR35(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT10: - p_ab8500_codec_configuration->cr36_adotoslot10 = value; - ab8500_codec_error = ab8500_codec_UpdateCR36(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT11: - p_ab8500_codec_configuration->cr36_adotoslot11 = value; - ab8500_codec_error = ab8500_codec_UpdateCR36(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT12: - p_ab8500_codec_configuration->cr37_adotoslot12 = value; - ab8500_codec_error = ab8500_codec_UpdateCR37(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT13: - p_ab8500_codec_configuration->cr37_adotoslot13 = value; - ab8500_codec_error = ab8500_codec_UpdateCR37(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT14: - p_ab8500_codec_configuration->cr38_adotoslot14 = value; - ab8500_codec_error = ab8500_codec_UpdateCR38(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT15: - p_ab8500_codec_configuration->cr38_adotoslot15 = value; - ab8500_codec_error = ab8500_codec_UpdateCR38(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch3 - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value ) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - switch (ad_slot) - { - case AB8500_CODEC_SLOT16: - p_ab8500_codec_configuration->cr39_adotoslot16 = value; - ab8500_codec_error = ab8500_codec_UpdateCR39(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT17: - p_ab8500_codec_configuration->cr39_adotoslot17 = value; - ab8500_codec_error = ab8500_codec_UpdateCR39(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT18: - p_ab8500_codec_configuration->cr40_adotoslot18 = value; - ab8500_codec_error = ab8500_codec_UpdateCR40(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT19: - p_ab8500_codec_configuration->cr40_adotoslot19 = value; - ab8500_codec_error = ab8500_codec_UpdateCR40(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT20: - p_ab8500_codec_configuration->cr41_adotoslot20 = value; - ab8500_codec_error = ab8500_codec_UpdateCR41(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT21: - p_ab8500_codec_configuration->cr41_adotoslot21 = value; - ab8500_codec_error = ab8500_codec_UpdateCR41(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT22: - p_ab8500_codec_configuration->cr42_adotoslot22 = value; - ab8500_codec_error = ab8500_codec_UpdateCR42(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT23: - p_ab8500_codec_configuration->cr42_adotoslot23 = value; - ab8500_codec_error = ab8500_codec_UpdateCR42(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ADSlotAllocationSwitch4 - (IN t_ab8500_codec_slot ad_slot, - IN t_ab8500_codec_cr31_to_cr46_ad_data_allocation value ) { - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - switch (ad_slot) - { - case AB8500_CODEC_SLOT24: - p_ab8500_codec_configuration->cr43_adotoslot24 = value; - ab8500_codec_error = ab8500_codec_UpdateCR43(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT25: - p_ab8500_codec_configuration->cr43_adotoslot25 = value; - ab8500_codec_error = ab8500_codec_UpdateCR43(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT26: - p_ab8500_codec_configuration->cr44_adotoslot26 = value; - ab8500_codec_error = ab8500_codec_UpdateCR44(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT27: - p_ab8500_codec_configuration->cr44_adotoslot27 = value; - ab8500_codec_error = ab8500_codec_UpdateCR44(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT28: - p_ab8500_codec_configuration->cr45_adotoslot28 = value; - ab8500_codec_error = ab8500_codec_UpdateCR45(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT29: - p_ab8500_codec_configuration->cr45_adotoslot29 = value; - ab8500_codec_error = ab8500_codec_UpdateCR45(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT30: - p_ab8500_codec_configuration->cr46_adotoslot30 = value; - ab8500_codec_error = ab8500_codec_UpdateCR46(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - case AB8500_CODEC_SLOT31: - p_ab8500_codec_configuration->cr46_adotoslot31 = value; - ab8500_codec_error = ab8500_codec_UpdateCR46(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SrcPowerControlSwitch1(IN - t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - switch (src_device) - { - case AB8500_CODEC_SRC_LINEIN: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_ENABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_DISABLED; - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_LINR; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_ENABLED; - } - - else - { - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_MIC2; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - } - break; - case AB8500_CODEC_SRC_MICROPHONE_1A: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr7_mic1sel = - AB8500_CODEC_CR7_MIC1SEL_MIC1A; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - } - - else - { - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_DISABLED; - } - break; - case AB8500_CODEC_SRC_MICROPHONE_1B: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr7_mic1sel = - AB8500_CODEC_CR7_MIC1SEL_MIC1B; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - } - - else - { - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_DISABLED; - } - break; - case AB8500_CODEC_SRC_MICROPHONE_2: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_MIC2; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_ENABLED; - } - - else - { - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_LINR; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_1: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_ENABLED; - p_ab8500_codec_configuration->cr63_ad1sel = - AB8500_CODEC_CR63_AD1SEL_DMIC1_SELECTED; - } - - else - { - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr63_ad1sel = - AB8500_CODEC_CR63_AD1SEL_LINLADL_SELECTED; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_2: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_ENABLED; - p_ab8500_codec_configuration->cr63_ad2sel = - AB8500_CODEC_CR63_AD2SEL_DMIC2_SELECTED; - } - - else - { - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr63_ad2sel = - AB8500_CODEC_CR63_AD2SEL_LINRADR_SELECTED; - } - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SrcPowerControlSwitch2(IN - t_ab8500_codec_src - src_device, - t_ab8500_codec_src_state - state) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - switch (src_device) - { - case AB8500_CODEC_SRC_D_MICROPHONE_3: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_ENABLED; - p_ab8500_codec_configuration->cr63_ad3sel = - AB8500_CODEC_CR63_AD3SEL_DMIC3_SELECTED; - } - - else - { - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr63_ad3sel = - AB8500_CODEC_CR63_AD3SEL_ADMO_SELECTED; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_4: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_ENABLED; - } - - else - { - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_5: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_ENABLED; - p_ab8500_codec_configuration->cr63_ad5sel = - AB8500_CODEC_CR63_AD5SEL_DMIC5_SELECTED; - } - - else - { - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr63_ad5sel = - AB8500_CODEC_CR63_AD5SEL_AMADR_SELECTED; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_6: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_ENABLED; - p_ab8500_codec_configuration->cr63_ad6sel = - AB8500_CODEC_CR63_AD6SEL_DMIC6_SELECTED; - } - - else - { - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr63_ad6sel = - AB8500_CODEC_CR63_AD6SEL_ADMO_SELECTED; - } - break; - case AB8500_CODEC_SRC_ALL: - if (AB8500_CODEC_SRC_STATE_ENABLE == state) - { - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_ENABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_ENABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_ENABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_ENABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_ENABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_ENABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_ENABLED; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_DISABLED; - } - - else - { - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - } - break; - case AB8500_CODEC_SRC_FM_RX: - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SetModeAndDirectionUpdateCR(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - t_ab8500_codec_cr0_powerup ab8500_codec_cr0_powerup; - ab8500_codec_cr0_powerup = p_ab8500_codec_configuration->cr0_powerup; - p_ab8500_codec_configuration->cr0_powerup = - AB8500_CODEC_CR0_POWERUP_OFF; - ab8500_codec_error = ab8500_codec_UpdateCR0(); - if (AB8500_CODEC_OK != ab8500_codec_error) - { - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR2(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR3(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR26(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR27(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR28(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR30(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR63(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - p_ab8500_codec_configuration->cr0_powerup = ab8500_codec_cr0_powerup; - ab8500_codec_error = ab8500_codec_UpdateCR0(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SetSrcVolumeUpdateCR(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - ab8500_codec_error = ab8500_codec_UpdateCR20(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR21(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR23(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR65(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR66(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR67(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR68(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR69(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR70(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_SetDestVolumeUpdateCR(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - ab8500_codec_error = ab8500_codec_UpdateCR16(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR17(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR18(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR19(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR22(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR71(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR72(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR73(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR74(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR75(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR76(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR79(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR80(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirectionIN(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - switch (g_ab8500_codec_system_context.ab8500_codec_src) - { - case AB8500_CODEC_SRC_LINEIN: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_ENABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_ENABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_LINR; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - break; - case AB8500_CODEC_SRC_MICROPHONE_1A: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_mic1sel = - AB8500_CODEC_CR7_MIC1SEL_MIC1A; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - break; - case AB8500_CODEC_SRC_MICROPHONE_1B: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_mic1sel = - AB8500_CODEC_CR7_MIC1SEL_MIC1B; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - break; - case AB8500_CODEC_SRC_MICROPHONE_2: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_ENABLED; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - p_ab8500_codec_configuration->cr7_linrsel = - AB8500_CODEC_CR7_LINRSEL_MIC2; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_DISABLED; - break; - case AB8500_CODEC_SRC_D_MICROPHONE_1: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_ENABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - p_ab8500_codec_configuration->cr63_ad1sel = - AB8500_CODEC_CR63_AD1SEL_DMIC1_SELECTED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - break; - case AB8500_CODEC_SRC_D_MICROPHONE_2: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - p_ab8500_codec_configuration->cr63_ad2sel = - AB8500_CODEC_CR63_AD2SEL_DMIC2_SELECTED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - break; - case AB8500_CODEC_SRC_D_MICROPHONE_3: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_ENABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - p_ab8500_codec_configuration->cr63_ad3sel = - AB8500_CODEC_CR63_AD3SEL_DMIC3_SELECTED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - break; - case AB8500_CODEC_SRC_D_MICROPHONE_4: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_ENABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - break; - case AB8500_CODEC_SRC_D_MICROPHONE_5: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_ENABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_DISABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - p_ab8500_codec_configuration->cr63_ad5sel = - AB8500_CODEC_CR63_AD5SEL_DMIC5_SELECTED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - break; - case AB8500_CODEC_SRC_D_MICROPHONE_6: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_DISABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_DISABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_DISABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_DISABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_DISABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_DISABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_DISABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_ENABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_DISABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_DISABLED; - p_ab8500_codec_configuration->cr63_ad6sel = - AB8500_CODEC_CR63_AD6SEL_DMIC6_SELECTED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_ENABLED; - break; - case AB8500_CODEC_SRC_ALL: - p_ab8500_codec_configuration->cr5_enlinl = - AB8500_CODEC_CR5_ENLINL_ENABLED; - p_ab8500_codec_configuration->cr5_enlinr = - AB8500_CODEC_CR5_ENLINR_ENABLED; - p_ab8500_codec_configuration->cr5_enmic1 = - AB8500_CODEC_CR5_ENMIC1_ENABLED; - p_ab8500_codec_configuration->cr5_enmic2 = - AB8500_CODEC_CR5_ENMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic1 = - AB8500_CODEC_CR6_ENDMIC1_ENABLED; - p_ab8500_codec_configuration->cr6_endmic2 = - AB8500_CODEC_CR6_ENDMIC2_ENABLED; - p_ab8500_codec_configuration->cr6_endmic3 = - AB8500_CODEC_CR6_ENDMIC3_ENABLED; - p_ab8500_codec_configuration->cr6_endmic4 = - AB8500_CODEC_CR6_ENDMIC4_ENABLED; - p_ab8500_codec_configuration->cr6_endmic5 = - AB8500_CODEC_CR6_ENDMIC5_ENABLED; - p_ab8500_codec_configuration->cr6_endmic6 = - AB8500_CODEC_CR6_ENDMIC6_ENABLED; - p_ab8500_codec_configuration->cr7_enadcmic = - AB8500_CODEC_CR7_ENADCMIC_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinl = - AB8500_CODEC_CR7_ENADCLINL_ENABLED; - p_ab8500_codec_configuration->cr7_enadclinr = - AB8500_CODEC_CR7_ENADCLINR_ENABLED; - p_ab8500_codec_configuration->cr5_mutlinl = - AB8500_CODEC_CR5_MUTLINL_DISABLED; - p_ab8500_codec_configuration->cr5_mutlinr = - AB8500_CODEC_CR5_MUTLINR_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic1 = - AB8500_CODEC_CR5_MUTMIC1_DISABLED; - p_ab8500_codec_configuration->cr5_mutmic2 = - AB8500_CODEC_CR5_MUTMIC2_DISABLED; - break; - case AB8500_CODEC_SRC_D_MICROPHONE_12: - case AB8500_CODEC_SRC_D_MICROPHONE_34: - case AB8500_CODEC_SRC_D_MICROPHONE_56: - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_ProgramDirectionOUT(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - t_ab8500_codec_configuration * p_ab8500_codec_configuration = - &g_ab8500_codec_system_context. ab8500_codec_configuration; - switch (g_ab8500_codec_system_context.ab8500_codec_dest) - { - case AB8500_CODEC_DEST_HEADSET: - p_ab8500_codec_configuration->cr7_endrvhsl = - AB8500_CODEC_CR7_ENDRVHSL_ENABLED; - p_ab8500_codec_configuration->cr7_endrvhsr = - AB8500_CODEC_CR7_ENDRVHSR_ENABLED; - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_ENABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_ENABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - p_ab8500_codec_configuration->cr9_endachsl = - AB8500_CODEC_CR9_ENDACHSL_ENABLED; - p_ab8500_codec_configuration->cr9_endachsr = - AB8500_CODEC_CR9_ENDACHSR_ENABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_DISABLED; - p_ab8500_codec_configuration->cr12_encphs = - AB8500_CODEC_CR12_ENCPHS_ENABLED; - break; - case AB8500_CODEC_DEST_EARPIECE: - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_ENABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_ENABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - break; - case AB8500_CODEC_DEST_HANDSFREE: - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_ENABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_ENABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_ENABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_ENABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - break; - case AB8500_CODEC_DEST_VIBRATOR_L: - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_ENABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_DISABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_ENABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_PWM; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE; - break; - case AB8500_CODEC_DEST_VIBRATOR_R: - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_DISABLED; - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_DISABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_DISABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_DISABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_DISABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_DISABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_ENABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_ENABLED; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_PWM; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE; - break; - case AB8500_CODEC_DEST_ALL: - p_ab8500_codec_configuration->cr8_enhsl = - AB8500_CODEC_CR8_ENHSL_ENABLED; - p_ab8500_codec_configuration->cr8_enhsr = - AB8500_CODEC_CR8_ENHSR_ENABLED; - p_ab8500_codec_configuration->cr8_enear = - AB8500_CODEC_CR8_ENEAR_ENABLED; - p_ab8500_codec_configuration->cr8_enhfl = - AB8500_CODEC_CR8_ENHFL_ENABLED; - p_ab8500_codec_configuration->cr8_enhfr = - AB8500_CODEC_CR8_ENHFR_ENABLED; - p_ab8500_codec_configuration->cr8_envibl = - AB8500_CODEC_CR8_ENVIBL_ENABLED; - p_ab8500_codec_configuration->cr8_envibr = - AB8500_CODEC_CR8_ENVIBR_ENABLED; - p_ab8500_codec_configuration->cr9_endacear = - AB8500_CODEC_CR9_ENDACEAR_ENABLED; - p_ab8500_codec_configuration->cr9_endachfl = - AB8500_CODEC_CR9_ENDACHFL_ENABLED; - p_ab8500_codec_configuration->cr9_endachfr = - AB8500_CODEC_CR9_ENDACHFR_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibl = - AB8500_CODEC_CR9_ENDACVIBL_ENABLED; - p_ab8500_codec_configuration->cr9_endacvibr = - AB8500_CODEC_CR9_ENDACVIBR_ENABLED; - p_ab8500_codec_configuration->cr10_mutehsl = - AB8500_CODEC_CR10_MUTEHSL_DISABLED; - p_ab8500_codec_configuration->cr10_mutehsr = - AB8500_CODEC_CR10_MUTEHSR_DISABLED; - p_ab8500_codec_configuration->cr10_muteear = - AB8500_CODEC_CR10_MUTEEAR_DISABLED; - p_ab8500_codec_configuration->cr15_pwmtovibl = - AB8500_CODEC_CR15_PWMTOVIBL_PWM; - p_ab8500_codec_configuration->cr15_pwmlctrl = - AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnlctrl = - AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmplctrl = - AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmtovibr = - AB8500_CODEC_CR15_PWMTOVIBR_PWM; - p_ab8500_codec_configuration->cr15_pwmrctrl = - AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmnrctrl = - AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE; - p_ab8500_codec_configuration->cr15_pwmprctrl = - AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE; - break; - default: - ab8500_codec_error = AB8500_CODEC_INVALID_PARAMETER; - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} - -PRIVATE t_ab8500_codec_error ab8500_codec_DestPowerControlUpdateCR(void) -{ - t_ab8500_codec_error ab8500_codec_error = AB8500_CODEC_OK; - ab8500_codec_error = ab8500_codec_UpdateCR8(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR9(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR10(); - if (ab8500_codec_error != AB8500_CODEC_OK) - { - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); - } - ab8500_codec_error = ab8500_codec_UpdateCR15(); - DBGEXIT(ab8500_codec_error); - return (ab8500_codec_error); -} diff --git a/sound/u8500_acodec_ab8500.c b/sound/u8500_acodec_ab8500.c deleted file mode 100644 index c75da368832..00000000000 --- a/sound/u8500_acodec_ab8500.c +++ /dev/null @@ -1,2523 +0,0 @@ -/* - * Copyright (C) ST-Ericsson SA 2010 - * - * Author: Deepak Karda - * for ST-Ericsson. - * - * License terms: - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as published - * by the Free Software Foundation. - */ - -/*----------------------------------------------------------------------------- -* Common Includes -*---------------------------------------------------------------------------*/ - -#include <linux/module.h> -#include <linux/types.h> -#include <linux/kernel.h> -#include <linux/init.h> -#include <linux/slab.h> -#include <asm/uaccess.h> -#include <asm/io.h> -#include <linux/interrupt.h> -#include <linux/errno.h> -#include <linux/interrupt.h> -#include <linux/spinlock.h> -#include <linux/soundcard.h> -#include <linux/sound.h> -#include <linux/delay.h> -#include <linux/dma-mapping.h> -#include <linux/i2s/i2s.h> -#include <mach/msp.h> -#include <linux/gpio.h> -/*#include <mach/i2c.h>*/ -#include <mach/debug.h> -#include <mach/u8500_acodec_ab8500.h> -#include <mach/ab8500.h> - -#ifdef CONFIG_U8500_AB8500_CUT10 -#include <mach/ab8500_codec_v1_0.h> -#endif -#ifdef CONFIG_U8500_AB8500_ED -#include <mach/ab8500_codec.h> -#endif - -#define ELEMENT_SIZE 0 -#define FRAME_SIZE -1 -#define MSP_NUM 0 - -/* Debugging stuff */ - -#define ACODEC_NAME "DRIVER ACODEC" -#define DRIVER_DEBUG CONFIG_STM_ACODEC_DEBUG /* enables/disables debug msgs */ -#define DRIVER_DEBUG_PFX ACODEC_NAME /* msg header represents this module */ -#define DRIVER_DBG KERN_ERR /* message level */ -#define NMDK_DEBUG CONFIG_STM_ACODEC_DEBUG -extern struct driver_debug_st DBG_ST; - -#if NMDK_DEBUG > 0 -t_ab8500_codec_error dump_acodec_registers(void); -t_ab8500_codec_error dump_msp_registers(void); -#endif - -#ifdef CONFIG_U8500_ACODEC_DMA -static void u8500_digital_lpbk_tx_dma_start(void); -static void u8500_digital_lpbk_rx_dma_start(void); -#endif - -int second_config; -/*---------------------------------------------------------------------------- -* global declarations -*---------------------------------------------------------------------------*/ -t_u8500_codec_system_context g_codec_system_context; - -int u8500_acodec_rates[MAX_NO_OF_RATES] = { 48000 }; - -char *codec_dest_texts[NUMBER_OUTPUT_DEVICE] = { - "CODEC_DEST_HEADSET", "CODEC_DEST_EARPIECE", "CODEC_DEST_HANDSFREE", - "CODEC_DEST_VIBRATOR1", "CODEC_DEST_VIBRATOR2" -}; - -char *codec_in_texts[NUMBER_INPUT_DEVICE] = { - "CODEC_SRC_LINEIN", "CODEC_SRC_MICROPHONE_1A", - "CODEC_SRC_MICROPHONE_1B", - "CODEC_SRC_MICROPHONE_2", "CODEC_SRC_D_MICROPHONE_1", - "CODEC_SRC_D_MICROPHONE_2", - "CODEC_SRC_D_MICROPHONE_3", "CODEC_SRC_D_MICROPHONE_4", - "CODEC_SRC_D_MICROPHONE_5", - "CODEC_SRC_D_MICROPHONE_6", "CODEC_SRC_D_MICROPHONE_12", - "CODEC_SRC_D_MICROPHONE_34", - "CODEC_SRC_D_MICROPHONE_56" -}; - -char *lpbk_state_in_texts[NUMBER_LOOPBACK_STATE] = { "DISABLE", "ENABLE" }; -char *switch_state_in_texts[NUMBER_SWITCH_STATE] = { "DISABLE", "ENABLE" }; -char *power_state_in_texts[NUMBER_POWER_STATE] = { "DISABLE", "ENABLE" }; -char *tdm_mode_state_in_texts[NUMBER_POWER_STATE] = { "DISABLE", "ENABLE" }; -char *direct_rendering_state_in_texts[NUMBER_DIRECT_RENDERING_STATE] = - { "DISABLE", "ENABLE" }; -char *pcm_rendering_state_in_texts[NUMBER_PCM_RENDERING_STATE] = - { "DISABLE", "ENABLE", "PENDING" }; - -EXPORT_SYMBOL(codec_dest_texts); -EXPORT_SYMBOL(codec_in_texts); - -static void ab8500_codec_power_init(void); -static int check_device_id(); -t_ab8500_codec_error perform_src_routing(t_ab8500_codec_src input_device); -t_ab8500_codec_error - u8500_acodec_allocate_all_mono_slots - (t_ab8500_codec_cr31_to_cr46_ad_data_allocation ad_data_line1); -t_ab8500_codec_error - u8500_acodec_allocate_all_stereo_slots - (t_ab8500_codec_cr31_to_cr46_ad_data_allocation ad_data_line1, - t_ab8500_codec_cr31_to_cr46_ad_data_allocation ad_data_line2); - -#if 0 //from Arnaud -/* For Codec in Master mode for recording*/ -struct msp_protocol_desc protocol_desc_tdm_mode = { - MSP_DATA_TRANSFER_WIDTH_HALFWORD, /*rx_data_transfer_width */ - MSP_DATA_TRANSFER_WIDTH_HALFWORD, /*tx_data_transfer_width */ - MSP_SINGLE_PHASE, /*rx_phase_mode */ - MSP_SINGLE_PHASE, /*tx_phase_mode */ - MSP_PHASE2_START_MODE_IMEDIATE, /*rx_phase2_start_mode */ - MSP_PHASE2_START_MODE_IMEDIATE, /*tx_phase2_start_mode */ - MSP_BTF_MS_BIT_FIRST, /*rx_endianess */ - MSP_BTF_MS_BIT_FIRST, /*tx_endianess */ - MSP_FRAME_LENGTH_2, /*rx_frame_length_1 */ - MSP_FRAME_LENGTH_2, /*rx_frame_length_2 */ - MSP_FRAME_LENGTH_2, /*tx_frame_length_1 */ - MSP_FRAME_LENGTH_2, /*tx_frame_length_2 */ - MSP_ELEM_LENGTH_16, /*rx_element_length_1 */ - MSP_ELEM_LENGTH_16, /*rx_element_length_2 */ - MSP_ELEM_LENGTH_16, /*tx_element_length_1 */ - MSP_ELEM_LENGTH_16, /*tx_element_length_2 */ - MSP_DELAY_0, /*rx_data_delay */ - MSP_DELAY_0, /*tx_data_delay */ - MSP_FALLING_EDGE, /*rx_clock_pol */ - MSP_RISING_EDGE, /*tx_clock_pol */ - MSP_FRAME_SYNC_POL_ACTIVE_HIGH, /*rx_msp_frame_pol */ - MSP_FRAME_SYNC_POL_ACTIVE_HIGH, /*tx_msp_frame_pol */ - MSP_HWS_NO_SWAP, /*rx_half_word_swap */ - MSP_HWS_NO_SWAP, /*tx_half_word_swap */ - MSP_COMPRESS_MODE_LINEAR, /*compression_mode */ - MSP_EXPAND_MODE_LINEAR, /*expansion_mode */ - MSP_SPI_CLOCK_MODE_NON_SPI, /*spi_clk_mode */ - MSP_SPI_BURST_MODE_DISABLE, /*spi_burst_mode */ - 63, /*frame_period */ - 31, /*frame_width */ - 64, /*total_clocks_for_one_frame */ -}; -#endif - -#if 0 //from HCL -/* For Codec in Master mode for recording*/ -struct msp_protocol_desc protocol_desc_tdm_mode = { - MSP_DATA_TRANSFER_WIDTH_WORD, /*rx_data_transfer_width */ - MSP_DATA_TRANSFER_WIDTH_WORD, /*tx_data_transfer_width */ - MSP_DUAL_PHASE, /*rx_phase_mode */ - MSP_DUAL_PHASE, /*tx_phase_mode */ - MSP_PHASE2_START_MODE_FRAME_SYNC, /*rx_phase2_start_mode */ - MSP_PHASE2_START_MODE_FRAME_SYNC, /*tx_phase2_start_mode */ - MSP_BTF_MS_BIT_FIRST, /*rx_endianess */ - MSP_BTF_MS_BIT_FIRST, /*tx_endianess */ - MSP_FRAME_LENGTH_1, /*rx_frame_length_1 */ - MSP_FRAME_LENGTH_1, /*rx_frame_length_2 */ - MSP_FRAME_LENGTH_1, /*tx_frame_length_1 */ - MSP_FRAME_LENGTH_1, /*tx_frame_length_2 */ - MSP_ELEM_LENGTH_16, /*rx_element_length_1 */ - MSP_ELEM_LENGTH_16, /*rx_element_length_2 */ - MSP_ELEM_LENGTH_16, /*tx_element_length_1 */ - MSP_ELEM_LENGTH_16, /*tx_element_length_2 */ - MSP_DELAY_0, /*rx_data_delay */ - MSP_DELAY_0, /*tx_data_delay */ - MSP_RISING_EDGE, /*rx_clock_pol */ - MSP_RISING_EDGE, /*tx_clock_pol */ - MSP_FRAME_SYNC_POL_ACTIVE_HIGH, /*rx_msp_frame_pol */ - MSP_FRAME_SYNC_POL_ACTIVE_HIGH, /*tx_msp_frame_pol */ - MSP_HWS_NO_SWAP, /*rx_half_word_swap */ - MSP_HWS_NO_SWAP, /*tx_half_word_swap */ - MSP_COMPRESS_MODE_LINEAR, /*compression_mode */ - MSP_EXPAND_MODE_LINEAR, /*expansion_mode */ - MSP_SPI_CLOCK_MODE_NON_SPI, /*spi_clk_mode */ - MSP_SPI_BURST_MODE_DISABLE, /*spi_burst_mode */ - 255, /*frame_period */ - 0, /*frame_width */ - 256, /*total_clocks_for_one_frame */ -}; - -#endif - -#if 0 //from STS -struct msp_protocol_desc protocol_desc_tdm_mode = { - MSP_DATA_TRANSFER_WIDTH_HALFWORD, /*rx_data_transfer_width */ - MSP_DATA_TRANSFER_WIDTH_HALFWORD, /*tx_data_transfer_width */ - MSP_SINGLE_PHASE, /*rx_phase_mode */ - MSP_SINGLE_PHASE, /*tx_phase_mode */ - MSP_PHASE2_START_MODE_IMEDIATE, /*rx_phase2_start_mode */ - MSP_PHASE2_START_MODE_IMEDIATE, /*tx_phase2_start_mode */ - MSP_BTF_MS_BIT_FIRST, /*rx_endianess */ - MSP_BTF_MS_BIT_FIRST, /*tx_endianess */ - MSP_FRAME_LENGTH_2, /*rx_frame_length_1 */ - MSP_FRAME_LENGTH_1, /*rx_frame_length_2 */ - MSP_FRAME_LENGTH_2, /*tx_frame_length_1 */ - MSP_FRAME_LENGTH_1, /*tx_frame_length_2 */ - MSP_ELEM_LENGTH_16, /*rx_element_length_1 */ - MSP_ELEM_LENGTH_16, /*rx_element_length_2 */ - MSP_ELEM_LENGTH_16, /*tx_element_length_1 */ - MSP_ELEM_LENGTH_16, /*tx_element_length_2 */ - MSP_DELAY_0, /*rx_data_delay */ - MSP_DELAY_0, /*tx_data_delay */ - MSP_FALLING_EDGE, /*rx_clock_pol */ - MSP_RISING_EDGE, /*tx_clock_pol */ - MSP_FRAME_SYNC_POL_ACTIVE_HIGH, /*rx_msp_frame_pol */ - MSP_FRAME_SYNC_POL_ACTIVE_HIGH, /*tx_msp_frame_pol */ - MSP_HWS_NO_SWAP, /*rx_half_word_swap */ - MSP_HWS_NO_SWAP, /*tx_half_word_swap */ - MSP_COMPRESS_MODE_LINEAR, /*compression_mode */ - MSP_EXPAND_MODE_LINEAR, /*expansion_mode */ - MSP_SPI_CLOCK_MODE_NON_SPI, /*spi_clk_mode */ - MSP_SPI_BURST_MODE_DISABLE, /*spi_burst_mode */ - 25, /*frame_period */ - 32, /*frame_width */ - 32, /*total_clocks_for_one_frame */ -}; -#endif - -#define DIGITAL_LPBK_MAX_BIFFERS 3 - -#ifdef CONFIG_U8500_AB8500_CUT10 -#define NB_OF_CHANNEL_USED 8 -#else -#define NB_OF_CHANNEL_USED 6 -#endif - -#define MONO_SRC 1 -#define STEREO_SRC 2 - -typedef struct { - unsigned char *area; /* virtual pointer */ - dma_addr_t addr; /* physical address */ -} t_dma_buffer; - -typedef struct { - struct completion tx_dma_com; - struct completion rx_dma_com; - volatile int rx_active; - volatile int tx_active; - t_dma_buffer buffer; - int data_size; - int rx_index; - int tx_index; -} t_digital_lpbk_cnxt; - -const int play_flag = 1; -const int capture_flag = 2; - -t_digital_lpbk_cnxt digital_lpbk_cnxt; - -void u8500_set_defaults() -{ - int i; - - for (i = 0; i < NUMBER_INPUT_DEVICE; i++) { - g_codec_system_context.input_config[i].left_volume = 0; - g_codec_system_context.input_config[i].right_volume = 0; - g_codec_system_context.input_config[i].mute_state = DISABLE; - g_codec_system_context.input_config[i].power_state = DISABLE; - } - - for (i = 0; i < NUMBER_OUTPUT_DEVICE; i++) { - g_codec_system_context.output_config[i].left_volume = 0; - g_codec_system_context.output_config[i].right_volume = 0; - g_codec_system_context.output_config[i].mute_state = DISABLE; - g_codec_system_context.output_config[i].power_state = DISABLE; - } - -} //END OF FUNCTION - -struct i2sdrv_data *i2sdrv[MAX_I2S_CLIENTS]; - -t_ab8500_codec_error u8500_acodec_open(int client_id, int stream_id) -{ - struct i2sdrv_data *p_i2sdrv_data = NULL; - struct i2s_device *i2s; - - p_i2sdrv_data = i2sdrv[client_id]; - - if (!p_i2sdrv_data) - return (-1); - - i2s = p_i2sdrv_data->i2s; - - if (stream_id == 0) //PLAYBACK - { - if (p_i2sdrv_data->tx_status) - return -1; - else { - p_i2sdrv_data->tx_status = 1; - } - } else if (stream_id == 1) //CAPTURE - { - if (p_i2sdrv_data->rx_status) - return -1; - else { - p_i2sdrv_data->rx_status = 1; - } - } - - p_i2sdrv_data->flag = 0; - - return 0; -} - -t_ab8500_codec_error u8500_acodec_send_data(int client_id, void *data, - size_t bytes, int dma_flag) -{ - struct i2sdrv_data *p_i2sdrv_data = NULL; - struct i2s_device *i2s_dev = NULL; - int bytes_transmit; - struct i2s_message message; - - p_i2sdrv_data = i2sdrv[client_id]; - - if (!p_i2sdrv_data) - return (-1); - - i2s_dev = p_i2sdrv_data->i2s; - - if (p_i2sdrv_data->flag) { - stm_dbg(DBG_ST.acodec, " I2S controller not available\n"); - return -1; - } - - message.i2s_transfer_mode = I2S_TRANSFER_MODE_SINGLE_DMA; - message.i2s_direction = I2S_DIRECTION_TX; - message.txbytes = bytes; - message.txdata = data; - message.dma_flag = dma_flag; - - bytes_transmit = i2s_transfer(i2s_dev->controller, &message); - - if (bytes_transmit < 0) { - printk("error in transfer\n"); - return -1; - } - return bytes_transmit; - -} - -t_ab8500_codec_error u8500_acodec_loopback_configure(int client_id, void *data, - size_t bytes, int dma_flag) -{ - struct i2sdrv_data *p_i2sdrv_data = NULL; - struct i2s_device *i2s_dev = NULL; - int bytes_receive; - struct i2s_message message; - - p_i2sdrv_data = i2sdrv[client_id]; - - if (!p_i2sdrv_data) - return (-1); - - i2s_dev = p_i2sdrv_data->i2s; - - if (p_i2sdrv_data->flag) { - stm_dbg(DBG_ST.acodec, " I2S controller not available\n"); - return -1; - } - - message.i2s_transfer_mode = I2S_TRANSFER_MODE_INF_LOOPBACK; - message.rxbytes = bytes; - message.rxdata = data; - message.txbytes = bytes; - message.txdata = data; - message.dma_flag = dma_flag; - - bytes_receive = i2s_transfer(i2s_dev->controller, &message); - - if (bytes_receive < 0) { - printk(" not get\n"); - return -1; - } - return bytes_receive; - -} - -t_ab8500_codec_error u8500_acodec_receive_data(int client_id, void *data, - size_t bytes, int dma_flag) -{ - struct i2sdrv_data *p_i2sdrv_data = NULL; - struct i2s_device *i2s_dev = NULL; - int bytes_receive; - struct i2s_message message; - - p_i2sdrv_data = i2sdrv[client_id]; - - if (!p_i2sdrv_data) - return (-1); - - i2s_dev = p_i2sdrv_data->i2s; - - if (p_i2sdrv_data->flag) { - stm_dbg(DBG_ST.acodec, " I2S controller not available\n"); - return -1; - } - - message.i2s_transfer_mode = I2S_TRANSFER_MODE_SINGLE_DMA; - message.i2s_direction = I2S_DIRECTION_RX; - message.rxbytes = bytes; - message.rxdata = data; - message.dma_flag = dma_flag; - - bytes_receive = i2s_transfer(i2s_dev->controller, &message); - - if (bytes_receive < 0) { - printk(" not get\n"); - return -1; - } - return bytes_receive; - -} - -t_ab8500_codec_error u8500_acodec_close(int client_id, t_acodec_disable flag) -{ - struct i2sdrv_data *p_i2sdrv_data = NULL; - struct i2s_device *i2s_dev = NULL; - int status = 0; - - p_i2sdrv_data = i2sdrv[client_id]; - - if (!p_i2sdrv_data) - return (-1); - - i2s_dev = p_i2sdrv_data->i2s; - - if (p_i2sdrv_data->flag) { - stm_dbg(DBG_ST.acodec, " I2S controller not available\n"); - return -1; - } - - if (flag == DISABLE_ALL) { - p_i2sdrv_data->flag = -1; - p_i2sdrv_data->tx_status = 0; - p_i2sdrv_data->rx_status = 0; - } else if (flag == DISABLE_TRANSMIT) { - p_i2sdrv_data->tx_status = 0; - } else if (flag == DISABLE_RECEIVE) { - p_i2sdrv_data->rx_status = 0; - } - status = i2s_cleanup(i2s_dev->controller, flag); - if (status) { - return -1; - } - - return 0; -} - -/** -* u8500_acodec_enable_audio_mode -* -* @direction - direction of data flow (from/to) audiocode -* @mspClockSel - clock for MSP -* @mspInClockFreq - input clock for MSP -* @channels - number of channel, 1 for mono and 2 for stereo -* -* It configures the audiocodec in audio mode. In this case,the I2S -* protocol is used for data exchanges. -*/ - -t_ab8500_codec_error u8500_acodec_enable_audio_mode(struct acodec_configuration - * acodec_config) -{ - struct i2s_device *i2s_dev = NULL; - t_ab8500_codec_error error_status = AB8500_CODEC_OK; - struct msp_config msp_config; - t_ab8500_codec_error codec_error; - t_ab8500_codec_mode codec_in_mode = AB8500_CODEC_MODE_MANUAL_SETTING; - t_ab8500_codec_mode codec_out_mode = AB8500_CODEC_MODE_MANUAL_SETTING; - t_ab8500_codec_direction codec_direction; -/*#ifdef CONFIG_U8500_AB8500_CUT10*/ -#if 1 - t_ab8500_codec_tdm_config tdm_config; -#endif - - memset(&msp_config, 0, sizeof(msp_config)); - - FUNC_ENTER(); - stm_dbg(DBG_ST.acodec, - " Entering in u8500_acodec_enable_audio_mode()\n"); - - if (i2sdrv[I2S_CLIENT_MSP1]->flag) { - stm_dbg(DBG_ST.acodec, " I2S controller not available\n"); - return -1; - } - - i2s_dev = i2sdrv[I2S_CLIENT_MSP1]->i2s; - - if (g_codec_system_context.cur_user == NO_USER) { - stm_error("Audiocodec not yet configured by any user\n"); - return (AB8500_CODEC_ERROR); - } else if (g_codec_system_context.cur_user != acodec_config->user) { - stm_error - (" Trying to acces audiocodec already in use by user %d\n", - g_codec_system_context.cur_user); - return (AB8500_CODEC_ERROR); - } - - switch (acodec_config->direction) { - case AB8500_CODEC_DIRECTION_INOUT: - codec_direction = AB8500_CODEC_DIRECTION_INOUT; - codec_in_mode = AB8500_CODEC_MODE_VOICE; //HIFI - codec_out_mode = AB8500_CODEC_MODE_VOICE; //VOICE - break; - case AB8500_CODEC_DIRECTION_IN: - codec_direction = AB8500_CODEC_DIRECTION_IN; - codec_in_mode = AB8500_CODEC_MODE_VOICE; //HIFI - break; - case AB8500_CODEC_DIRECTION_OUT: - codec_direction = AB8500_CODEC_DIRECTION_OUT; - codec_out_mode = AB8500_CODEC_MODE_VOICE; //HIFI - break; - default: - stm_error("Invalid direction\n"); - return AB8500_CODEC_ERROR; - } - - /* MSP configuration */ - - msp_config.tx_clock_sel = 0; //TX_CLK_SEL_SRG; - msp_config.rx_clock_sel = 0; //RX_CLK_SEL_SRG; - - msp_config.tx_frame_sync_sel = 0; //0x00000400; Frame synchronization signal is provided by an external source. MSPTFS is an input pin - msp_config.rx_frame_sync_sel = 0; //0: Rx Frame synchronization signal is provided by an external source. MSPRFS is an input pin - - msp_config.input_clock_freq = MSP_INPUT_FREQ_48MHZ; - - msp_config.srg_clock_sel = 0; //0x000C0000 - - //msp_config.rx_endianess = MSP_BIG_ENDIAN; - //msp_config.tx_endianess = MSP_BIG_ENDIAN; - - msp_config.rx_frame_sync_pol = RX_FIFO_SYNC_HI; - msp_config.tx_frame_sync_pol = TX_FIFO_SYNC_HI; - - //msp_config.rx_unexpect_frame_sync = MSP_UNEXPECTED_FS_IGNORE; - //msp_config.tx_unexpect_frame_sync = MSP_UNEXPECTED_FS_IGNORE; - - msp_config.rx_fifo_config = RX_FIFO_ENABLE; - msp_config.tx_fifo_config = TX_FIFO_ENABLE; - - msp_config.spi_clk_mode = SPI_CLK_MODE_NORMAL; - msp_config.spi_burst_mode = 0; - - msp_config.handler = acodec_config->handler; - msp_config.tx_callback_data = acodec_config->tx_callback_data; - msp_config.tx_data_enable = 0; - msp_config.rx_callback_data = acodec_config->rx_callback_data; - - msp_config.loopback_enable = 0; - msp_config.multichannel_configured = 0; - - msp_config.def_elem_len = 0; - //msp_config.loopback_enable = g_codec_system_context.msp_loopback; - - stm_dbg(DBG_ST.acodec, " msp_config.loopback_enable = 0x%x \n", - msp_config.loopback_enable); - -#if 0 - msp_config.default_protocol_desc = 1; -#else - msp_config.default_protocol_desc = 0; - msp_config.protocol_desc.rx_phase_mode = MSP_SINGLE_PHASE; - msp_config.protocol_desc.tx_phase_mode = MSP_SINGLE_PHASE; - msp_config.protocol_desc.rx_phase2_start_mode = - MSP_PHASE2_START_MODE_IMEDIATE; - msp_config.protocol_desc.tx_phase2_start_mode = - MSP_PHASE2_START_MODE_IMEDIATE; - msp_config.protocol_desc.rx_bit_transfer_format = MSP_BTF_MS_BIT_FIRST; - msp_config.protocol_desc.tx_bit_transfer_format = MSP_BTF_MS_BIT_FIRST; - msp_config.protocol_desc.rx_frame_length_1 = MSP_FRAME_LENGTH_1; - msp_config.protocol_desc.rx_frame_length_2 = MSP_FRAME_LENGTH_1; - msp_config.protocol_desc.tx_frame_length_1 = MSP_FRAME_LENGTH_1; - msp_config.protocol_desc.tx_frame_length_2 = MSP_FRAME_LENGTH_1; - msp_config.protocol_desc.rx_element_length_1 = MSP_ELEM_LENGTH_32; - msp_config.protocol_desc.rx_element_length_2 = MSP_ELEM_LENGTH_32; - msp_config.protocol_desc.tx_element_length_1 = MSP_ELEM_LENGTH_32; - msp_config.protocol_desc.tx_element_length_2 = MSP_ELEM_LENGTH_32; - msp_config.protocol_desc.rx_data_delay = MSP_DELAY_0; - msp_config.protocol_desc.tx_data_delay = MSP_DELAY_0; - msp_config.protocol_desc.rx_clock_pol = MSP_RISING_EDGE; - msp_config.protocol_desc.tx_clock_pol = MSP_FALLING_EDGE; - msp_config.protocol_desc.rx_frame_sync_pol = - MSP_FRAME_SYNC_POL_ACTIVE_HIGH; - msp_config.protocol_desc.tx_frame_sync_pol = - MSP_FRAME_SYNC_POL_ACTIVE_HIGH; - msp_config.protocol_desc.rx_half_word_swap = MSP_HWS_NO_SWAP; - msp_config.protocol_desc.tx_half_word_swap = MSP_HWS_NO_SWAP; - msp_config.protocol_desc.compression_mode = MSP_COMPRESS_MODE_LINEAR; - msp_config.protocol_desc.expansion_mode = MSP_EXPAND_MODE_LINEAR; - msp_config.protocol_desc.spi_clk_mode = MSP_SPI_CLOCK_MODE_NON_SPI; - msp_config.protocol_desc.spi_burst_mode = MSP_SPI_BURST_MODE_DISABLE; - msp_config.protocol_desc.frame_sync_ignore = MSP_FRAME_SYNC_IGNORE; - msp_config.protocol_desc.frame_period = 63; - msp_config.protocol_desc.frame_width = 31; - msp_config.protocol_desc.total_clocks_for_one_frame = 64; - -#endif - - msp_config.direction = MSP_BOTH_T_R_MODE; - msp_config.protocol = MSP_PCM_PROTOCOL; //MSP_I2S_PROTOCOL - msp_config.frame_size = ELEMENT_SIZE; - // msp_config.frame_freq = freq; $kardad$ - msp_config.frame_freq = CODEC_SAMPLING_FREQ_48KHZ; - - /* enable msp for both tr and rx mode with dma data transfer. THIS IS NOW DONE SEPARATELY from SAA. */ - - if (acodec_config->channels == 1) - msp_config.data_size = MSP_DATA_SIZE_16BIT; - else - msp_config.data_size = MSP_DATA_SIZE_32BIT; - -#ifdef CONFIG_U8500_ACODEC_DMA - msp_config.work_mode = MSP_DMA_MODE; -#elif defined(CONFIG_U8500_ACODEC_POLL) - msp_config.work_mode = MSP_POLLING_MODE; -#else - msp_config.work_mode = MSP_INTERRUPT_MODE; -#endif - - if (DISABLE == acodec_config->direct_rendering_mode) { - msp_config.multichannel_configured = 1; - msp_config.multichannel_config.tx_multichannel_enable = 1; - if (acodec_config->channels == 1) { - msp_config.multichannel_config.tx_channel_0_enable = - 0x0000001; - } else { - msp_config.multichannel_config.tx_channel_0_enable = - 0x0000003; - } - msp_config.multichannel_config.tx_channel_1_enable = 0x0000000; - msp_config.multichannel_config.tx_channel_2_enable = 0x0000000; - msp_config.multichannel_config.tx_channel_3_enable = 0x0000000; - - msp_config.multichannel_config.rx_multichannel_enable = 1; - - if (acodec_config->channels == 1) { - msp_config.multichannel_config.rx_channel_0_enable = - 0x0000001; - } else { - msp_config.multichannel_config.rx_channel_0_enable = - 0x0000003; - } - msp_config.multichannel_config.rx_channel_1_enable = 0x0000000; - msp_config.multichannel_config.rx_channel_2_enable = 0x0000000; - msp_config.multichannel_config.rx_channel_3_enable = 0x0000000; - - if (acodec_config->tdm8_ch_mode == ENABLE) { - msp_config.def_elem_len = 1; - - msp_config.protocol_desc.tx_element_length_1 = - MSP_ELEM_LENGTH_20; - msp_config.protocol_desc.tx_frame_length_1 = - MSP_FRAME_LENGTH_8; - msp_config.protocol_desc.tx_data_delay = MSP_DELAY_1; - - msp_config.protocol_desc.tx_element_length_2 = - MSP_ELEM_LENGTH_8; - msp_config.protocol_desc.tx_frame_length_2 = - MSP_FRAME_LENGTH_1; - - msp_config.protocol_desc.rx_element_length_1 = - MSP_ELEM_LENGTH_20; - msp_config.protocol_desc.rx_frame_length_1 = - MSP_FRAME_LENGTH_8; - msp_config.protocol_desc.rx_data_delay = MSP_DELAY_1; - - msp_config.protocol_desc.rx_element_length_2 = - MSP_ELEM_LENGTH_8; - msp_config.protocol_desc.rx_frame_length_2 = - MSP_FRAME_LENGTH_1; - - msp_config.protocol_desc.frame_sync_ignore = - MSP_FRAME_SYNC_UNIGNORE; - msp_config.protocol_desc.rx_clock_pol = MSP_RISING_EDGE; - - //if(acodec_config->digital_loopback == ENABLE) { - if (1) { - msp_config.multichannel_config. - tx_channel_0_enable = - (1 << NB_OF_CHANNEL_USED) - 1; - msp_config.multichannel_config. - rx_channel_0_enable = - (1 << NB_OF_CHANNEL_USED) - 1; - } else { - msp_config.multichannel_config. - tx_channel_0_enable = 0x3; - msp_config.multichannel_config. - rx_channel_0_enable = 0x3; - } - } - - if (acodec_config->tdm8_ch_mode == ENABLE) { - /* TFSDLY = 2 delay units */ - msp_config.iodelay = 0x20; - } - - error_status = i2s_setup(i2s_dev->controller, &msp_config); - if (error_status < 0) { - stm_error("error in msp enable, error_status is %d\n", - error_status); - return error_status; - } - } else if (ENABLE == acodec_config->direct_rendering_mode) { - writel(0x00, ((char *)(IO_ADDRESS(U8500_MSP1_BASE) + 0x04))); //MSP_GCR - } - - if (ACODEC_CONFIG_REQUIRED == acodec_config->acodec_config_need) { - AB8500_CODEC_SelectInterface(AB8500_CODEC_AUDIO_INTERFACE_0); - - codec_error = AB8500_CODEC_PowerUp(); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_PowerUp failed\n"); - return AB8500_CODEC_ERROR; - } - -/*#ifdef CONFIG_U8500_AB8500_CUT10*/ -#if 1 - tdm_config.cr27_if1_bitclk_osr = - AB8500_CODEC_CR27_IF1_BITCLK_OSR_32; - tdm_config.cr27_if0_bitclk_osr = - AB8500_CODEC_CR27_IF0_BITCLK_OSR_32; - tdm_config.cr28_if0wl = AB8500_CODEC_CR28_IF0WL_16BITS; - tdm_config.cr30_if1wl = AB8500_CODEC_CR30_IF1WL_16BITS; - - switch (acodec_config->direction) { - case AB8500_CODEC_DIRECTION_INOUT: - tdm_config.cr28_bitclk0p = - AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE; - tdm_config.cr28_if0del = - AB8500_CODEC_CR28_IF0DEL_DELAYED; - break; - case AB8500_CODEC_DIRECTION_IN: - tdm_config.cr28_bitclk0p = - AB8500_CODEC_CR28_BITCLK0P_RISING_EDGE; - tdm_config.cr28_if0del = - AB8500_CODEC_CR28_IF0DEL_NOT_DELAYED; - break; - case AB8500_CODEC_DIRECTION_OUT: - tdm_config.cr28_bitclk0p = - AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE; - tdm_config.cr28_if0del = - AB8500_CODEC_CR28_IF0DEL_DELAYED; - break; - default: - stm_error("Invalid direction\n"); - return AB8500_CODEC_ERROR; - } - - if (acodec_config->tdm8_ch_mode == ENABLE) { - tdm_config.cr27_if0_bitclk_osr = - AB8500_CODEC_CR27_IF0_BITCLK_OSR_256; - tdm_config.cr28_if0wl = AB8500_CODEC_CR28_IF0WL_20BITS; - tdm_config.cr28_bitclk0p = - AB8500_CODEC_CR28_BITCLK0P_RISING_EDGE; - tdm_config.cr28_if0del = - AB8500_CODEC_CR28_IF0DEL_DELAYED; - codec_in_mode = AB8500_CODEC_MODE_VOICE; - codec_out_mode = AB8500_CODEC_MODE_VOICE; - acodec_config->direction = AB8500_CODEC_DIRECTION_INOUT; - } - - codec_error = - AB8500_CODEC_SetModeAndDirection(acodec_config->direction, - codec_in_mode, - codec_out_mode, - &tdm_config); -#else - codec_error = - AB8500_CODEC_SetModeAndDirection(acodec_config->direction, - codec_in_mode, - codec_out_mode); -#endif - if (AB8500_CODEC_OK != codec_error) { - stm_error("set mode and direction failed\n"); - return AB8500_CODEC_ERROR; - } - - codec_error = - AB8500_CODEC_SetMasterMode(AB8500_CODEC_MASTER_MODE_ENABLE); - - if (AB8500_CODEC_OK != codec_error) { - stm_error("set mode and direction failed\n"); - return AB8500_CODEC_ERROR; - } - - /*codec_error = trg_codec_set_sample_frequency(0); */ - - /*u8500_acodec_set_volume(g_codec_system_context.in_left_volume, - g_codec_system_context.in_right_volume, - g_codec_system_context.out_left_volume, - g_codec_system_context.out_right_volume, - user); */ -#if 0 - if (AB8500_CODEC_DIRECTION_IN == acodec_config->direction - || AB8500_CODEC_DIRECTION_INOUT == - acodec_config->direction) { - - u8500_acodec_allocate_ad_slot - (AB8500_CODEC_SRC_D_MICROPHONE_1, TDM_8_CH_MODE); - u8500_acodec_allocate_ad_slot - (AB8500_CODEC_SRC_D_MICROPHONE_2, TDM_8_CH_MODE); - - /*codec_error = AB8500_CODEC_ADSlotAllocation (AB8500_CODEC_SLOT0, - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT3); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_adslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - codec_error = AB8500_CODEC_ADSlotAllocation (AB8500_CODEC_SLOT1, - AB8500_CODEC_CR31_TO_CR46_SLOT_IS_TRISTATE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_adslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } */ - - } - - if (AB8500_CODEC_DIRECTION_OUT == acodec_config->direction - || AB8500_CODEC_DIRECTION_INOUT == - acodec_config->direction) { - u8500_acodec_allocate_da_slot(AB8500_CODEC_DEST_HEADSET, - TDM_8_CH_MODE); - /*codec_error = AB8500_CODEC_DASlotAllocation (AB8500_CODEC_DA_CHANNEL_NUMBER_1, - AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT08); - if (AB8500_CODEC_OK != codec_error) { - stm_error - ("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - codec_error = AB8500_CODEC_DASlotAllocation (AB8500_CODEC_DA_CHANNEL_NUMBER_2, - AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT09); - if (AB8500_CODEC_OK != codec_error) { - stm_error - ("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } */ - - } -#endif - - } //END of if acodec_config_need - -/*#if DRIVER_DEBUG > 0 - { - dump_msp_registers(); - dump_acodec_registers(); - } -#endif*/ - - stm_dbg(DBG_ST.acodec, - "leaving in u8500_acodec_enable_audio_mode() \n"); - - FUNC_EXIT(); - return AB8500_CODEC_OK; -} - -/** -* u8500_acodec_set_output_volume - configures the volume level for both speakers -* @in_left_volume - volume for left channel of mic -* @in_right_volume - volume for right channel of mic -* @out_left_volume - volume for left speaker -* @out_right_volume - volume for right speaker -*/ -t_ab8500_codec_error u8500_acodec_set_output_volume(t_ab8500_codec_dest - dest_device, - int left_volume, - int right_volume, - t_acodec_user user) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - stm_dbg(DBG_ST.acodec, - " Entering in u8500_acodec_set_output_volume()\n"); - - FUNC_ENTER(); - - user = user; //keep compiler happy - - g_codec_system_context.output_config[dest_device].left_volume = - left_volume; - g_codec_system_context.output_config[dest_device].right_volume = - right_volume; - - AB8500_CODEC_SetDestVolume(dest_device, left_volume, right_volume); - - FUNC_EXIT(); - return codec_error; -} - -/*u8500_acodec_get_output_volume*/ - -t_ab8500_codec_error u8500_acodec_get_output_volume(t_ab8500_codec_dest - dest_device, - int *p_left_volume, - int *p_right_volume, - t_acodec_user user) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - stm_dbg(DBG_ST.acodec, - " Entering in u8500_acodec_set_output_volume()\n"); - - user = user; //keep compiler happy - - *p_left_volume = - g_codec_system_context.output_config[dest_device].left_volume; - *p_right_volume = - g_codec_system_context.output_config[dest_device].right_volume; - - return codec_error; -} - -/** -* u8500_acodec_set_input_volume - configures the volume level for both speakers -* @in_left_volume - volume for left channel of mic -* @in_right_volume - volume for right channel of mic -* @out_left_volume - volume for left speaker -* @out_right_volume - volume for right speaker -*/ -t_ab8500_codec_error u8500_acodec_set_input_volume(t_ab8500_codec_src - src_device, int left_volume, - int right_volume, - t_acodec_user user) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - stm_dbg(DBG_ST.acodec, - " Entering in u8500_acodec_set_input_volume()\n"); - - user = user; //keep compiler happy - - g_codec_system_context.input_config[src_device].left_volume = - left_volume; - g_codec_system_context.input_config[src_device].right_volume = - right_volume; - - AB8500_CODEC_SetSrcVolume(src_device, left_volume, right_volume); - - return codec_error; -} - -/** -* u8500_acodec_get_input_volume - configures the volume level for both speakers -* @in_left_volume - volume for left channel of mic -* @in_right_volume - volume for right channel of mic -* @out_left_volume - volume for left speaker -* @out_right_volume - volume for right speaker -*/ -t_ab8500_codec_error u8500_acodec_get_input_volume(t_ab8500_codec_src - src_device, - int *p_left_volume, - int *p_right_volume, - t_acodec_user user) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - stm_dbg(DBG_ST.acodec, - " Entering in u8500_acodec_get_input_volume()\n"); - - user = user; //keep compiler happy - - *p_left_volume = - g_codec_system_context.input_config[src_device].left_volume; - *p_right_volume = - g_codec_system_context.input_config[src_device].right_volume; - - return codec_error; -} - -/** -* u8500_acodec_toggle_playback_mute_control - configures the mute for both speakers -* @in_left_volume - volume for left channel of mic -* @in_right_volume - volume for right channel of mic -* @out_left_volume - volume for left speaker -* @out_right_volume - volume for right speaker -*/ -t_ab8500_codec_error -u8500_acodec_toggle_playback_mute_control(t_ab8500_codec_dest dest_device, - t_u8500_bool_state mute_state, - t_acodec_user user) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - stm_dbg(DBG_ST.acodec, - " Entering in u8500_acodec_toggle_playback_mute_control \n"); - - user = user; //keep compiler happy - - g_codec_system_context.output_config[dest_device].mute_state = - mute_state; - - if (ENABLE == mute_state) { - AB8500_CODEC_DestPowerControl(dest_device, - AB8500_CODEC_SRC_STATE_ENABLE); - } else { - AB8500_CODEC_DestPowerControl(dest_device, - AB8500_CODEC_SRC_STATE_DISABLE); - } - - return codec_error; -} - -/** -* u8500_acodec_toggle_capture_mute_control - configures the mute for both speakers -* @in_left_volume - volume for left channel of mic -* @in_right_volume - volume for right channel of mic -* @out_left_volume - volume for left speaker -* @out_right_volume - volume for right speaker -*/ -t_ab8500_codec_error u8500_acodec_toggle_capture_mute_control(t_ab8500_codec_src - src_device, - t_u8500_bool_state - mute_state, - t_acodec_user - user) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - stm_dbg(DBG_ST.acodec, - " Entering in u8500_acodec_toggle_capture_mute_control \n"); - - user = user; //keep compiler happy - - g_codec_system_context.input_config[src_device].mute_state = mute_state; - - if (ENABLE == mute_state) { - AB8500_CODEC_SrcPowerControl(src_device, - AB8500_CODEC_SRC_STATE_ENABLE); - } else { - AB8500_CODEC_SrcPowerControl(src_device, - AB8500_CODEC_SRC_STATE_DISABLE); - } - - return codec_error; -} - -/** -* u8500_acodec_select_input -* @input_device: MIC or linein. -* -* This routine selects the input device mic or linein. -*/ - -t_ab8500_codec_error u8500_acodec_select_input(t_ab8500_codec_src - input_device, - t_acodec_user user, - t_u8500_mode mode) -{ - - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - stm_dbg(DBG_ST.acodec, " Entering u8500_acodec_select_input\n"); - - if (TDM_8_CH_MODE == mode) - u8500_acodec_allocate_ad_slot(input_device, TDM_8_CH_MODE); - else - u8500_acodec_allocate_ad_slot(input_device, CLASSICAL_MODE); - - codec_error = AB8500_CODEC_SelectInput(input_device); - - stm_dbg(DBG_ST.acodec, " leaving u8500_acodec_select_input\n"); - return codec_error; -} - -/** -* u8500_acodec_select_output -* @output_device: output device HP/LSP -* -* This routine selects the output device Headphone or loud speaker -*/ - -t_ab8500_codec_error u8500_acodec_select_output(t_ab8500_codec_dest - output_device, - t_acodec_user user, - t_u8500_mode mode) -{ - - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - FUNC_ENTER(); - stm_dbg(DBG_ST.acodec, " Entering u8500_acodec_select_output()\n"); - - if (TDM_8_CH_MODE == mode) - u8500_acodec_allocate_da_slot(output_device, TDM_8_CH_MODE); - else - u8500_acodec_allocate_da_slot(output_device, CLASSICAL_MODE); - - codec_error = AB8500_CODEC_SelectOutput(output_device); - - stm_dbg(DBG_ST.acodec, " leaving u8500_acodec_select_output()\n"); - FUNC_EXIT(); - return codec_error; -} - -t_ab8500_codec_error u8500_acodec_allocate_ad_slot(t_ab8500_codec_src - input_device, - t_u8500_mode mode) -{ - t_ab8500_codec_cr31_to_cr46_ad_data_allocation ad_data_line1, - ad_data_line2; - t_ab8500_codec_slot slot1, slot2; - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - slot1 = AB8500_CODEC_SLOT_UNDEFINED; - slot2 = AB8500_CODEC_SLOT_UNDEFINED; - - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_UNDEFINED; - ad_data_line2 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_UNDEFINED; - - switch (input_device) { - case AB8500_CODEC_SRC_D_MICROPHONE_1: - { - slot1 = AB8500_CODEC_SLOT0; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT1; - } - break; - case AB8500_CODEC_SRC_MICROPHONE_2: - case AB8500_CODEC_SRC_D_MICROPHONE_2: - { - slot1 = AB8500_CODEC_SLOT1; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT2; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_3: - case AB8500_CODEC_SRC_MICROPHONE_1A: - case AB8500_CODEC_SRC_MICROPHONE_1B: - { - slot1 = AB8500_CODEC_SLOT2; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT3; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_4: - { - slot1 = AB8500_CODEC_SLOT3; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT4; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_5: - { - slot1 = AB8500_CODEC_SLOT4; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT5; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_6: - { - slot1 = AB8500_CODEC_SLOT5; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT6; - } - break; - case AB8500_CODEC_SRC_LINEIN: - { - slot1 = AB8500_CODEC_SLOT0; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT1; - - slot2 = AB8500_CODEC_SLOT1; - ad_data_line2 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT2; - } - case AB8500_CODEC_SRC_FM_RX: - { - slot1 = AB8500_CODEC_SLOT6; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT7; - - slot2 = AB8500_CODEC_SLOT7; - ad_data_line2 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT8; - } - break; - case AB8500_CODEC_SRC_ALL: - break; - } - - if ((AB8500_CODEC_SLOT_UNDEFINED != slot1) - && (AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_UNDEFINED != - ad_data_line1)) { - if (CLASSICAL_MODE == mode) { - slot1 = AB8500_CODEC_SLOT0; - } - codec_error = - AB8500_CODEC_ADSlotAllocation(slot1, ad_data_line1); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_adslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - - if ((AB8500_CODEC_SLOT_UNDEFINED != slot2) - && (AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_UNDEFINED != - ad_data_line2)) { - if (CLASSICAL_MODE == mode) { - slot2 = AB8500_CODEC_SLOT1; - } - codec_error = - AB8500_CODEC_ADSlotAllocation(slot2, ad_data_line2); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_adslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - - return AB8500_CODEC_OK; -} - -t_ab8500_codec_error u8500_acodec_unallocate_ad_slot(t_ab8500_codec_src - input_device, - t_u8500_mode mode) -{ - t_ab8500_codec_slot slot1, slot2; - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - slot1 = AB8500_CODEC_SLOT_UNDEFINED; - slot2 = AB8500_CODEC_SLOT_UNDEFINED; - - switch (input_device) { - case AB8500_CODEC_SRC_D_MICROPHONE_1: - { - slot1 = AB8500_CODEC_SLOT0; - } - break; - case AB8500_CODEC_SRC_MICROPHONE_2: - case AB8500_CODEC_SRC_D_MICROPHONE_2: - { - slot1 = AB8500_CODEC_SLOT1; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_3: - case AB8500_CODEC_SRC_MICROPHONE_1A: - case AB8500_CODEC_SRC_MICROPHONE_1B: - { - slot1 = AB8500_CODEC_SLOT2; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_4: - { - slot1 = AB8500_CODEC_SLOT3; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_5: - { - slot1 = AB8500_CODEC_SLOT4; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_6: - { - slot1 = AB8500_CODEC_SLOT5; - } - break; - case AB8500_CODEC_SRC_LINEIN: - { - slot1 = AB8500_CODEC_SLOT0; - slot2 = AB8500_CODEC_SLOT1; - } - break; - case AB8500_CODEC_SRC_ALL: - break; - } - - if (AB8500_CODEC_SLOT_UNDEFINED != slot1) { - if (CLASSICAL_MODE == mode) { - slot1 = AB8500_CODEC_SLOT0; - } - codec_error = - AB8500_CODEC_ADSlotAllocation(slot1, - AB8500_CODEC_CR31_TO_CR46_SLOT_IS_TRISTATE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_adslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - - if (AB8500_CODEC_SLOT_UNDEFINED != slot2) { - if (CLASSICAL_MODE == mode) { - slot2 = AB8500_CODEC_SLOT1; - } - codec_error = - AB8500_CODEC_ADSlotAllocation(slot2, - AB8500_CODEC_CR31_TO_CR46_SLOT_IS_TRISTATE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_adslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - - return AB8500_CODEC_OK; -} - -#ifdef CONFIG_U8500_AB8500_CUT10 -t_ab8500_codec_error u8500_acodec_allocate_da_slot(t_ab8500_codec_dest - output_device, - t_u8500_mode mode) -{ - t_ab8500_codec_da_channel_number da_ch_no1, da_ch_no2; - t_ab8500_codec_cr51_to_cr58_sltoda da_slot1, da_slot2; - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED; - da_ch_no2 = AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED; - - da_slot1 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT_UNDEFINED; - da_slot2 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT_UNDEFINED; - - switch (output_device) { - case AB8500_CODEC_DEST_HEADSET: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_1; - da_slot1 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT08; - - da_ch_no2 = AB8500_CODEC_DA_CHANNEL_NUMBER_2; - da_slot2 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT09; - } - break; - case AB8500_CODEC_DEST_EARPIECE: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_1; - da_slot1 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT08; - } - break; - case AB8500_CODEC_DEST_HANDSFREE: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_3; - da_slot1 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT10; - - da_ch_no2 = AB8500_CODEC_DA_CHANNEL_NUMBER_4; - da_slot2 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT11; - } - break; - case AB8500_CODEC_DEST_VIBRATOR_L: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_5; - da_slot1 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT12; - } - break; - case AB8500_CODEC_DEST_VIBRATOR_R: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_6; - da_slot1 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT13; - } - break; - - case AB8500_CODEC_DEST_FM_TX: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_7; - da_slot1 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT14; - - da_ch_no2 = AB8500_CODEC_DA_CHANNEL_NUMBER_8; - da_slot2 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT15; - } - - case AB8500_CODEC_DEST_ALL: - break; - } - - if ((AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED != da_ch_no1) - && (AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT_UNDEFINED != da_slot1)) { - if (CLASSICAL_MODE == mode) { - da_slot1 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT08; - } - codec_error = - AB8500_CODEC_DASlotAllocation(da_ch_no1, da_slot1); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - - if ((AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED != da_ch_no2) - && (AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT_UNDEFINED != da_slot2)) { - if (CLASSICAL_MODE == mode) { - da_slot1 = AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT09; - } - codec_error = - AB8500_CODEC_DASlotAllocation(da_ch_no2, da_slot2); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - - return AB8500_CODEC_OK; -} - -#else -t_ab8500_codec_error u8500_acodec_allocate_da_slot(t_ab8500_codec_dest - output_device, - t_u8500_mode mode) -{ - t_ab8500_codec_da_channel_number da_ch_no1, da_ch_no2; - t_ab8500_codec_cr51_to_cr56_sltoda da_slot1, da_slot2; - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED; - da_ch_no2 = AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED; - - da_slot1 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT_UNDEFINED; - da_slot2 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT_UNDEFINED; - - switch (output_device) { - case AB8500_CODEC_DEST_HEADSET: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_1; - da_slot1 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT08; - - da_ch_no2 = AB8500_CODEC_DA_CHANNEL_NUMBER_2; - da_slot2 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT09; - } - break; - case AB8500_CODEC_DEST_EARPIECE: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_1; - da_slot1 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT08; - } - break; - case AB8500_CODEC_DEST_HANDSFREE: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_3; - da_slot1 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT10; - - da_ch_no2 = AB8500_CODEC_DA_CHANNEL_NUMBER_4; - da_slot2 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT11; - } - break; - case AB8500_CODEC_DEST_VIBRATOR_L: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_5; - da_slot1 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT12; - } - break; - case AB8500_CODEC_DEST_VIBRATOR_R: - { - da_ch_no1 = AB8500_CODEC_DA_CHANNEL_NUMBER_6; - da_slot1 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT13; - } - break; - - case AB8500_CODEC_DEST_ALL: - break; - } - - if ((AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED != da_ch_no1) - && (AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT_UNDEFINED != da_slot1)) { - if (CLASSICAL_MODE == mode) { - da_slot1 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT08; - } - codec_error = - AB8500_CODEC_DASlotAllocation(da_ch_no1, da_slot1); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - - if ((AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED != da_ch_no2) - && (AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT_UNDEFINED != da_slot2)) { - if (CLASSICAL_MODE == mode) { - da_slot1 = AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT09; - } - codec_error = - AB8500_CODEC_DASlotAllocation(da_ch_no2, da_slot2); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - - return AB8500_CODEC_OK; -} -#endif - -t_ab8500_codec_error u8500_acodec_unallocate_da_slot(t_ab8500_codec_dest - output_device, - t_u8500_mode mode) -{ - return AB8500_CODEC_OK; -} - -t_ab8500_codec_error u8500_acodec_set_src_power_cntrl(t_ab8500_codec_src - input_device, - t_u8500_bool_state - pwr_state) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - if (ENABLE == pwr_state) { - u8500_acodec_allocate_ad_slot(input_device, TDM_8_CH_MODE); - codec_error = - AB8500_CODEC_SrcPowerControl(input_device, - AB8500_CODEC_SRC_STATE_ENABLE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_SrcPowerControl failed\n"); - return AB8500_CODEC_ERROR; - } - g_codec_system_context.input_config[input_device].power_state = - ENABLE; - } else { - u8500_acodec_unallocate_ad_slot(input_device, TDM_8_CH_MODE); - codec_error = - AB8500_CODEC_SrcPowerControl(input_device, - AB8500_CODEC_SRC_STATE_DISABLE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_SrcPowerControl failed\n"); - return AB8500_CODEC_ERROR; - } - g_codec_system_context.input_config[input_device].power_state = - DISABLE; - } - - return AB8500_CODEC_OK; -} - -t_u8500_bool_state u8500_acodec_get_src_power_state(t_ab8500_codec_src - input_device) -{ - return (g_codec_system_context.input_config[input_device].power_state); -} - -t_ab8500_codec_error u8500_acodec_set_dest_power_cntrl(t_ab8500_codec_dest - output_device, - t_u8500_bool_state - pwr_state) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - if (ENABLE == pwr_state) { - AB8500_CODEC_SelectInterface(AB8500_CODEC_AUDIO_INTERFACE_0); - - codec_error = AB8500_CODEC_PowerUp(); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_PowerUp failed\n"); - return AB8500_CODEC_ERROR; - } - - u8500_acodec_allocate_da_slot(output_device, TDM_8_CH_MODE); - - codec_error = - AB8500_CODEC_DestPowerControl(output_device, - AB8500_CODEC_DEST_STATE_ENABLE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_DestPowerControl failed\n"); - return AB8500_CODEC_ERROR; - } - g_codec_system_context.output_config[output_device]. - power_state = ENABLE; - } else { - u8500_acodec_unallocate_da_slot(output_device, TDM_8_CH_MODE); - codec_error = - AB8500_CODEC_DestPowerControl(output_device, - AB8500_CODEC_DEST_STATE_DISABLE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_DestPowerControl failed\n"); - return AB8500_CODEC_ERROR; - } - g_codec_system_context.output_config[output_device]. - power_state = DISABLE; - } - - return AB8500_CODEC_OK; -} - -t_u8500_bool_state u8500_acodec_get_dest_power_state(t_ab8500_codec_dest - output_device) -{ - return (g_codec_system_context.output_config[output_device]. - power_state); -} - -/** -* u8500_acodec_toggle_analog_lpbk -* @output_device: output device HP/LSP -* -* This routine selects the output device Headphone or loud speaker -*/ -t_ab8500_codec_error u8500_acodec_toggle_analog_lpbk(t_u8500_bool_state - lpbk_state, - t_acodec_user user) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - stm_dbg(DBG_ST.acodec, - " Entering inu8500_acodec_toggle_analog_lpbk() \n"); - - user = user; //keep compiler happy - - if (ENABLE == lpbk_state) { - /* Reset CODEC */ - codec_error = AB8500_CODEC_Reset(); - - AB8500_CODEC_SelectInterface(AB8500_CODEC_AUDIO_INTERFACE_0); - - codec_error = AB8500_CODEC_PowerUp(); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_PowerUp failed\n"); - return AB8500_CODEC_ERROR; - } - - codec_error = AB8500_CODEC_SelectInput(AB8500_CODEC_SRC_LINEIN); - - codec_error = - AB8500_CODEC_SrcPowerControl(AB8500_CODEC_SRC_LINEIN, - AB8500_CODEC_SRC_STATE_ENABLE); - - //codec_error = AB8500_CODEC_SetSrcVolume(AB8500_CODEC_SRC_LINEIN,VOL_MAX,VOL_MAX); - - codec_error = - AB8500_CODEC_SelectOutput(AB8500_CODEC_DEST_HEADSET); - - codec_error = - AB8500_CODEC_DestPowerControl(AB8500_CODEC_DEST_HEADSET, - AB8500_CODEC_DEST_STATE_ENABLE); - - //codec_error = AB8500_CODEC_SetDestVolume(AB8500_CODEC_DEST_HEADSET,0,0); - - codec_error = AB8500_CODEC_SetAnalogLoopback(VOL_MAX, VOL_MAX); - - ab8500_write(AB8500_AUDIO, 0xd05, 0x30); - ab8500_write(AB8500_AUDIO, 0xd07, 0xf3); - ab8500_write(AB8500_AUDIO, 0xd16, 0xdd); - ab8500_write(AB8500_AUDIO, 0xd17, 0x55); - ab8500_write(AB8500_AUDIO, 0xd3f, 0xc0); - - } else { - codec_error = AB8500_CODEC_RemoveAnalogLoopback(); - } - -#if DRIVER_DEBUG > 0 - { - dump_acodec_registers(); - } -#endif - - return codec_error; -} - -#ifdef CONFIG_U8500_ACODEC_POLL - -static int digital_lpbk_msp_rx_tx_thread(void *data) -{ - t_digital_lpbk_cnxt *p_cnxt = (t_digital_lpbk_cnxt *) data; - unsigned int sample[8], count = 32; - - daemonize("digital_lpbk_msp_rx_tx_thread"); - allow_signal(SIGKILL); - - printk("\n Rx-Tx : digital_lpbk_msp_rx_tx_thread started \n"); - - while ((!signal_pending(current)) && (p_cnxt->rx_active)) { - -// ret_val = u8500_msp_receive_data(alsa_msp_adev,p_cnxt->buffer[p_cnxt->rx_index],p_cnxt->data_size); - - //u8500_msp_transceive_data(alsa_msp_adev,p_cnxt->buffer[0], p_cnxt->data_size,p_cnxt->buffer[1], p_cnxt->data_size); - - //u8500_msp_transceive_data(alsa_msp_adev,p_cnxt->buffer[1], p_cnxt->data_size,p_cnxt->buffer[0], p_cnxt->data_size); - -#if DRIVER_DEBUG > 1 - stm_dbg(DBG_ST.alsa, " Receiving \n"); -#endif - u8500_acodec_receive_data(I2S_CLIENT_MSP1, (void *)sample, - count, 0); - -#if DRIVER_DEBUG > 1 - stm_dbg(DBG_ST.alsa, " Transmitting \n"); -#endif - u8500_acodec_send_data(I2S_CLIENT_MSP1, (void *)sample, count, - 0); - - } - printk("\n Rx-Tx : digital_lpbk_msp_rx_tx_thread ended \n"); - return 0; -} - -#endif - -#ifdef CONFIG_U8500_ACODEC_DMA - -static void u8500_digital_lpbk_dma_start() -{ - u8500_acodec_loopback_configure(I2S_CLIENT_MSP1, - (void *)digital_lpbk_cnxt.buffer.addr, - digital_lpbk_cnxt.data_size, 1); - - stm_dbg(DBG_ST.alsa, " Rx DMA Transfer started\n"); - stm_dbg(DBG_ST.alsa, " Rx : add = %x size=%d\n", - (int)(digital_lpbk_cnxt.buffer.addr), - digital_lpbk_cnxt.data_size); - -} -#endif - -/** -* u8500_acodec_toggle_digital_lpbk -* @output_device: output device HP/LSP -* -* This routine selects the output device Headphone or loud speaker -*/ - -t_ab8500_codec_error u8500_acodec_toggle_digital_lpbk(t_u8500_bool_state - lpbk_state, - t_ab8500_codec_dest - dest_device, - t_ab8500_codec_src - src_device, - t_acodec_user user, - t_u8500_bool_state - tdm8_ch_mode) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - struct acodec_configuration acodec_config; - int status = 0; - - stm_dbg(DBG_ST.acodec, - " Entering u8500_acodec_toggle_digital_lpbk() \n"); - - user = user; //keep compiler happy - - if (ENABLE == lpbk_state) { - //data_size = 1024*100; - - //data[0] = (unsigned char *)kmalloc(data_size, GFP_KERNEL); - - codec_error = AB8500_CODEC_Reset(); - - //AB8500_CODEC_SelectInterface(AB8500_CODEC_AUDIO_INTERFACE_0); - - //codec_error = AB8500_CODEC_PowerUp(); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_PowerUp failed\n"); - return AB8500_CODEC_ERROR; - } - - status = u8500_acodec_open(I2S_CLIENT_MSP1, 0); - if (status) { - printk("failed in getting acodec playback open\n"); - return -1; - } - status = u8500_acodec_open(I2S_CLIENT_MSP1, 1); - if (status) { - printk("failed in getting acdoec capture open\n"); - return -1; - } - - u8500_acodec_setuser(USER_ALSA); - - if (ENABLE == tdm8_ch_mode) { - printk("\n 20 bit 8 ch Digital Loopback"); - printk("\n DMIC1 -> HS-L"); - printk("\n DMIC2 -> HS-R"); - printk("\n DMIC3 -> IHF-L"); - printk("\n DMIC5 -> Vibra-L\n"); - printk("\n DMIC6 -> Vibra-R\n"); - printk("\n FM -> FM Tx\n"); - } else { - printk("\n 16 bit 2 ch Digital Loopback"); - printk("\n DMIC1 -> HS-L"); - printk("\n DMIC2 -> HS-R"); - } - - stm_dbg(DBG_ST.alsa, "enabling audiocodec audio mode\n"); - acodec_config.direction = AB8500_CODEC_DIRECTION_INOUT; - acodec_config.input_frequency = T_CODEC_SAMPLING_FREQ_48KHZ; - acodec_config.output_frequency = T_CODEC_SAMPLING_FREQ_48KHZ; - acodec_config.mspClockSel = CODEC_MSP_APB_CLOCK; - acodec_config.mspInClockFreq = CODEC_MSP_INPUT_FREQ_48MHZ; - acodec_config.channels = 2; - acodec_config.user = 2; - acodec_config.acodec_config_need = ACODEC_CONFIG_REQUIRED; - acodec_config.direct_rendering_mode = DISABLE; - acodec_config.tdm8_ch_mode = tdm8_ch_mode; - acodec_config.digital_loopback = ENABLE; -#ifdef CONFIG_U8500_ACODEC_POLL - acodec_config.handler = NULL; - acodec_config.tx_callback_data = NULL; - acodec_config.rx_callback_data = NULL; -#endif - u8500_acodec_enable_audio_mode(&acodec_config); - - /*turn on src devices */ - - perform_src_routing(src_device); - -/* u8500_acodec_set_src_power_cntrl(src_device,ENABLE); - u8500_acodec_set_input_volume(src_device,50,50,USER_ALSA); - - u8500_acodec_set_src_power_cntrl(AB8500_CODEC_SRC_D_MICROPHONE_2,ENABLE); - u8500_acodec_set_input_volume(AB8500_CODEC_SRC_D_MICROPHONE_2,50,50,USER_ALSA); - - u8500_acodec_set_src_power_cntrl(AB8500_CODEC_SRC_D_MICROPHONE_3,ENABLE); - u8500_acodec_set_input_volume(AB8500_CODEC_SRC_D_MICROPHONE_3,50,50,USER_ALSA); - - u8500_acodec_set_src_power_cntrl(AB8500_CODEC_SRC_D_MICROPHONE_4,ENABLE); - u8500_acodec_set_input_volume(AB8500_CODEC_SRC_D_MICROPHONE_4,50,50,USER_ALSA); - - u8500_acodec_set_src_power_cntrl(AB8500_CODEC_SRC_D_MICROPHONE_5,ENABLE); - u8500_acodec_set_input_volume(AB8500_CODEC_SRC_D_MICROPHONE_5,50,50,USER_ALSA); - - u8500_acodec_set_src_power_cntrl(AB8500_CODEC_SRC_D_MICROPHONE_6,ENABLE); - u8500_acodec_set_input_volume(AB8500_CODEC_SRC_D_MICROPHONE_6,50,50,USER_ALSA); - - u8500_acodec_set_src_power_cntrl(AB8500_CODEC_SRC_D_MICROPHONE_6,ENABLE); - u8500_acodec_set_input_volume(AB8500_CODEC_SRC_D_MICROPHONE_6,50,50,USER_ALSA); - - u8500_acodec_set_src_power_cntrl(AB8500_CODEC_SRC_FM_RX,ENABLE); */ - - /*turn on dest devices */ - - //u8500_acodec_set_dest_power_cntrl(dest_device,ENABLE); - u8500_acodec_allocate_da_slot(dest_device, TDM_8_CH_MODE); - codec_error = AB8500_CODEC_SelectOutput(dest_device); - u8500_acodec_set_output_volume(dest_device, 100, 100, - USER_ALSA); - - /*u8500_acodec_set_dest_power_cntrl(AB8500_CODEC_DEST_HEADSET,ENABLE); - u8500_acodec_set_output_volume(AB8500_CODEC_DEST_HEADSET,100,100,USER_ALSA); */ - - /*u8500_acodec_set_dest_power_cntrl(AB8500_CODEC_DEST_HANDSFREE,ENABLE); - u8500_acodec_set_output_volume(AB8500_CODEC_DEST_HANDSFREE,100,100,USER_ALSA); */ - -#ifdef CONFIG_U8500_AB8500_CUT10 - codec_error = - AB8500_CODEC_DASlotAllocation - (AB8500_CODEC_DA_CHANNEL_NUMBER_5, - AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT12); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - - codec_error = - AB8500_CODEC_DASlotAllocation - (AB8500_CODEC_DA_CHANNEL_NUMBER_6, - AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT13); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - - codec_error = - AB8500_CODEC_DASlotAllocation - (AB8500_CODEC_DA_CHANNEL_NUMBER_7, - AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT14); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - - codec_error = - AB8500_CODEC_DASlotAllocation - (AB8500_CODEC_DA_CHANNEL_NUMBER_8, - AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT15); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } -#else - codec_error = - AB8500_CODEC_DASlotAllocation - (AB8500_CODEC_DA_CHANNEL_NUMBER_5, - AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT12); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - - codec_error = - AB8500_CODEC_DASlotAllocation - (AB8500_CODEC_DA_CHANNEL_NUMBER_6, - AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT13); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_daslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } -#endif - - digital_lpbk_cnxt.data_size = 2048; - - digital_lpbk_cnxt.rx_active = 1; - digital_lpbk_cnxt.tx_active = 1; - - digital_lpbk_cnxt.rx_index = 0; - digital_lpbk_cnxt.tx_index = 2; - - digital_lpbk_cnxt.buffer.area = - dma_alloc_coherent(NULL, digital_lpbk_cnxt.data_size, - &digital_lpbk_cnxt.buffer.addr, - GFP_KERNEL); - if (NULL == digital_lpbk_cnxt.buffer.area) { - printk("\n dma_alloc_coherent failed \n"); - } -#if DRIVER_DEBUG > 0 - { - dump_msp_registers(); - dump_acodec_registers(); - } -#endif - -#ifdef CONFIG_U8500_ACODEC_POLL - { - pid_t pid_rx_tx; - pid_rx_tx = - kernel_thread(digital_lpbk_msp_rx_tx_thread, - &digital_lpbk_cnxt, - CLONE_FS | CLONE_SIGHAND); - } -#elif defined(CONFIG_U8500_ACODEC_DMA) - { - u8500_digital_lpbk_dma_start(); - } -#endif - } else //lpbk is disable - { - - digital_lpbk_cnxt.rx_active = 0; - digital_lpbk_cnxt.tx_active = 0; - - dma_free_coherent(NULL, digital_lpbk_cnxt.data_size, - digital_lpbk_cnxt.buffer.area, - digital_lpbk_cnxt.buffer.addr); - - u8500_acodec_set_src_power_cntrl - (AB8500_CODEC_SRC_D_MICROPHONE_1, DISABLE); - u8500_acodec_set_src_power_cntrl - (AB8500_CODEC_SRC_D_MICROPHONE_2, DISABLE); - u8500_acodec_set_src_power_cntrl - (AB8500_CODEC_SRC_D_MICROPHONE_3, DISABLE); - u8500_acodec_set_src_power_cntrl - (AB8500_CODEC_SRC_D_MICROPHONE_4, DISABLE); - - u8500_acodec_set_dest_power_cntrl(AB8500_CODEC_DEST_HEADSET, - DISABLE); - u8500_acodec_set_dest_power_cntrl(AB8500_CODEC_DEST_HANDSFREE, - DISABLE); - - u8500_acodec_unsetuser(USER_ALSA); - u8500_acodec_close(I2S_CLIENT_MSP1, ACODEC_DISABLE_ALL); - } - return codec_error; -} - -t_ab8500_codec_error perform_src_routing(t_ab8500_codec_src input_device) -{ - int src_type = 0; - t_ab8500_codec_cr31_to_cr46_ad_data_allocation ad_data_line1; - t_ab8500_codec_cr31_to_cr46_ad_data_allocation ad_data_line2; - t_ab8500_codec_src input_device1; - t_ab8500_codec_src input_device2; - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - switch (input_device) { - case AB8500_CODEC_SRC_D_MICROPHONE_1: - { - src_type = MONO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT1; - } - break; - case AB8500_CODEC_SRC_MICROPHONE_2: - case AB8500_CODEC_SRC_D_MICROPHONE_2: - { - src_type = MONO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT2; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_3: - case AB8500_CODEC_SRC_MICROPHONE_1A: - case AB8500_CODEC_SRC_MICROPHONE_1B: - { - src_type = MONO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT3; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_4: - { - src_type = MONO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT4; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_5: - { - src_type = MONO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT5; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_6: - { - src_type = MONO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT6; - } - break; - case AB8500_CODEC_SRC_LINEIN: - { - src_type = STEREO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT1; - ad_data_line2 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT2; - input_device1 = AB8500_CODEC_SRC_LINEIN; - input_device2 = AB8500_CODEC_SRC_LINEIN; - } - break; -#ifdef CONFIG_U8500_AB8500_CUT10 - case AB8500_CODEC_SRC_D_MICROPHONE_12: - { - src_type = STEREO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT1; - ad_data_line2 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT2; - input_device1 = AB8500_CODEC_SRC_D_MICROPHONE_1; - input_device2 = AB8500_CODEC_SRC_D_MICROPHONE_2; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_34: - { - src_type = STEREO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT3; - ad_data_line2 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT4; - input_device1 = AB8500_CODEC_SRC_D_MICROPHONE_3; - input_device2 = AB8500_CODEC_SRC_D_MICROPHONE_4; - } - break; - case AB8500_CODEC_SRC_D_MICROPHONE_56: - { - src_type = STEREO_SRC; - ad_data_line1 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT5; - ad_data_line2 = - AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT6; - input_device1 = AB8500_CODEC_SRC_D_MICROPHONE_5; - input_device2 = AB8500_CODEC_SRC_D_MICROPHONE_6; - } - break; -#endif /* #ifdef CONFIG_U8500_AB8500_CUT10 */ - } - if (STEREO_SRC == src_type) { - u8500_acodec_allocate_all_stereo_slots(ad_data_line1, - ad_data_line2); - codec_error = - AB8500_CODEC_SrcPowerControl(input_device1, - AB8500_CODEC_SRC_STATE_ENABLE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_SrcPowerControl failed\n"); - return AB8500_CODEC_ERROR; - } - g_codec_system_context.input_config[input_device1].power_state = - ENABLE; - - u8500_acodec_set_input_volume(input_device1, 50, 50, USER_ALSA); - - codec_error = - AB8500_CODEC_SrcPowerControl(input_device2, - AB8500_CODEC_SRC_STATE_ENABLE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_SrcPowerControl failed\n"); - return AB8500_CODEC_ERROR; - } - g_codec_system_context.input_config[input_device2].power_state = - ENABLE; - - u8500_acodec_set_input_volume(input_device2, 50, 50, USER_ALSA); - } else { - u8500_acodec_allocate_all_mono_slots(ad_data_line1); - codec_error = - AB8500_CODEC_SrcPowerControl(input_device, - AB8500_CODEC_SRC_STATE_ENABLE); - if (AB8500_CODEC_OK != codec_error) { - stm_error("AB8500_CODEC_SrcPowerControl failed\n"); - return AB8500_CODEC_ERROR; - } - g_codec_system_context.input_config[input_device].power_state = - ENABLE; - - u8500_acodec_set_input_volume(input_device, 50, 50, USER_ALSA); - } - return AB8500_CODEC_OK; -} - -t_ab8500_codec_error - u8500_acodec_allocate_all_mono_slots - (t_ab8500_codec_cr31_to_cr46_ad_data_allocation ad_data_line1) { - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - int i; - - for (i = AB8500_CODEC_SLOT0; i <= AB8500_CODEC_SLOT7; i++) { - codec_error = AB8500_CODEC_ADSlotAllocation(i, ad_data_line1); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_adslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - return AB8500_CODEC_OK; -} - -t_ab8500_codec_error - u8500_acodec_allocate_all_stereo_slots - (t_ab8500_codec_cr31_to_cr46_ad_data_allocation ad_data_line1, - t_ab8500_codec_cr31_to_cr46_ad_data_allocation ad_data_line2) { - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - int i; - - for (i = AB8500_CODEC_SLOT0; i <= AB8500_CODEC_SLOT7; i += 2) { - codec_error = AB8500_CODEC_ADSlotAllocation(i, ad_data_line1); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_adslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - codec_error = - AB8500_CODEC_ADSlotAllocation(i + 1, ad_data_line2); - if (AB8500_CODEC_OK != codec_error) { - stm_error("ab8500_codec_adslot_allocation failed\n"); - return AB8500_CODEC_ERROR; - } - } - return AB8500_CODEC_OK; -} - -#ifdef CONFIG_U8500_AB8500_CUT10 -t_ab8500_codec_error -u8500_acodec_set_burst_mode_fifo(t_u8500_pmc_rendering_state fifo_state) -{ - -} -#else -t_ab8500_codec_error -u8500_acodec_set_burst_mode_fifo(t_u8500_pmc_rendering_state fifo_state) -{ - t_ab8500_codec_error ab8500_codec_error; - t_ab8500_codec_burst_fifo_config burst_fifo_config; - - if (RENDERING_ENABLE == fifo_state) { - burst_fifo_config.cr104_bfifoint = 0x1; - burst_fifo_config.cr105_bfifotx = 0xC0; - burst_fifo_config.cr106_bfifofsext = - AB8500_CODEC_CR106_BFIFOFSEXT_6SLOT_EXTRA_CLK; - burst_fifo_config.cr106_bfifomsk = - AB8500_CODEC_CR106_BFIFOMSK_AD_DATA0_UNMASKED; - burst_fifo_config.cr106_bfifomstr = - AB8500_CODEC_CR106_BFIFOMSTR_MASTER_MODE; - burst_fifo_config.cr106_bfifostrt = - AB8500_CODEC_CR106_BFIFOSTRT_RUNNING; - burst_fifo_config.cr107_bfifosampnr = 0x100; - burst_fifo_config.cr108_bfifowakeup = 0x1; - - ab8500_codec_error = - AB8500_CODEC_ConfigureBurstFifo(&burst_fifo_config); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return ab8500_codec_error; - } - - ab8500_codec_error = AB8500_CODEC_EnableBurstFifo(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return ab8500_codec_error; - } - - printk("\n Burst mode activated\n"); - } else if (RENDERING_DISABLE == fifo_state) { - ab8500_codec_error = AB8500_CODEC_DisableBurstFifo(); - if (AB8500_CODEC_OK != ab8500_codec_error) { - return ab8500_codec_error; - } - printk("\n Burst mode deactivated\n"); - } - return AB8500_CODEC_OK; -} -#endif -/** -* u8500_acodec_set_user -* -* Set the current user for acodec. -*/ - -t_ab8500_codec_error u8500_acodec_setuser(t_acodec_user user) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - FUNC_ENTER(); - - if ((g_codec_system_context.cur_user == NO_USER) - || (g_codec_system_context.cur_user == user)) - g_codec_system_context.cur_user = user; - else { - stm_error - (" Trying to acces audiocodec already in use by user %d\n", - g_codec_system_context.cur_user); - return AB8500_CODEC_ERROR; - } - FUNC_EXIT(); - return (codec_error); -} - -/** -* u8500_acodec_unset_user -* -* Unset the current user for acodec. -*/ - -t_ab8500_codec_error u8500_acodec_unsetuser(t_acodec_user user) -{ - t_ab8500_codec_error codec_error = AB8500_CODEC_OK; - - if (g_codec_system_context.cur_user != user) { - stm_error - (" Trying to free audiocodec already in use by other user %d\n", - g_codec_system_context.cur_user); - return AB8500_CODEC_ERROR; - } else - g_codec_system_context.cur_user = NO_USER; - - return (codec_error); -} - -#if DRIVER_DEBUG > 0 -t_ab8500_codec_error dump_acodec_registers() -{ - u8 i; - - for (i = 0; i <= 0x6D; i++) - stm_dbg(DBG_ST.acodec, "block=0x0D, adr=%x = %x\n", i, - ab8500_read(AB8500_AUDIO, i)); - - /*for (i = 0; i < 0x5e; i++) - stm_dbg(DBG_ST.acodec,"\n block 1,reg =%d val %x", i, ab8500_read(AB8500_AUDIO, i)); - */ - return 0; -} - -t_ab8500_codec_error dump_msp_registers() -{ - int i; - - stm_dbg(DBG_ST.acodec, "\nMSP_1 base add = 0x%x\n", - (unsigned int)U8500_MSP1_BASE); - - for (i = 0; i < 0x40; i += 4) - stm_dbg(DBG_ST.acodec, "msp[0x%x]=0x%x\n", i, - readl((char *)(IO_ADDRESS(U8500_MSP1_BASE) + i))); - - return 0; -} - -EXPORT_SYMBOL(dump_msp_registers); -EXPORT_SYMBOL(dump_acodec_registers); -#endif - -/** -* u8500_acodec_powerdown -* -* This function power off the audio codec. -*/ -void u8500_acodec_powerdown() -{ - AB8500_CODEC_PowerDown(); -} - -/** -* u8500_acodec_init -* -* This is the init function for STW5098 audiocodec driver. -*/ - -static int i2sdrv_probe(struct i2s_device *i2s) -{ - - /* Allocate driver data */ - try_module_get(i2s->controller->dev.parent->driver->owner); - - /* Allocate memory to i2sdrv structure */ - i2sdrv[i2s->chip_select] = - kzalloc(sizeof(*i2sdrv[i2s->chip_select]), GFP_KERNEL); - if (!i2sdrv[i2s->chip_select]) - return -ENOMEM; - - /* Initialize the driver data */ - i2sdrv[i2s->chip_select]->i2s = i2s; - i2sdrv[i2s->chip_select]->flag = -1; - i2sdrv[i2s->chip_select]->tx_status = 0; - i2sdrv[i2s->chip_select]->rx_status = 0; - spin_lock_init(&i2sdrv[i2s->chip_select]->i2s_lock); - - i2s_set_drvdata(i2s, (void *)i2sdrv[i2s->chip_select]); - return 0; -} - -static int i2sdrv_remove(struct i2s_device *i2s) -{ - struct i2sdrv_data *i2sdrv = i2s_get_drvdata(i2s); - - spin_lock_irq(&i2sdrv->i2s_lock); - i2sdrv->i2s = NULL; - i2s_set_drvdata(i2s, NULL); - spin_unlock_irq(&i2sdrv->i2s_lock); - - stm_dbg(DBG_ST.acodec, "Entering AUDIOTRG_CODEC_DeIni\n"); - stm_dbg(DBG_ST.acodec, "leaving AUDIOTRG_CODEC_DeIni\n"); - module_put(i2s->controller->dev.parent->driver->owner); - printk("Remove of I2S gets called\n"); - return 0; -} -static const struct i2s_device_id acodec_id_table[] = { - {"i2s_device.2", 0, 0}, - {"i2s_device.1", 0, 0}, - {}, -}; - -MODULE_DEVICE_TABLE(i2s, acodec_id_table); - -static struct i2s_driver i2sdrv_i2s = { - .driver = { - .name = "u8500_acodec", - .owner = THIS_MODULE, - }, - .probe = i2sdrv_probe, - .remove = __devexit_p(i2sdrv_remove), - .id_table = acodec_id_table, - -}; - -static void ab8500_codec_power_init(void) -{ - __u8 data, old_data; - - old_data = - ab8500_read(AB8500_SYS_CTRL2_BLOCK, (AB8500_CTRL3_REG & 0xFF)); - - data = 0xFE & old_data; - ab8500_write(AB8500_SYS_CTRL2_BLOCK, (AB8500_CTRL3_REG & 0xFF), data); //0x0200 - - data = 0x02 | old_data; - ab8500_write(AB8500_SYS_CTRL2_BLOCK, (AB8500_CTRL3_REG & 0xFF), data); //0x0200 - - old_data = - ab8500_read(AB8500_SYS_CTRL2_BLOCK, - (AB8500_SYSULPCLK_CTRL1_REG & 0xFF)); -#ifdef CONFIG_U8500_AB8500_CUT10 - data = 0x18 | old_data; -#else - data = 0x10 | old_data; -#endif - ab8500_write(AB8500_SYS_CTRL2_BLOCK, (AB8500_SYSULPCLK_CTRL1_REG & 0xFF), data); //0x020B - - old_data = - ab8500_read(AB8500_REGU_CTRL1, (AB8500_REGU_MISC1_REG & 0xFF)); - data = 0x04 | old_data; - ab8500_write(AB8500_REGU_CTRL1, (AB8500_REGU_MISC1_REG & 0xFF), data); //0x380 - - old_data = - ab8500_read(AB8500_REGU_CTRL1, - (AB8500_REGU_VAUDIO_SUPPLY_REG & 0xFF)); - data = 0x5E | old_data; - ab8500_write(AB8500_REGU_CTRL1, (AB8500_REGU_VAUDIO_SUPPLY_REG & 0xFF), data); //0x0383 - -#ifdef CONFIG_U8500_AB8500_CUT10 - old_data = ab8500_read(AB8500_MISC, (AB8500_GPIO_DIR4_REG & 0xFF)); - data = 0x54 | old_data; - ab8500_write(AB8500_MISC, (AB8500_GPIO_DIR4_REG & 0xFF), data); //0x1013 -#endif -} - -/** -* u8500_acodec_deinit -* -* exit function for STW5098 audiocodec driver. -*/ -static int check_device_id() -{ - __u8 data; - - data = ab8500_read(AB8500_MISC, (0x80 & 0xFF)); - if (((data & 0xF0) == 0x10) || ((data & 0xF0) == 0x11)) { - /* V1 version */ -#ifndef CONFIG_U8500_AB8500_CUT10 - printk("ERROR: AB8500 hardware detected is CUT1x\n"); - return -ENODEV; -#endif - } else { -#ifndef CONFIG_U8500_AB8500_ED - /* ED version */ - printk("ERROR: AB8500 hardware detected is EarlyDrop\n"); - return -ENODEV; -#endif - } - return 0; -} - -static int __init u8500_acodec_init(void) -{ - int status, ret_val; - t_ab8500_codec_error error; - - ret_val = check_device_id(); - if (0 != ret_val) - return ret_val; - - status = i2s_register_driver(&i2sdrv_i2s); - if (status < 0) { - printk("Unable to register i2s driver\n"); - return status; - } - - /*Initialize Audiocodec */ - - ab8500_codec_power_init(); - - AB8500_CODEC_Init(TRG_CODEC_ADDRESS_ON_SPI_BUS); - - /* Reset CODEC */ - error = AB8500_CODEC_Reset(); - if (AB8500_CODEC_OK != error) { - stm_error("Error in AB8500_CODEC_Reset\n"); - return -1; - } - - stm_dbg(DBG_ST.acodec, " leaving u8500_acodec_init() \n"); - return 0; -} - -static void __exit u8500_acodec_deinit(void) -{ - stm_dbg(DBG_ST.acodec, "Entering AUDIOTRG_CODEC_DeIni\n"); - stm_dbg(DBG_ST.acodec, "leaving AUDIOTRG_CODEC_DeIni\n"); - i2s_unregister_driver(&i2sdrv_i2s); -} - -module_init(u8500_acodec_init); -module_exit(u8500_acodec_deinit); - -MODULE_LICENSE("GPL"); -MODULE_DESCRIPTION("AB8500 stw5098 audiocodec driver"); - -/* exported function by audiocodec to be used by SAA driver and ALSA driver */ - -EXPORT_SYMBOL(u8500_acodec_open); -EXPORT_SYMBOL(u8500_acodec_close); -EXPORT_SYMBOL(u8500_acodec_send_data); -EXPORT_SYMBOL(u8500_acodec_receive_data); -EXPORT_SYMBOL(u8500_acodec_rates); -EXPORT_SYMBOL(u8500_acodec_powerdown); -EXPORT_SYMBOL(u8500_acodec_setuser); -EXPORT_SYMBOL(u8500_acodec_unsetuser); -EXPORT_SYMBOL(u8500_acodec_enable_audio_mode); -//EXPORT_SYMBOL(u8500_acodec_enable_voice_mode); -EXPORT_SYMBOL(u8500_acodec_get_output_volume); -EXPORT_SYMBOL(u8500_acodec_get_input_volume); -EXPORT_SYMBOL(u8500_acodec_set_output_volume); -EXPORT_SYMBOL(u8500_acodec_set_input_volume); -EXPORT_SYMBOL(u8500_acodec_select_input); -EXPORT_SYMBOL(u8500_acodec_select_output); - -t_ab8500_codec_error AB8500_CODEC_Write(IN t_uint8 register_offset, - IN t_uint8 count, IN t_uint8 * ptr_data) -{ - int i; - u32 address; - - for (i = 0; i < count; i++) { - address = (AB8500_AUDIO << 8) | (register_offset + i); - ab8500_write(AB8500_AUDIO, address, ptr_data[i]); - } - return AB8500_CODEC_OK; -} - -t_ab8500_codec_error AB8500_CODEC_Read(IN t_uint8 register_offset, - IN t_uint8 count, - IN t_uint8 * dummy_data, - IN t_uint8 * ptr_data) -{ - int i; - u32 address; - - dummy_data = dummy_data; /*keep compiler happy */ - - for (i = 0; i < count; i++) { - address = (AB8500_AUDIO << 8) | (register_offset + i); - ptr_data[i] = ab8500_read(AB8500_AUDIO, address); - } - - return AB8500_CODEC_OK; -} - -EXPORT_SYMBOL(u8500_acodec_set_src_power_cntrl); -EXPORT_SYMBOL(u8500_acodec_set_burst_mode_fifo); -EXPORT_SYMBOL(u8500_acodec_get_dest_power_state); -EXPORT_SYMBOL(lpbk_state_in_texts); -EXPORT_SYMBOL(u8500_acodec_toggle_playback_mute_control); -EXPORT_SYMBOL(u8500_acodec_set_dest_power_cntrl); -EXPORT_SYMBOL(power_state_in_texts); -EXPORT_SYMBOL(u8500_acodec_toggle_capture_mute_control); -EXPORT_SYMBOL(u8500_acodec_toggle_analog_lpbk); -EXPORT_SYMBOL(u8500_acodec_toggle_digital_lpbk); -EXPORT_SYMBOL(tdm_mode_state_in_texts); -EXPORT_SYMBOL(switch_state_in_texts); -EXPORT_SYMBOL(pcm_rendering_state_in_texts); -EXPORT_SYMBOL(direct_rendering_state_in_texts); -EXPORT_SYMBOL(u8500_acodec_get_src_power_state); -EXPORT_SYMBOL(i2sdrv); -EXPORT_SYMBOL(second_config); |