summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Aaberg <jonas.aberg@stericsson.com>2011-10-04 11:18:22 +0200
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:04:58 +0200
commitf85797423b063802bade171cb7ba607c000f01f3 (patch)
tree39a9cbaf3c1d55273ac56c2434bc26cce4aee6fe
parente61a305cb2830e8101e035082b917d772ccd5ae7 (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>
-rw-r--r--arch/arm/mach-ux500/include/mach/ab8500_codec.h327
-rw-r--r--arch/arm/mach-ux500/include/mach/ab8500_codec_p.h3082
-rw-r--r--arch/arm/mach-ux500/include/mach/ab8500_codec_p_v1_0.h3037
-rw-r--r--arch/arm/mach-ux500/include/mach/ab8500_codec_v1_0.h329
-rw-r--r--arch/arm/mach-ux500/include/mach/ste_audio_io_ioctl.h234
-rw-r--r--arch/arm/mach-ux500/include/mach/ste_audio_io_vibrator.h37
-rw-r--r--arch/arm/mach-ux500/include/mach/u8500_acodec_ab8500.h284
-rw-r--r--drivers/misc/audio_io_dev/Kconfig11
-rw-r--r--drivers/misc/audio_io_dev/Makefile9
-rw-r--r--drivers/misc/audio_io_dev/ste_audio_io_ab8500_reg_defs.h349
-rw-r--r--drivers/misc/audio_io_dev/ste_audio_io_core.c1589
-rw-r--r--drivers/misc/audio_io_dev/ste_audio_io_core.h138
-rw-r--r--drivers/misc/audio_io_dev/ste_audio_io_dev.c759
-rw-r--r--drivers/misc/audio_io_dev/ste_audio_io_dev.h32
-rw-r--r--drivers/misc/audio_io_dev/ste_audio_io_func.c4371
-rw-r--r--drivers/misc/audio_io_dev/ste_audio_io_func.h358
-rw-r--r--drivers/misc/audio_io_dev/ste_audio_io_hwctrl_common.c189
-rw-r--r--drivers/misc/audio_io_dev/ste_audio_io_hwctrl_common.h50
-rw-r--r--sound/Kconfig60
-rw-r--r--sound/Makefile7
-rw-r--r--sound/ab8500_codec.c6697
-rw-r--r--sound/ab8500_codec_v1_0.c6405
-rw-r--r--sound/u8500_acodec_ab8500.c2523
23 files changed, 0 insertions, 30877 deletions
diff --git a/arch/arm/mach-ux500/include/mach/ab8500_codec.h b/arch/arm/mach-ux500/include/mach/ab8500_codec.h
deleted file mode 100644
index d45dea66b5d..00000000000
--- a/arch/arm/mach-ux500/include/mach/ab8500_codec.h
+++ /dev/null
@@ -1,327 +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 Public header file for AB8500 Codec
-* \author ST-Ericsson
-*/
-/*****************************************************************************/
-
-#ifndef _AB8500_CODEC_H_
-#define _AB8500_CODEC_H_
-
-/*---------------------------------------------------------------------
- * Includes
- *--------------------------------------------------------------------*/
-#include "hcl_defs.h"
-#include "debug.h"
-#include <mach/ab8500_codec_p.h>
-
-/*---------------------------------------------------------------------
- * Define
- *--------------------------------------------------------------------*/
-#ifdef __cplusplus
-extern "C" {
-#endif
- typedef enum {
- AB8500_CODEC_OK,
- AB8500_CODEC_ERROR,
- AB8500_CODEC_UNSUPPORTED_FEATURE,
- AB8500_CODEC_INVALID_PARAMETER,
- AB8500_CODEC_CONFIG_NOT_COHERENT,
- AB8500_CODEC_TRANSACTION_FAILED
- } t_ab8500_codec_error;
-
- typedef enum {
- AB8500_CODEC_MASTER_MODE_DISABLE,
- AB8500_CODEC_MASTER_MODE_ENABLE
- } t_ab8500_codec_master_mode;
-
- typedef enum {
- AB8500_CODEC_SLOT0,
- AB8500_CODEC_SLOT1,
- AB8500_CODEC_SLOT2,
- AB8500_CODEC_SLOT3,
- AB8500_CODEC_SLOT4,
- AB8500_CODEC_SLOT5,
- AB8500_CODEC_SLOT6,
- AB8500_CODEC_SLOT7,
- AB8500_CODEC_SLOT8,
- AB8500_CODEC_SLOT9,
- AB8500_CODEC_SLOT10,
- AB8500_CODEC_SLOT11,
- AB8500_CODEC_SLOT12,
- AB8500_CODEC_SLOT13,
- AB8500_CODEC_SLOT14,
- AB8500_CODEC_SLOT15,
- AB8500_CODEC_SLOT16,
- AB8500_CODEC_SLOT17,
- AB8500_CODEC_SLOT18,
- AB8500_CODEC_SLOT19,
- AB8500_CODEC_SLOT20,
- AB8500_CODEC_SLOT21,
- AB8500_CODEC_SLOT22,
- AB8500_CODEC_SLOT23,
- AB8500_CODEC_SLOT24,
- AB8500_CODEC_SLOT25,
- AB8500_CODEC_SLOT26,
- AB8500_CODEC_SLOT27,
- AB8500_CODEC_SLOT28,
- AB8500_CODEC_SLOT29,
- AB8500_CODEC_SLOT30,
- AB8500_CODEC_SLOT31,
- AB8500_CODEC_SLOT_UNDEFINED
- } t_ab8500_codec_slot;
-
- typedef enum {
- AB8500_CODEC_DA_CHANNEL_NUMBER_1,
- AB8500_CODEC_DA_CHANNEL_NUMBER_2,
- AB8500_CODEC_DA_CHANNEL_NUMBER_3,
- AB8500_CODEC_DA_CHANNEL_NUMBER_4,
- AB8500_CODEC_DA_CHANNEL_NUMBER_5,
- AB8500_CODEC_DA_CHANNEL_NUMBER_6,
- AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED
- } t_ab8500_codec_da_channel_number;
-
- typedef enum {
- AB8500_CODEC_SRC_STATE_DISABLE,
- AB8500_CODEC_SRC_STATE_ENABLE
- } t_ab8500_codec_src_state;
-
- typedef enum {
- AB8500_CODEC_DEST_STATE_DISABLE,
- AB8500_CODEC_DEST_STATE_ENABLE
- } t_ab8500_codec_dest_state;
-
- typedef struct {
- t_ab8500_codec_cr27_if1_bitclk_osr cr27_if1_bitclk_osr;
- t_ab8500_codec_cr27_if0_bitclk_osr cr27_if0_bitclk_osr;
- t_ab8500_codec_cr28_if0wl cr28_if0wl;
- t_ab8500_codec_cr30_if1wl cr30_if1wl;
- t_ab8500_codec_cr28_bitclk0p cr28_bitclk0p;
- t_ab8500_codec_cr28_if0del cr28_if0del;
- } t_ab8500_codec_tdm_config;
-
- typedef struct {
- t_ab8500_codec_cr104_bfifoint cr104_bfifoint;
- t_ab8500_codec_cr105_bfifotx cr105_bfifotx;
- t_ab8500_codec_cr106_bfifofsext cr106_bfifofsext;
- t_ab8500_codec_cr106_bfifomsk cr106_bfifomsk;
- t_ab8500_codec_cr106_bfifomstr cr106_bfifomstr;
- t_ab8500_codec_cr106_bfifostrt cr106_bfifostrt;
- t_ab8500_codec_cr107_bfifosampnr cr107_bfifosampnr;
- t_ab8500_codec_cr108_bfifowakeup cr108_bfifowakeup;
- } t_ab8500_codec_burst_fifo_config;
-
-/************************************************************/
-/*---------------------------------------------------------------------
- * Exported APIs
- *--------------------------------------------------------------------*/
-/* Initialization */
- t_ab8500_codec_error AB8500_CODEC_Init(IN t_uint8
- slave_address_of_codec);
- t_ab8500_codec_error AB8500_CODEC_Reset(void);
-
-/* Audio Codec basic configuration */
- 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_SelectInput(IN t_ab8500_codec_src
- ab8500_codec_src);
- t_ab8500_codec_error AB8500_CODEC_SelectOutput(IN t_ab8500_codec_dest
- ab8500_codec_dest);
-
-/* Burst FIFO configuration */
- t_ab8500_codec_error AB8500_CODEC_ConfigureBurstFifo(IN
- t_ab8500_codec_burst_fifo_config
- const *const
- p_burst_fifo_config);
- t_ab8500_codec_error AB8500_CODEC_EnableBurstFifo(void);
- t_ab8500_codec_error AB8500_CODEC_DisableBurstFifo(void);
-
-/* Audio Codec Master mode configuration */
- t_ab8500_codec_error AB8500_CODEC_SetMasterMode(IN
- t_ab8500_codec_master_mode
- mode);
-
-/* APIs to be implemented by user */
- t_ab8500_codec_error AB8500_CODEC_Write(IN t_uint8 register_offset,
- IN t_uint8 count,
- IN t_uint8 * p_data);
- t_ab8500_codec_error AB8500_CODEC_Read(IN t_uint8 register_offset,
- IN t_uint8 count,
- IN t_uint8 * p_dummy_data,
- IN t_uint8 * p_data);
-
-/* Volume Management */
- 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_SetDestVolume(IN t_ab8500_codec_dest
- dest_device,
- IN t_uint8
- out_left_volume,
- IN t_uint8
- out_right_volume);
-
-/* Power management */
- t_ab8500_codec_error AB8500_CODEC_PowerDown(void);
- t_ab8500_codec_error AB8500_CODEC_PowerUp(void);
-
-/* Interface Management */
- t_ab8500_codec_error AB8500_CODEC_SelectInterface(IN
- t_ab8500_codec_audio_interface
- audio_interface);
- t_ab8500_codec_error AB8500_CODEC_GetInterface(OUT
- t_ab8500_codec_audio_interface
- * p_audio_interface);
-
-/* Slot Allocation */
- 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_DASlotAllocation(IN
- t_ab8500_codec_da_channel_number
- channel_number,
- IN
- t_ab8500_codec_cr51_to_cr56_sltoda
- slot);
-
-/* Loopback Management */
- 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_RemoveAnalogLoopback(void);
-
-/* Bypass Management */
- t_ab8500_codec_error AB8500_CODEC_EnableBypassMode(void);
- t_ab8500_codec_error AB8500_CODEC_DisableBypassMode(void);
-
-/* Power Control Management */
- 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_DestPowerControl(IN
- t_ab8500_codec_dest
- dest_device,
- t_ab8500_codec_dest_state
- state);
-
-/* Version Management */
- t_ab8500_codec_error AB8500_CODEC_GetVersion(OUT t_version * p_version);
-
-#if 0
-/* Debug management */
- t_ab8500_codec_error AB8500_CODEC_SetDbgLevel(IN t_dbg_level dbg_level);
- t_ab8500_codec_error AB8500_CODEC_GetDbgLevel(OUT t_dbg_level *
- p_dbg_level);
-#endif
-
-/*
-** following is added by $kardad$
-*/
-
-/* duplicate copy of enum from msp.h */
-/* for MSPConfiguration.in_clock_freq parameter to select msp clock freq */
- typedef enum {
- CODEC_MSP_INPUT_FREQ_1MHZ = 1024,
- CODEC_MSP_INPUT_FREQ_2MHZ = 2048,
- CODEC_MSP_INPUT_FREQ_3MHZ = 3072,
- CODEC_MSP_INPUT_FREQ_4MHZ = 4096,
- CODEC_MSP_INPUT_FREQ_5MHZ = 5760,
- CODEC_MSP_INPUT_FREQ_6MHZ = 6144,
- CODEC_MSP_INPUT_FREQ_8MHZ = 8192,
- CODEC_MSP_INPUT_FREQ_11MHZ = 11264,
- CODEC_MSP_INPUT_FREQ_12MHZ = 12288,
- CODEC_MSP_INPUT_FREQ_16MHZ = 16384,
- CODEC_MSP_INPUT_FREQ_22MHZ = 22579,
- CODEC_MSP_INPUT_FREQ_24MHZ = 24576,
- CODEC_MSP_INPUT_FREQ_48MHZ = 49152
- } codec_msp_in_clock_freq_type;
-
-/* msp clock source internal/external for srg_clock_sel */
- typedef enum {
- CODEC_MSP_APB_CLOCK = 0,
- CODEC_MSP_SCK_CLOCK = 2,
- CODEC_MSP_SCK_SYNC_CLOCK = 3
- } codec_msp_srg_clock_sel_type;
-
-/* Sample rate supported by Codec */
-
- typedef enum {
- CODEC_FREQUENCY_DONT_CHANGE = -100,
- CODEC_SAMPLING_FREQ_RESET = -1,
- CODEC_SAMPLING_FREQ_MINLIMIT = 7,
- CODEC_SAMPLING_FREQ_8KHZ = 8, /*default */
- CODEC_SAMPLING_FREQ_11KHZ = 11,
- CODEC_SAMPLING_FREQ_12KHZ = 12,
- CODEC_SAMPLING_FREQ_16KHZ = 16,
- CODEC_SAMPLING_FREQ_22KHZ = 22,
- CODEC_SAMPLING_FREQ_24KHZ = 24,
- CODEC_SAMPLING_FREQ_32KHZ = 32,
- CODEC_SAMPLING_FREQ_44KHZ = 44,
- CODEC_SAMPLING_FREQ_48KHZ = 48,
- CODEC_SAMPLING_FREQ_64KHZ = 64, /*the frequencies below this line are not supported in stw5094A */
- CODEC_SAMPLING_FREQ_88KHZ = 88,
- CODEC_SAMPLING_FREQ_96KHZ = 96,
- CODEC_SAMPLING_FREQ_128KHZ = 128,
- CODEC_SAMPLING_FREQ_176KHZ = 176,
- CODEC_SAMPLING_FREQ_192KHZ = 192,
- CODEC_SAMPLING_FREQ_MAXLIMIT = 193
- } t_codec_sample_frequency;
-
-#define RESET -1
-#define DEFAULT -100
-/***********************************************************/
-/*
-** following stuff is added to compile code without debug print support $kardad$
-*/
-
-#define DBGEXIT(cr)
-#define DBGEXIT0(cr)
-#define DBGEXIT1(cr,ch,p1)
-#define DBGEXIT2(cr,ch,p1,p2)
-#define DBGEXIT3(cr,ch,p1,p2,p3)
-#define DBGEXIT4(cr,ch,p1,p2,p3,p4)
-#define DBGEXIT5(cr,ch,p1,p2,p3,p4,p5)
-#define DBGEXIT6(cr,ch,p1,p2,p3,p4,p5,p6)
-
-#define DBGENTER()
-#define DBGENTER0()
-#define DBGENTER1(ch,p1)
-#define DBGENTER2(ch,p1,p2)
-#define DBGENTER3(ch,p1,p2,p3)
-#define DBGENTER4(ch,p1,p2,p3,p4)
-#define DBGENTER5(ch,p1,p2,p3,p4,p5)
-#define DBGENTER6(ch,p1,p2,p3,p4,p5,p6)
-
-#define DBGPRINT(dbg_level,dbg_string)
-#define DBGPRINTHEX(dbg_level,dbg_string,uint32)
-#define DBGPRINTDEC(dbg_level,dbg_string,uint32)
-/***********************************************************/
-
-#ifdef __cplusplus
-} /* allow C++ to use these headers */
-#endif /* __cplusplus */
-#endif /* _AB8500_CODEC_H_ */
-/* End of file ab8500_codec.h*/
diff --git a/arch/arm/mach-ux500/include/mach/ab8500_codec_p.h b/arch/arm/mach-ux500/include/mach/ab8500_codec_p.h
deleted file mode 100644
index 847a1729e44..00000000000
--- a/arch/arm/mach-ux500/include/mach/ab8500_codec_p.h
+++ /dev/null
@@ -1,3082 +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 Private Header file for AB8500 CODEC
-* \author ST-Ericsson
- */
-/*****************************************************************************/
-
-#ifndef _AB8500_CODECP_H_
-#define _AB8500_CODECP_H_
-
-/*----------------------------------------------------------------------------
- * Includes
- *---------------------------------------------------------------------------*/
-#include "hcl_defs.h"
-
-#define AB8500_CODEC_HCL_VERSION_ID 2
-#define AB8500_CODEC_HCL_MAJOR_ID 0
-#define AB8500_CODEC_HCL_MINOR_ID 0
-
-#define AB8500_CODEC_MASK_ONE_BIT 0x1UL
-#define AB8500_CODEC_MASK_TWO_BITS 0x3UL
-#define AB8500_CODEC_MASK_THREE_BITS 0x7UL
-#define AB8500_CODEC_MASK_FOUR_BITS 0xFUL
-#define AB8500_CODEC_MASK_FIVE_BITS 0x1FUL
-#define AB8500_CODEC_MASK_SIX_BITS 0x3FUL
-#define AB8500_CODEC_MASK_SEVEN_BITS 0x7FUL
-#define AB8500_CODEC_MASK_EIGHT_BITS 0xFFUL
-
-#define AB8500_CODEC_WRITE_BITS(reg, val, bit_nb, pos) (reg) = ((t_uint8) ((((reg) & (~(bit_nb << pos))) | (((val) & bit_nb) << pos))))
-
-#define AB8500_CODEC_BLOCK 0x0D
-
-#define AB8500_CODEC_MASK_TWO_MS_BITS 0xC0UL
-#define AB8500_CODEC_MASK_SIX_LS_BITS 0x3FUL
-
-/* Genepi AudioCodec Control Registers */
-
-#define AB8500_CODEC_CR0 0x00
-#define AB8500_CODEC_CR1 0x01
-#define AB8500_CODEC_CR2 0x02
-#define AB8500_CODEC_CR3 0x03
-#define AB8500_CODEC_CR4 0x04
-#define AB8500_CODEC_CR5 0x05
-#define AB8500_CODEC_CR6 0x06
-#define AB8500_CODEC_CR7 0x07
-#define AB8500_CODEC_CR8 0x08
-#define AB8500_CODEC_CR9 0x09
-#define AB8500_CODEC_CR10 0x0A
-#define AB8500_CODEC_CR11 0x0B
-#define AB8500_CODEC_CR12 0x0C
-#define AB8500_CODEC_CR13 0x0D
-#define AB8500_CODEC_CR14 0x0E
-#define AB8500_CODEC_CR15 0x0F
-#define AB8500_CODEC_CR16 0x10
-#define AB8500_CODEC_CR17 0x11
-#define AB8500_CODEC_CR18 0x12
-#define AB8500_CODEC_CR19 0x13
-#define AB8500_CODEC_CR20 0x14
-#define AB8500_CODEC_CR21 0x15
-#define AB8500_CODEC_CR22 0x16
-#define AB8500_CODEC_CR23 0x17
-#define AB8500_CODEC_CR24 0x18
-#define AB8500_CODEC_CR25 0x19
-#define AB8500_CODEC_CR26 0x1A
-#define AB8500_CODEC_CR27 0x1B
-#define AB8500_CODEC_CR28 0x1C
-#define AB8500_CODEC_CR29 0x1D
-#define AB8500_CODEC_CR30 0x1E
-#define AB8500_CODEC_CR31 0x1F
-#define AB8500_CODEC_CR32 0x20
-#define AB8500_CODEC_CR33 0x21
-#define AB8500_CODEC_CR34 0x22
-#define AB8500_CODEC_CR35 0x23
-#define AB8500_CODEC_CR36 0x24
-#define AB8500_CODEC_CR37 0x25
-#define AB8500_CODEC_CR38 0x26
-#define AB8500_CODEC_CR39 0x27
-#define AB8500_CODEC_CR40 0x28
-#define AB8500_CODEC_CR41 0x29
-#define AB8500_CODEC_CR42 0x2A
-#define AB8500_CODEC_CR43 0x2B
-#define AB8500_CODEC_CR44 0x2C
-#define AB8500_CODEC_CR45 0x2D
-#define AB8500_CODEC_CR46 0x2E
-#define AB8500_CODEC_CR47 0x2F
-#define AB8500_CODEC_CR48 0x30
-#define AB8500_CODEC_CR49 0x31
-#define AB8500_CODEC_CR50 0x32
-#define AB8500_CODEC_CR51 0x33
-#define AB8500_CODEC_CR52 0x34
-#define AB8500_CODEC_CR53 0x35
-#define AB8500_CODEC_CR54 0x36
-#define AB8500_CODEC_CR55 0x37
-#define AB8500_CODEC_CR56 0x38
-#define AB8500_CODEC_CR57 0x39
-#define AB8500_CODEC_CR58 0x3A
-#define AB8500_CODEC_CR59 0x3B
-#define AB8500_CODEC_CR60 0x3C
-#define AB8500_CODEC_CR61 0x3D
-#define AB8500_CODEC_CR62 0x3E
-#define AB8500_CODEC_CR63 0x3F
-#define AB8500_CODEC_CR64 0x40
-#define AB8500_CODEC_CR65 0x41
-#define AB8500_CODEC_CR66 0x42
-#define AB8500_CODEC_CR67 0x43
-#define AB8500_CODEC_CR68 0x44
-#define AB8500_CODEC_CR69 0x45
-#define AB8500_CODEC_CR70 0x46
-#define AB8500_CODEC_CR71 0x47
-#define AB8500_CODEC_CR72 0x48
-#define AB8500_CODEC_CR73 0x49
-#define AB8500_CODEC_CR74 0x4A
-#define AB8500_CODEC_CR75 0x4B
-#define AB8500_CODEC_CR76 0x4C
-#define AB8500_CODEC_CR77 0x4D
-#define AB8500_CODEC_CR78 0x4E
-#define AB8500_CODEC_CR79 0x4F
-#define AB8500_CODEC_CR80 0x50
-#define AB8500_CODEC_CR81 0x51
-#define AB8500_CODEC_CR82 0x52
-#define AB8500_CODEC_CR83 0x53
-#define AB8500_CODEC_CR84 0x54
-#define AB8500_CODEC_CR85 0x55
-#define AB8500_CODEC_CR86 0x56
-#define AB8500_CODEC_CR87 0x57
-#define AB8500_CODEC_CR88 0x58
-#define AB8500_CODEC_CR89 0x59
-#define AB8500_CODEC_CR90 0x5A
-#define AB8500_CODEC_CR91 0x5B
-#define AB8500_CODEC_CR92 0x5C
-#define AB8500_CODEC_CR93 0x5D
-#define AB8500_CODEC_CR94 0x5E
-#define AB8500_CODEC_CR95 0x5F
-#define AB8500_CODEC_CR96 0x60
-#define AB8500_CODEC_CR97 0x61
-#define AB8500_CODEC_CR98 0x62
-#define AB8500_CODEC_CR99 0x63
-#define AB8500_CODEC_CR100 0x64
-#define AB8500_CODEC_CR101 0x65
-#define AB8500_CODEC_CR102 0x66
-#define AB8500_CODEC_CR103 0x67
-#define AB8500_CODEC_CR104 0x68
-#define AB8500_CODEC_CR105 0x69
-#define AB8500_CODEC_CR106 0x6A
-#define AB8500_CODEC_CR107 0x6B
-#define AB8500_CODEC_CR108 0x6C
-#define AB8500_CODEC_CR109 0x6D
-
-/* CR0-CR0x0000 */
-#define AB8500_CODEC_CR0_POWERUP 7
-#define AB8500_CODEC_CR0_ENAANA 3
-
-/* CR1-CR0x0001 */
-#define AB8500_CODEC_CR1_SWRESET 7
-
-/* CR2-CR0x0002 */
-#define AB8500_CODEC_CR2_ENAD1 7
-#define AB8500_CODEC_CR2_ENAD2 6
-#define AB8500_CODEC_CR2_ENAD3 5
-#define AB8500_CODEC_CR2_ENAD4 4
-#define AB8500_CODEC_CR2_ENAD5 3
-#define AB8500_CODEC_CR2_ENAD6 2
-
-/* CR3-CR0x0003 */
-#define AB8500_CODEC_CR3_ENDA1 7
-#define AB8500_CODEC_CR3_ENDA2 6
-#define AB8500_CODEC_CR3_ENDA3 5
-#define AB8500_CODEC_CR3_ENDA4 4
-#define AB8500_CODEC_CR3_ENDA5 3
-#define AB8500_CODEC_CR3_ENDA6 2
-
-/* CR4-CR0x0004 */
-#define AB8500_CODEC_CR4_LOWPOWHS 7
-#define AB8500_CODEC_CR4_LOWPOWDACHS 5
-#define AB8500_CODEC_CR4_LOWPOWEAR 4
-#define AB8500_CODEC_CR4_EAR_SEL_CM 2
-#define AB8500_CODEC_CR4_HS_HP_DIS 1
-#define AB8500_CODEC_CR4_EAR_HP_DIS 0
-
-/* CR5-CR0x0005 */
-#define AB8500_CODEC_CR5_ENMIC1 7
-#define AB8500_CODEC_CR5_ENMIC2 6
-#define AB8500_CODEC_CR5_ENLINL 5
-#define AB8500_CODEC_CR5_ENLINR 4
-#define AB8500_CODEC_CR5_MUTMIC1 3
-#define AB8500_CODEC_CR5_MUTMIC2 2
-#define AB8500_CODEC_CR5_MUTELINL 1
-#define AB8500_CODEC_CR5_MUTELINR 0
-
-/* CR6-CR0x0006 */
-#define AB8500_CODEC_CR6_ENDMIC1 7
-#define AB8500_CODEC_CR6_ENDMIC2 6
-#define AB8500_CODEC_CR6_ENDMIC3 5
-#define AB8500_CODEC_CR6_ENDMIC4 4
-#define AB8500_CODEC_CR6_ENDMIC5 3
-#define AB8500_CODEC_CR6_ENDMIC6 2
-
-/* CR7-CR0x0007 */
-#define AB8500_CODEC_CR7_MIC1SEL 7
-#define AB8500_CODEC_CR7_LINRSEL 6
-#define AB8500_CODEC_CR7_ENDRVHSL 5
-#define AB8500_CODEC_CR7_ENDRVHSR 4
-#define AB8500_CODEC_CR7_ENADCMIC 2
-#define AB8500_CODEC_CR7_ENADCLINL 1
-#define AB8500_CODEC_CR7_ENADCLINR 0
-
-/* CR8-CR0x0008 */
-#define AB8500_CODEC_CR8_CP_DIS_PLDWN 7
-#define AB8500_CODEC_CR8_ENEAR 6
-#define AB8500_CODEC_CR8_ENHSL 5
-#define AB8500_CODEC_CR8_ENHSR 4
-#define AB8500_CODEC_CR8_ENHFL 3
-#define AB8500_CODEC_CR8_ENHFR 2
-#define AB8500_CODEC_CR8_ENVIBL 1
-#define AB8500_CODEC_CR8_ENVIBR 0
-
-/* CR9-CR0x0009 */
-#define AB8500_CODEC_CR9_ENADACEAR 6
-#define AB8500_CODEC_CR9_ENADACHSL 5
-#define AB8500_CODEC_CR9_ENADACHSR 4
-#define AB8500_CODEC_CR9_ENADACHFL 3
-#define AB8500_CODEC_CR9_ENADACHFR 2
-#define AB8500_CODEC_CR9_ENADACVIBL 1
-#define AB8500_CODEC_CR9_ENADACVIBR 0
-
-/* CR10-CR0x000A */
-#define AB8500_CODEC_CR10_MUTEEAR 6
-#define AB8500_CODEC_CR10_MUTEHSL 5
-#define AB8500_CODEC_CR10_MUTEHSR 4
-#define AB8500_CODEC_CR10_MUTEHFL 3
-#define AB8500_CODEC_CR10_MUTEHFR 2
-#define AB8500_CODEC_CR10_MUTEVIBL 1
-#define AB8500_CODEC_CR10_MUTEVIBR 0
-
-/* CR11-CR0x000B */
-#define AB8500_CODEC_CR11_ENSHORTPWD 7
-#define AB8500_CODEC_CR11_EARSHORTDIS 6
-#define AB8500_CODEC_CR11_HSLSHORTDIS 5
-#define AB8500_CODEC_CR11_HSRSHORTDIS 4
-#define AB8500_CODEC_CR11_HFLSHORTDIS 3
-#define AB8500_CODEC_CR11_HFRSHORTDIS 2
-#define AB8500_CODEC_CR11_VIBLSHORTDIS 1
-#define AB8500_CODEC_CR11_VIBRSHORTDIS 0
-
-/* CR12-CR0x000C */
-#define AB8500_CODEC_CR12_ENCPHS 7
-#define AB8500_CODEC_CR12_HSAUTOTIME 4
-#define AB8500_CODEC_CR12_HSAUTOENSEL 1
-#define AB8500_CODEC_CR12_HSAUTOEN 0
-
-/* CR13-CR0x000D */
-#define AB8500_CODEC_CR13_ENVDET_HTHRESH 4
-#define AB8500_CODEC_CR13_ENVDET_LTHRESH 0
-
-/* CR14-CR0x000E */
-#define AB8500_CODEC_CR14_SMPSLVEN 7
-#define AB8500_CODEC_CR14_ENVDETSMPSEN 6
-#define AB8500_CODEC_CR14_CPLVEN 5
-#define AB8500_CODEC_CR14_ENVDETCPEN 4
-#define AB8500_CODEC_CR14_ENVDET_TIME 0
-
-/* CR15-CR0x000F */
-#define AB8500_CODEC_CR15_PWMTOVIBL 7
-#define AB8500_CODEC_CR15_PWMTOVIBR 6
-#define AB8500_CODEC_CR15_PWMLCTRL 5
-#define AB8500_CODEC_CR15_PWMRCTRL 4
-#define AB8500_CODEC_CR15_PWMNLCTRL 3
-#define AB8500_CODEC_CR15_PWMPLCTRL 2
-#define AB8500_CODEC_CR15_PWMNRCTRL 1
-#define AB8500_CODEC_CR15_PWMPRCTRL 0
-
-/* CR16-CR0x0010 */
-#define AB8500_CODEC_CR16_PWMNLPOL 7
-#define AB8500_CODEC_CR16_PWMNLDUTYCYCLE 0
-
-/* CR17-CR0x0011 */
-#define AB8500_CODEC_CR17_PWMPLPOL 7
-#define AB8500_CODEC_CR17_PWMLPDUTYCYCLE 0
-
-/* CR18-CR0x0012 */
-#define AB8500_CODEC_CR18_PWMNRPOL 7
-#define AB8500_CODEC_CR18_PWMNRDUTYCYCLE 0
-
-/* CR19-CR0x0013 */
-#define AB8500_CODEC_CR19_PWMPRPOL 7
-#define AB8500_CODEC_CR19_PWMRPDUTYCYCLE 0
-
-/* CR20-CR0x0014 */
-#define AB8500_CODEC_CR20_EN_SE_MIC1 7
-#define AB8500_CODEC_CR20_MIC1_GAIN 0
-
-/* CR21-CR0x0015 */
-#define AB8500_CODEC_CR21_EN_SE_MIC2 7
-#define AB8500_CODEC_CR21_MIC2_GAIN 0
-
-/* CR22-CR0x0016 */
-#define AB8500_CODEC_CR22_HSL_GAIN 5
-#define AB8500_CODEC_CR22_LINL_GAIN 0
-
-/* CR23-CR0x0017 */
-#define AB8500_CODEC_CR23_HSR_GAIN 5
-#define AB8500_CODEC_CR23_LINR_GAIN 0
-
-/* CR24-CR0x0018 */
-#define AB8500_CODEC_CR24_LINTOHSL_GAIN 0
-
-/* CR25-CR0x0019 */
-#define AB8500_CODEC_CR25_LINTOHSR_GAIN 0
-
-/* CR26-CR0x001A */
-#define AB8500_CODEC_CR26_AD1NH 7
-#define AB8500_CODEC_CR26_AD2NH 6
-#define AB8500_CODEC_CR26_AD3NH 5
-#define AB8500_CODEC_CR26_AD4NH 4
-#define AB8500_CODEC_CR26_AD1_VOICE 3
-#define AB8500_CODEC_CR26_AD2_VOICE 2
-#define AB8500_CODEC_CR26_AD3_VOICE 1
-#define AB8500_CODEC_CR26_AD4_VOICE 0
-
-/* CR27-CR0x001B */
-#define AB8500_CODEC_CR27_EN_MASTGEN 7
-#define AB8500_CODEC_CR27_IF1_BITCLK_OSR 5
-#define AB8500_CODEC_CR27_ENFS_BITCLK1 4
-#define AB8500_CODEC_CR27_IF0_BITCLK_OSR 1
-#define AB8500_CODEC_CR27_ENFS_BITCLK0 0
-
-/* CR28-CR0x001C */
-#define AB8500_CODEC_CR28_FSYNC0P 6
-#define AB8500_CODEC_CR28_BITCLK0P 5
-#define AB8500_CODEC_CR28_IF0DEL 4
-#define AB8500_CODEC_CR28_IF0FORMAT 2
-#define AB8500_CODEC_CR28_IF0WL 0
-
-/* CR29-CR0x001D */
-#define AB8500_CODEC_CR29_IF0DATOIF1AD 7
-#define AB8500_CODEC_CR29_IF0CKTOIF1CK 6
-#define AB8500_CODEC_CR29_IF1MASTER 5
-#define AB8500_CODEC_CR29_IF1DATOIF0AD 3
-#define AB8500_CODEC_CR29_IF1CKTOIF0CK 2
-#define AB8500_CODEC_CR29_IF0MASTER 1
-#define AB8500_CODEC_CR29_IF0BFIFOEN 0
-
-/* CR30-CR0x001E */
-#define AB8500_CODEC_CR30_FSYNC1P 6
-#define AB8500_CODEC_CR30_BITCLK1P 5
-#define AB8500_CODEC_CR30_IF1DEL 4
-#define AB8500_CODEC_CR30_IF1FORMAT 2
-#define AB8500_CODEC_CR30_IF1WL 0
-
-/* CR31-CR0x001F */
-#define AB8500_CODEC_CR31_ADOTOSLOT1 4
-#define AB8500_CODEC_CR31_ADOTOSLOT0 0
-
-/* CR32-CR0x0020 */
-#define AB8500_CODEC_CR32_ADOTOSLOT3 4
-#define AB8500_CODEC_CR32_ADOTOSLOT2 0
-
-/* CR33-CR0x0021 */
-#define AB8500_CODEC_CR33_ADOTOSLOT5 4
-#define AB8500_CODEC_CR33_ADOTOSLOT4 0
-
-/* CR34-CR0x0022 */
-#define AB8500_CODEC_CR34_ADOTOSLOT7 4
-#define AB8500_CODEC_CR34_ADOTOSLOT6 0
-
-/* CR35-CR0x0023 */
-#define AB8500_CODEC_CR35_ADOTOSLOT9 4
-#define AB8500_CODEC_CR35_ADOTOSLOT8 0
-
-/* CR36-CR0x0024 */
-#define AB8500_CODEC_CR36_ADOTOSLOT11 4
-#define AB8500_CODEC_CR36_ADOTOSLOT10 0
-
-/* CR37-CR0x0025 */
-#define AB8500_CODEC_CR37_ADOTOSLOT13 4
-#define AB8500_CODEC_CR37_ADOTOSLOT12 0
-
-/* CR38-CR0x0026 */
-#define AB8500_CODEC_CR38_ADOTOSLOT15 4
-#define AB8500_CODEC_CR38_ADOTOSLOT14 0
-
-/* CR39-CR0x0027 */
-#define AB8500_CODEC_CR39_ADOTOSLOT17 4
-#define AB8500_CODEC_CR39_ADOTOSLOT16 0
-
-/* CR40-CR0x0028 */
-#define AB8500_CODEC_CR40_ADOTOSLOT19 4
-#define AB8500_CODEC_CR40_ADOTOSLOT18 0
-
-/* CR41-CR0x0029 */
-#define AB8500_CODEC_CR41_ADOTOSLOT21 4
-#define AB8500_CODEC_CR41_ADOTOSLOT20 0
-
-/* CR42-CR0x002A */
-#define AB8500_CODEC_CR42_ADOTOSLOT23 4
-#define AB8500_CODEC_CR42_ADOTOSLOT22 0
-
-/* CR43-CR0x002B */
-#define AB8500_CODEC_CR43_ADOTOSLOT25 4
-#define AB8500_CODEC_CR43_ADOTOSLOT24 0
-
-/* CR44-CR0x002C */
-#define AB8500_CODEC_CR44_ADOTOSLOT27 4
-#define AB8500_CODEC_CR44_ADOTOSLOT26 0
-
-/* CR45-CR0x002D */
-#define AB8500_CODEC_CR45_ADOTOSLOT29 4
-#define AB8500_CODEC_CR45_ADOTOSLOT28 0
-
-/* CR46-CR0x002E */
-#define AB8500_CODEC_CR46_ADOTOSLOT31 4
-#define AB8500_CODEC_CR46_ADOTOSLOT30 0
-
-/* CR47-CR0x002F */
-#define AB8500_CODEC_CR47_HIZ_SL7 7
-#define AB8500_CODEC_CR47_HIZ_SL6 6
-#define AB8500_CODEC_CR47_HIZ_SL5 5
-#define AB8500_CODEC_CR47_HIZ_SL4 4
-#define AB8500_CODEC_CR47_HIZ_SL3 3
-#define AB8500_CODEC_CR47_HIZ_SL2 2
-#define AB8500_CODEC_CR47_HIZ_SL1 1
-#define AB8500_CODEC_CR47_HIZ_SL0 0
-
-/* CR48-CR0x0030 */
-#define AB8500_CODEC_CR48_HIZ_SL15 7
-#define AB8500_CODEC_CR48_HIZ_SL14 6
-#define AB8500_CODEC_CR48_HIZ_SL13 5
-#define AB8500_CODEC_CR48_HIZ_SL12 4
-#define AB8500_CODEC_CR48_HIZ_SL11 3
-#define AB8500_CODEC_CR48_HIZ_SL10 2
-#define AB8500_CODEC_CR48_HIZ_SL9 1
-#define AB8500_CODEC_CR48_HIZ_SL8 0
-
-/* CR49-CR0x0031 */
-#define AB8500_CODEC_CR49_HIZ_SL23 7
-#define AB8500_CODEC_CR49_HIZ_SL22 6
-#define AB8500_CODEC_CR49_HIZ_SL21 5
-#define AB8500_CODEC_CR49_HIZ_SL20 4
-#define AB8500_CODEC_CR49_HIZ_SL19 3
-#define AB8500_CODEC_CR49_HIZ_SL18 2
-#define AB8500_CODEC_CR49_HIZ_SL17 1
-#define AB8500_CODEC_CR49_HIZ_SL16 0
-
-/* CR50-CR0x0032 */
-#define AB8500_CODEC_CR50_HIZ_SL31 7
-#define AB8500_CODEC_CR50_HIZ_SL30 6
-#define AB8500_CODEC_CR50_HIZ_SL29 5
-#define AB8500_CODEC_CR50_HIZ_SL28 4
-#define AB8500_CODEC_CR50_HIZ_SL27 3
-#define AB8500_CODEC_CR50_HIZ_SL26 2
-#define AB8500_CODEC_CR50_HIZ_SL25 1
-#define AB8500_CODEC_CR50_HIZ_SL24 0
-
-/* CR51-CR0x0033 */
-#define AB8500_CODEC_CR51_DA12_VOICE 7
-#define AB8500_CODEC_CR51_SLDAI1TOSLADO1 5
-#define AB8500_CODEC_CR51_SLTODA1 0
-
-/* CR52-CR0x0034 */
-#define AB8500_CODEC_CR52_SLDAI1TOSLADO2 5
-#define AB8500_CODEC_CR52_SLTODA2 0
-
-/* CR53-CR0x0035 */
-#define AB8500_CODEC_CR53_DA34_VOICE 7
-#define AB8500_CODEC_CR53_SLDAI1TOSLADO3 5
-#define AB8500_CODEC_CR53_SLTODA3 0
-
-/* CR54-CR0x0036 */
-#define AB8500_CODEC_CR54_SLDAI1TOSLADO4 5
-#define AB8500_CODEC_CR54_SLTODA4 0
-
-/* CR55-CR0x0037 */
-#define AB8500_CODEC_CR55_DA56_VOICE 7
-#define AB8500_CODEC_CR55_SLDAI1TOSLADO5 5
-#define AB8500_CODEC_CR55_SLTODA5 0
-
-/* CR56-CR0x0038 */
-#define AB8500_CODEC_CR56_SLDAI1TOSLADO6 5
-#define AB8500_CODEC_CR56_SLTODA6 0
-
-/* CR57-CR0x0039 */
-#define AB8500_CODEC_CR57_BFIFULL_MSK 6
-#define AB8500_CODEC_CR57_BFIEMPT_MSK 5
-#define AB8500_CODEC_CR57_DACHAN_MSK 4
-#define AB8500_CODEC_CR57_GAIN_MSK 3
-#define AB8500_CODEC_CR57_DSPAD_MSK 2
-#define AB8500_CODEC_CR57_DSPDA_MSK 1
-#define AB8500_CODEC_CR57_STFIR_MSK 0
-
-/* CR58-CR0x003A */
-#define AB8500_CODEC_CR58_BFIFULL_EV 6
-#define AB8500_CODEC_CR58_BFIEMPT_EV 5
-#define AB8500_CODEC_CR58_DACHAN_EV 4
-#define AB8500_CODEC_CR58_GAIN_EV 3
-#define AB8500_CODEC_CR58_DSPAD_EV 2
-#define AB8500_CODEC_CR58_DSPDA_EV 1
-#define AB8500_CODEC_CR58_STFIR_EV 0
-
-/* CR59-CR0x003B */
-#define AB8500_CODEC_CR59_VSSREADY_MSK 7
-#define AB8500_CODEC_CR59_SHRTVIBL_MSK 6
-#define AB8500_CODEC_CR59_SHRTVIBR_MSK 5
-#define AB8500_CODEC_CR59_SHRTHFL_MSK 4
-#define AB8500_CODEC_CR59_SHRTHFR_MSK 3
-#define AB8500_CODEC_CR59_SHRTHSL_MSK 2
-#define AB8500_CODEC_CR59_SHRTHSR_MSK 1
-#define AB8500_CODEC_CR59_SHRTEAR_MSK 0
-
-/* CR60-CR0x003C */
-#define AB8500_CODEC_CR60_VSSREADY_EV 7
-#define AB8500_CODEC_CR60_SHRTVIBL_EV 6
-#define AB8500_CODEC_CR60_SHRTVIBR_EV 5
-#define AB8500_CODEC_CR60_SHRTHFL_EV 4
-#define AB8500_CODEC_CR60_SHRTHFR_EV 3
-#define AB8500_CODEC_CR60_SHRTHSL_EV 2
-#define AB8500_CODEC_CR60_SHRTHSR_EV 1
-#define AB8500_CODEC_CR60_SHRTEAR_EV 0
-
-/* CR61-CR0x003D */
-#define AB8500_CODEC_CR61_REVISION 2
-#define AB8500_CODEC_CR61_FADE_SPEED 0
-
-/* CR62-CR0x003E */
-#define AB8500_CODEC_CR62_DMIC1SINC3 5
-#define AB8500_CODEC_CR62_DMIC2SINC3 4
-#define AB8500_CODEC_CR62_DMIC3SINC3 3
-#define AB8500_CODEC_CR62_DMIC4SINC3 2
-#define AB8500_CODEC_CR62_DMIC5SINC3 1
-#define AB8500_CODEC_CR62_DMIC6SINC3 0
-
-/* CR63-CR0x003F */
-#define AB8500_CODEC_CR63_DATOHSLEN 7
-#define AB8500_CODEC_CR63_DATOHSREN 6
-#define AB8500_CODEC_CR63_AD1SEL 5
-#define AB8500_CODEC_CR63_AD2SEL 4
-#define AB8500_CODEC_CR63_AD3SEL 3
-#define AB8500_CODEC_CR63_AD5SEL 2
-#define AB8500_CODEC_CR63_AD6SEL 1
-#define AB8500_CODEC_CR63_ANCSEL 0
-
-/* CR64-CR0x0040 */
-#define AB8500_CODEC_CR64_DATOHFREN 7
-#define AB8500_CODEC_CR64_DATOHFLEN 6
-#define AB8500_CODEC_CR64_HFRSEL 5
-#define AB8500_CODEC_CR64_HFLSEL 4
-#define AB8500_CODEC_CR64_STFIR1SEL 2
-#define AB8500_CODEC_CR64_STFIR2SEL 0
-
-/* CR65-CR0x0041 */
-#define AB8500_CODEC_CR65_FADEDIS_AD1 6
-#define AB8500_CODEC_CR65_AD1GAIN 0
-
-/* CR66-CR0x0042 */
-#define AB8500_CODEC_CR66_FADEDIS_AD2 6
-#define AB8500_CODEC_CR66_AD2GAIN 0
-
-/* CR67-CR0x0043 */
-#define AB8500_CODEC_CR67_FADEDIS_AD3 6
-#define AB8500_CODEC_CR67_AD3GAIN 0
-
-/* CR68-CR0x0044 */
-#define AB8500_CODEC_CR68_FADEDIS_AD4 6
-#define AB8500_CODEC_CR68_AD4GAIN 0
-
-/* CR69-CR0x0045 */
-#define AB8500_CODEC_CR69_FADEDIS_AD5 6
-#define AB8500_CODEC_CR69_AD5GAIN 0
-
-/* CR70-CR0x0046 */
-#define AB8500_CODEC_CR70_FADEDIS_AD6 6
-#define AB8500_CODEC_CR70_AD6GAIN 0
-
-/* CR71-CR0x0047 */
-#define AB8500_CODEC_CR71_FADEDIS_DA1 6
-#define AB8500_CODEC_CR71_DA1GAIN 0
-
-/* CR72-CR0x0048 */
-#define AB8500_CODEC_CR72_FADEDIS_DA2 6
-#define AB8500_CODEC_CR72_DA2GAIN 0
-
-/* CR73-CR0x0049 */
-#define AB8500_CODEC_CR73_FADEDIS_DA3 6
-#define AB8500_CODEC_CR73_DA3GAIN 0
-
-/* CR74-CR0x004A */
-#define AB8500_CODEC_CR74_FADEDIS_DA4 6
-#define AB8500_CODEC_CR74_DA4GAIN 0
-
-/* CR75-CR0x004B */
-#define AB8500_CODEC_CR75_FADEDIS_DA5 6
-#define AB8500_CODEC_CR75_DA5GAIN 0
-
-/* CR76-CR0x004C */
-#define AB8500_CODEC_CR76_FADEDIS_DA6 6
-#define AB8500_CODEC_CR76_DA6GAIN 0
-
-/* CR77-CR0x004D */
-#define AB8500_CODEC_CR77_FADEDIS_AD1L 6
-#define AB8500_CODEC_CR77_AD1LBGAIN 0
-
-/* CR78-CR0x004E */
-#define AB8500_CODEC_CR78_FADEDIS_AD2L 6
-#define AB8500_CODEC_CR78_AD2LBGAIN 0
-
-/* CR79-CR0x004F */
-#define AB8500_CODEC_CR79_HSSINC1 7
-#define AB8500_CODEC_CR79_FADEDIS_HSL 4
-#define AB8500_CODEC_CR79_HSLDGAIN 0
-
-/* CR80-CR0x0050 */
-#define AB8500_CODEC_CR80_FADEDIS_HSR 4
-#define AB8500_CODEC_CR80_HSRDGAIN 0
-
-/* CR81-CR0x0051 */
-#define AB8500_CODEC_CR81_STFIR1GAIN 0
-
-/* CR82-CR0x0052 */
-#define AB8500_CODEC_CR82_STFIR2GAIN 0
-
-/* CR83-CR0x0053 */
-#define AB8500_CODEC_CR83_ENANC 2
-#define AB8500_CODEC_CR83_ANCIIRINIT 1
-#define AB8500_CODEC_CR83_ANCFIRUPDATE 0
-
-/* CR84-CR0x0054 */
-#define AB8500_CODEC_CR84_ANCINSHIFT 0
-
-/* CR85-CR0x0055 */
-#define AB8500_CODEC_CR85_ANCFIROUTSHIFT 0
-
-/* CR86-CR0x0056 */
-#define AB8500_CODEC_CR86_ANCSHIFTOUT 0
-
-/* CR87-CR0x0057 */
-#define AB8500_CODEC_CR87_ANCFIRCOEFF_MSB 0
-
-/* CR88-CR0x0058 */
-#define AB8500_CODEC_CR88_ANCFIRCOEFF_LSB 0
-
-/* CR89-CR0x0059 */
-#define AB8500_CODEC_CR89_ANCIIRCOEFF_MSB 0
-
-/* CR90-CR0x005A */
-#define AB8500_CODEC_CR90_ANCIIRCOEFF_LSB 0
-
-/* CR91-CR0x005B */
-#define AB8500_CODEC_CR91_ANCWARPDEL_MSB 0
-
-/* CR92-CR0x005C */
-#define AB8500_CODEC_CR92_ANCWARPDEL_LSB 0
-
-/* CR93-CR0x005D */
-#define AB8500_CODEC_CR93_ANCFIRPEAK_MSB 0
-
-/* CR94-CR0x005E */
-#define AB8500_CODEC_CR94_ANCFIRPEAK_LSB 0
-
-/* CR95-CR0x005F */
-#define AB8500_CODEC_CR95_ANCIIRPEAK_MSB 0
-
-/* CR96-CR0x0060 */
-#define AB8500_CODEC_CR96_ANCIIRPEAK_LSB 0
-
-/* CR97-CR0x0061 */
-#define AB8500_CODEC_CR97_STFIR_SET 7
-#define AB8500_CODEC_CR97_STFIR_ADDR 0
-
-/* CR98-CR0x0062 */
-#define AB8500_CODEC_CR98_STFIR_COEFF_MSB 0
-
-/* CR99-CR0x0063 */
-#define AB8500_CODEC_CR99_STFIR_COEFF_LSB 0
-
-/* CR100-CR0x0064 */
-#define AB8500_CODEC_CR100_ENSTFIRS 2
-#define AB8500_CODEC_CR100_STFIRSTOIF1 1
-#define AB8500_CODEC_CR100_STFIR_BUSY 0
-
-/* CR101-CR0x0065 */
-#define AB8500_CODEC_CR101_PARLHF 7
-#define AB8500_CODEC_CR101_PARLVIB 6
-#define AB8500_CODEC_CR101_CLASSDVIBLSWAPEN 3
-#define AB8500_CODEC_CR101_CLASSDVIBRSWAPEN 2
-#define AB8500_CODEC_CR101_CLASSDHFLSWAPEN 1
-#define AB8500_CODEC_CR101_CLASSDHFRSWAPEN 0
-
-/* CR102-CR0x0066 */
-#define AB8500_CODEC_CR102_CLASSD_FIRBYP 4
-#define AB8500_CODEC_CR102_CLASSD_HIGHVOLEN 0
-
-/* CR103-CR0x0067 */
-#define AB8500_CODEC_CR103_CLASSD_DITHERHPGAIN 4
-#define AB8500_CODEC_CR103_CLASSD_DITHERWGAIN 0
-
-/* CR104-CR0x0068 */
-#define AB8500_CODEC_CR104_BFIFOINT 0
-
-/* CR105-CR0x0069 */
-#define AB8500_CODEC_CR105_BFIFOTX 0
-
-/* CR106-CR0x006A */
-#define AB8500_CODEC_CR106_BFIFOFSEXT 4
-#define AB8500_CODEC_CR106_BFIFOMSK 2
-#define AB8500_CODEC_CR106_BFIFOMSTR 1
-#define AB8500_CODEC_CR106_BFIFOSTRT 0
-
-/* CR107-CR0x006B */
-#define AB8500_CODEC_CR107_BFIFOSAMPNR 0
-
-/* CR108-CR0x006C */
-#define AB8500_CODEC_CR108_BFIFOWAKEUP 0
-
-/* CR109-CR0x006D */
-#define AB8500_CODEC_CR109_BFIFOSAMPLES 0
-
-/* For SetVolume API*/
-#define AB8500_CODEC_MAX_VOLUME 100
-
-/* Analog MIC1 & MIC2 */
-#define AB8500_CODEC_MIC_VOLUME_MAX 31
-#define AB8500_CODEC_MIC_VOLUME_MEDIUM 15
-#define AB8500_CODEC_MIC_VOLUME_MIN 0
-
-/* Line-in */
-#define AB8500_CODEC_LINEIN_VOLUME_MAX 31
-#define AB8500_CODEC_LINEIN_VOLUME_MEDIUM 15
-#define AB8500_CODEC_LINEIN_VOLUME_MIN 0
-
-/* HeadSet */
-#define AB8500_CODEC_HEADSET_VOLUME_MAX 0
-#define AB8500_CODEC_HEADSET_VOLUME_MEDIUM 3
-#define AB8500_CODEC_HEADSET_VOLUME_MIN 7
-
-/* HeadSet Digital */
-#define AB8500_CODEC_HEADSET_D_VOLUME_MAX 0
-#define AB8500_CODEC_HEADSET_D_VOLUME_MEDIUM 7
-#define AB8500_CODEC_HEADSET_D_VOLUME_MIN 15
-#define AB8500_CODEC_HEADSET_D_VOLUME_0DB 8
-
-/* Digital AD Path */
-#define AB8500_CODEC_AD_D_VOLUME_MAX 0
-#define AB8500_CODEC_AD_D_VOLUME_MEDIUM 31
-#define AB8500_CODEC_AD_D_VOLUME_MIN 63
-
-/* Digital DA Path */
-#define AB8500_CODEC_DA_D_VOLUME_MAX 0
-#define AB8500_CODEC_DA_D_VOLUME_MEDIUM 31
-#define AB8500_CODEC_DA_D_VOLUME_MIN 63
-
-/* EarPiece Digital */
-#define AB8500_CODEC_EARPIECE_D_VOLUME_MAX 0
-#define AB8500_CODEC_EARPIECE_D_VOLUME_MEDIUM 7
-#define AB8500_CODEC_EARPIECE_D_VOLUME_MIN 15
-
-/* AD1 loopback to HFL & HFR Digital */
-#define AB8500_CODEC_AD_LB_TO_HF_L_R_VOLUME_MAX 0
-#define AB8500_CODEC_AD_LB_TO_HF_L_R_VOLUME_MEDIUM 31
-#define AB8500_CODEC_AD_LB_TO_HF_L_R_VOLUME_MIN 63
-
-/* Line-in to HSL & HSR */
-#define AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MAX 0
-#define AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MEDIUM 9
-#define AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN 18
-#define AB8500_CODEC_LINEIN_TO_HS_L_R_LOOP_OPEN 19
-
-/* Vibrator */
-#define AB8500_CODEC_VIBRATOR_VOLUME_MAX 100
-#define AB8500_CODEC_VIBRATOR_VOLUME_MEDIUM 50
-#define AB8500_CODEC_VIBRATOR_VOLUME_MIN 0
-
-/* CR0 - 7 */
-typedef enum {
- AB8500_CODEC_CR0_POWERUP_OFF,
- AB8500_CODEC_CR0_POWERUP_ON
-} t_ab8500_codec_cr0_powerup;
-
-/* CR0 - 3 */
-typedef enum {
- AB8500_CODEC_CR0_ENAANA_OFF,
- AB8500_CODEC_CR0_ENAANA_ON
-} t_ab8500_codec_cr0_enaana;
-
-/* CR1 - 7 */
-typedef enum {
- AB8500_CODEC_CR1_SWRESET_DISABLED,
- AB8500_CODEC_CR1_SWRESET_ENABLED
-} t_ab8500_codec_cr1_swreset;
-
-/* CR2 - 7 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD1_DISABLED,
- AB8500_CODEC_CR2_ENAD1_ENABLED
-} t_ab8500_codec_cr2_enad1;
-
-/* CR2 - 6 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD2_DISABLED,
- AB8500_CODEC_CR2_ENAD2_ENABLED
-} t_ab8500_codec_cr2_enad2;
-
-/* CR2 - 5 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD3_DISABLED,
- AB8500_CODEC_CR2_ENAD3_ENABLED
-} t_ab8500_codec_cr2_enad3;
-
-/* CR2 - 4 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD4_DISABLED,
- AB8500_CODEC_CR2_ENAD4_ENABLED
-} t_ab8500_codec_cr2_enad4;
-
-/* CR2 - 3 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD5_DISABLED,
- AB8500_CODEC_CR2_ENAD5_ENABLED
-} t_ab8500_codec_cr2_enad5;
-
-/* CR2 - 2 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD6_DISABLED,
- AB8500_CODEC_CR2_ENAD6_ENABLED
-} t_ab8500_codec_cr2_enad6;
-
-/* CR3 - 7 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA1_DISABLED,
- AB8500_CODEC_CR3_ENDA1_ENABLED
-} t_ab8500_codec_cr3_enda1;
-
-/* CR3 - 6 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA2_DISABLED,
- AB8500_CODEC_CR3_ENDA2_ENABLED
-} t_ab8500_codec_cr3_enda2;
-
-/* CR3 - 5 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA3_DISABLED,
- AB8500_CODEC_CR3_ENDA3_ENABLED
-} t_ab8500_codec_cr3_enda3;
-
-/* CR3 - 4 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA4_DISABLED,
- AB8500_CODEC_CR3_ENDA4_ENABLED
-} t_ab8500_codec_cr3_enda4;
-
-/* CR3 - 3 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA5_DISABLED,
- AB8500_CODEC_CR3_ENDA5_ENABLED
-} t_ab8500_codec_cr3_enda5;
-
-/* CR3 - 2 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA6_DISABLED,
- AB8500_CODEC_CR3_ENDA6_ENABLED
-} t_ab8500_codec_cr3_enda6;
-
-/* CR4 - 7 */
-typedef enum {
- AB8500_CODEC_CR4_LOWPOWHS_NORMAL,
- AB8500_CODEC_CR4_LOWPOWHS_LP
-} t_ab8500_codec_cr4_lowpowhs;
-
-/* CR4 - 6:5 */
-typedef enum {
- AB8500_CODEC_CR4_LOWPOWDACHS_NORMAL,
- AB8500_CODEC_CR4_LOWPOWDACHS_DRIVERS_LP,
- AB8500_CODEC_CR4_LOWPOWDACHS_LP,
- AB8500_CODEC_CR4_LOWPOWDACHS_BOTH_LP
-} t_ab8500_codec_cr4_lowpowdachs;
-
-/* CR4 - 4 */
-typedef enum {
- AB8500_CODEC_CR4_LOWPOWEAR_NORMAL,
- AB8500_CODEC_CR4_LOWPOWEAR_LP
-} t_ab8500_codec_cr4_lowpowear;
-
-/* CR4 - 3:2 */
-typedef enum {
- AB8500_CODEC_CR4_EAR_SEL_CM_0_95V,
- AB8500_CODEC_CR4_EAR_SEL_CM_1_1V,
- AB8500_CODEC_CR4_EAR_SEL_CM_1_27V,
- AB8500_CODEC_CR4_EAR_SEL_CM_1_58V
-} t_ab8500_codec_cr4_ear_sel_cm;
-
-/* CR4 - 1 */
-typedef enum {
- AB8500_CODEC_CR4_HS_HP_DIS_FILTER_ENABLED,
- AB8500_CODEC_CR4_HS_HP_DIS_FILTER_DISABLED
-} t_ab8500_codec_cr4_hs_hp_dis;
-
-/* CR4 - 0 */
-typedef enum {
- AB8500_CODEC_CR4_EAR_HP_DIS_FILTER_ENABLED,
- AB8500_CODEC_CR4_EAR_HP_DIS_FILTER_DISABLED
-} t_ab8500_codec_cr4_ear_hp_dis;
-
-/* CR5 - 7 */
-typedef enum {
- AB8500_CODEC_CR5_ENMIC1_DISABLED,
- AB8500_CODEC_CR5_ENMIC1_ENABLED
-} t_ab8500_codec_cr5_enmic1;
-
-/* CR5 - 6 */
-typedef enum {
- AB8500_CODEC_CR5_ENMIC2_DISABLED,
- AB8500_CODEC_CR5_ENMIC2_ENABLED
-} t_ab8500_codec_cr5_enmic2;
-
-/* CR5 - 5 */
-typedef enum {
- AB8500_CODEC_CR5_ENLINL_DISABLED,
- AB8500_CODEC_CR5_ENLINL_ENABLED
-} t_ab8500_codec_cr5_enlinl;
-
-/* CR5 - 4 */
-typedef enum {
- AB8500_CODEC_CR5_ENLINR_DISABLED,
- AB8500_CODEC_CR5_ENLINR_ENABLED
-} t_ab8500_codec_cr5_enlinr;
-
-/* CR5 - 3 */
-typedef enum {
- AB8500_CODEC_CR5_MUTMIC1_DISABLED,
- AB8500_CODEC_CR5_MUTMIC1_ENABLED
-} t_ab8500_codec_cr5_mutmic1;
-
-/* CR5 - 2 */
-typedef enum {
- AB8500_CODEC_CR5_MUTMIC2_DISABLED,
- AB8500_CODEC_CR5_MUTMIC2_ENABLED
-} t_ab8500_codec_cr5_mutmic2;
-
-/* CR5 - 1 */
-typedef enum {
- AB8500_CODEC_CR5_MUTLINL_DISABLED,
- AB8500_CODEC_CR5_MUTLINL_ENABLED
-} t_ab8500_codec_cr5_mutlinl;
-
-/* CR5 - 0 */
-typedef enum {
- AB8500_CODEC_CR5_MUTLINR_DISABLED,
- AB8500_CODEC_CR5_MUTLINR_ENABLED
-} t_ab8500_codec_cr5_mutlinr;
-
-/* CR6 - 7 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC1_DISABLED,
- AB8500_CODEC_CR6_ENDMIC1_ENABLED
-} t_ab8500_codec_cr6_endmic1;
-
-/* CR6 - 6 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC2_DISABLED,
- AB8500_CODEC_CR6_ENDMIC2_ENABLED
-} t_ab8500_codec_cr6_endmic2;
-
-/* CR6 - 5 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC3_DISABLED,
- AB8500_CODEC_CR6_ENDMIC3_ENABLED
-} t_ab8500_codec_cr6_endmic3;
-
-/* CR6 - 4 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC4_DISABLED,
- AB8500_CODEC_CR6_ENDMIC4_ENABLED
-} t_ab8500_codec_cr6_endmic4;
-
-/* CR6 - 3 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC5_DISABLED,
- AB8500_CODEC_CR6_ENDMIC5_ENABLED
-} t_ab8500_codec_cr6_endmic5;
-
-/* CR6 - 2 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC6_DISABLED,
- AB8500_CODEC_CR6_ENDMIC6_ENABLED
-} t_ab8500_codec_cr6_endmic6;
-
-/* CR7 - 7 */
-typedef enum {
- AB8500_CODEC_CR7_MIC1SEL_MIC1A,
- AB8500_CODEC_CR7_MIC1SEL_MIC1B
-} t_ab8500_codec_cr7_mic1sel;
-
-/* CR7 - 6 */
-typedef enum {
- AB8500_CODEC_CR7_LINRSEL_MIC2,
- AB8500_CODEC_CR7_LINRSEL_LINR
-} t_ab8500_codec_cr7_linrsel;
-
-/* CR7 - 5 */
-typedef enum {
- AB8500_CODEC_CR7_ENDRVHSL_DISABLED,
- AB8500_CODEC_CR7_ENDRVHSL_ENABLED
-} t_ab8500_codec_cr7_endrvhsl;
-
-/* CR7 - 4 */
-typedef enum {
- AB8500_CODEC_CR7_ENDRVHSR_DISABLED,
- AB8500_CODEC_CR7_ENDRVHSR_ENABLED
-} t_ab8500_codec_cr7_endrvhsr;
-
-/* CR7 - 2 */
-typedef enum {
- AB8500_CODEC_CR7_ENADCMIC_DISABLED,
- AB8500_CODEC_CR7_ENADCMIC_ENABLED
-} t_ab8500_codec_cr7_enadcmic;
-
-/* CR7 - 1 */
-typedef enum {
- AB8500_CODEC_CR7_ENADCLINL_DISABLED,
- AB8500_CODEC_CR7_ENADCLINL_ENABLED
-} t_ab8500_codec_cr7_enadclinl;
-
-/* CR7 - 0 */
-typedef enum {
- AB8500_CODEC_CR7_ENADCLINR_DISABLED,
- AB8500_CODEC_CR7_ENADCLINR_ENABLED
-} t_ab8500_codec_cr7_enadclinr;
-
-/* CR8 - 7 */
-typedef enum {
- AB8500_CODEC_CR8_CP_DIS_PLDWN_ENABLED,
- AB8500_CODEC_CR8_CP_DIS_PLDWN_DISABLED
-} t_ab8500_codec_cr8_cp_dis_pldwn;
-
-/* CR8 - 6 */
-typedef enum {
- AB8500_CODEC_CR8_ENEAR_DISABLED,
- AB8500_CODEC_CR8_ENEAR_ENABLED
-} t_ab8500_codec_cr8_enear;
-
-/* CR8 - 5 */
-typedef enum {
- AB8500_CODEC_CR8_ENHSL_DISABLED,
- AB8500_CODEC_CR8_ENHSL_ENABLED
-} t_ab8500_codec_cr8_enhsl;
-
-/* CR8 - 4 */
-typedef enum {
- AB8500_CODEC_CR8_ENHSR_DISABLED,
- AB8500_CODEC_CR8_ENHSR_ENABLED
-} t_ab8500_codec_cr8_enhsr;
-
-/* CR8 - 3 */
-typedef enum {
- AB8500_CODEC_CR8_ENHFL_DISABLED,
- AB8500_CODEC_CR8_ENHFL_ENABLED
-} t_ab8500_codec_cr8_enhfl;
-
-/* CR8 - 2 */
-typedef enum {
- AB8500_CODEC_CR8_ENHFR_DISABLED,
- AB8500_CODEC_CR8_ENHFR_ENABLED
-} t_ab8500_codec_cr8_enhfr;
-
-/* CR8 - 1 */
-typedef enum {
- AB8500_CODEC_CR8_ENVIBL_DISABLED,
- AB8500_CODEC_CR8_ENVIBL_ENABLED
-} t_ab8500_codec_cr8_envibl;
-
-/* CR8 - 0 */
-typedef enum {
- AB8500_CODEC_CR8_ENVIBR_DISABLED,
- AB8500_CODEC_CR8_ENVIBR_ENABLED
-} t_ab8500_codec_cr8_envibr;
-
-/* CR9 - 6 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACEAR_DISABLED,
- AB8500_CODEC_CR9_ENDACEAR_ENABLED
-} t_ab8500_codec_cr9_endacear;
-
-/* CR9 - 5 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACHSL_DISABLED,
- AB8500_CODEC_CR9_ENDACHSL_ENABLED
-} t_ab8500_codec_cr9_endachsl;
-
-/* CR9 - 4 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACHSR_DISABLED,
- AB8500_CODEC_CR9_ENDACHSR_ENABLED
-} t_ab8500_codec_cr9_endachsr;
-
-/* CR9 - 3 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACHFL_DISABLED,
- AB8500_CODEC_CR9_ENDACHFL_ENABLED
-} t_ab8500_codec_cr9_endachfl;
-
-/* CR9 - 2 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACHFR_DISABLED,
- AB8500_CODEC_CR9_ENDACHFR_ENABLED
-} t_ab8500_codec_cr9_endachfr;
-
-/* CR9 - 1 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACVIBL_DISABLED,
- AB8500_CODEC_CR9_ENDACVIBL_ENABLED
-} t_ab8500_codec_cr9_endacvibl;
-
-/* CR9 - 0 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACVIBR_DISABLED,
- AB8500_CODEC_CR9_ENDACVIBR_ENABLED
-} t_ab8500_codec_cr9_endacvibr;
-
-/* CR10 - 6 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEEAR_DISABLED,
- AB8500_CODEC_CR10_MUTEEAR_ENABLED
-} t_ab8500_codec_cr10_muteear;
-
-/* CR10 - 5 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEHSL_DISABLED,
- AB8500_CODEC_CR10_MUTEHSL_ENABLED
-} t_ab8500_codec_cr10_mutehsl;
-
-/* CR10 - 4 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEHSR_DISABLED,
- AB8500_CODEC_CR10_MUTEHSR_ENABLED
-} t_ab8500_codec_cr10_mutehsr;
-
-/* CR10 - 3 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEHFL_DISABLED,
- AB8500_CODEC_CR10_MUTEHFL_ENABLED
-} t_ab8500_codec_cr10_mutehfl;
-
-/* CR10 - 2 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEHFR_DISABLED,
- AB8500_CODEC_CR10_MUTEHFR_ENABLED
-} t_ab8500_codec_cr10_mutehfr;
-
-/* CR10 - 1 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEVIBL_DISABLED,
- AB8500_CODEC_CR10_MUTEVIBL_ENABLED
-} t_ab8500_codec_cr10_mutevibl;
-
-/* CR10 - 0 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEVIBR_DISABLED,
- AB8500_CODEC_CR10_MUTEVIBR_ENABLED
-} t_ab8500_codec_cr10_mutevibr;
-
-/* CR11 - 7 */
-typedef enum {
- AB8500_CODEC_CR11_EARSHORTPWD_DISABLED,
- AB8500_CODEC_CR11_EARSHORTPWD_ENABLED
-} t_ab8500_codec_cr11_earshortpwd;
-
-/* CR11 - 6 */
-typedef enum {
- AB8500_CODEC_CR11_EARSHORTDIS_ENABLED,
- AB8500_CODEC_CR11_EARSHORTDIS_DISABLED
-} t_ab8500_codec_cr11_earshortdis;
-
-/* CR11 - 5 */
-typedef enum {
- AB8500_CODEC_CR11_HSLSHORTDIS_ENABLED,
- AB8500_CODEC_CR11_HSLSHORTDIS_DISABLED
-} t_ab8500_codec_cr11_hslshortdis;
-
-/* CR11 - 4 */
-typedef enum {
- AB8500_CODEC_CR11_HSRSHORTDIS_ENABLED,
- AB8500_CODEC_CR11_HSRSHORTDIS_DISABLED
-} t_ab8500_codec_cr11_hsrshortdis;
-
-/* CR11 - 3 */
-typedef enum {
- AB8500_CODEC_CR11_HFLSHORTDIS_ENABLED,
- AB8500_CODEC_CR11_HFLSHORTDIS_DISABLED
-} t_ab8500_codec_cr11_hflshortdis;
-
-/* CR11 - 2 */
-typedef enum {
- AB8500_CODEC_CR11_HFRSHORTDIS_ENABLED,
- AB8500_CODEC_CR11_HFRSHORTDIS_DISABLED
-} t_ab8500_codec_cr11_hfrshortdis;
-
-/* CR11 - 1 */
-typedef enum {
- AB8500_CODEC_CR11_VIBLSHORTDIS_ENABLED,
- AB8500_CODEC_CR11_VIBLSHORTDIS_DISABLED
-} t_ab8500_codec_cr11_viblshortdis;
-
-/* CR11 - 0 */
-typedef enum {
- AB8500_CODEC_CR11_VIBRSHORTDIS_ENABLED,
- AB8500_CODEC_CR11_VIBRSHORTDIS_DISABLED
-} t_ab8500_codec_cr11_vibrshortdis;
-
-/* CR12 - 7 */
-typedef enum {
- AB8500_CODEC_CR12_ENCPHS_DISABLED,
- AB8500_CODEC_CR12_ENCPHS_ENABLED
-} t_ab8500_codec_cr12_encphs;
-
-/* CR12 - 6:4 */
-typedef enum {
- AB8500_CODEC_CR12_HSAUTOTIME_6_6USEC,
- AB8500_CODEC_CR12_HSAUTOTIME_13_3USEC,
- AB8500_CODEC_CR12_HSAUTOTIME_26_6USEC,
- AB8500_CODEC_CR12_HSAUTOTIME_53_2USEC,
- AB8500_CODEC_CR12_HSAUTOTIME_106_4USEC,
- AB8500_CODEC_CR12_HSAUTOTIME_212_8USEC,
- AB8500_CODEC_CR12_HSAUTOTIME_425_6USEC,
- AB8500_CODEC_CR12_HSAUTOTIME_851_2USEC,
-} t_ab8500_codec_cr12_hsautotime;
-
-/* CR12 - 1 */
-typedef enum {
- AB8500_CODEC_CR12_HSAUTOENSEL_DISABLED,
- AB8500_CODEC_CR12_HSAUTOENSEL_ENABLED
-} t_ab8500_codec_cr12_hsautoensel;
-
-/* CR12 - 0 */
-typedef enum {
- AB8500_CODEC_CR12_HSAUTOEN_DISABLED,
- AB8500_CODEC_CR12_HSAUTOEN_ENABLED
-} t_ab8500_codec_cr12_hsautoen;
-
-/* CR13 - 7:4 */
-typedef enum {
- AB8500_CODEC_CR13_ENVDET_HTHRESH_25,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_50,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_100,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_150,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_200,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_250,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_300,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_350,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_400,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_450,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_500,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_550,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_600,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_650,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_700,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_750
-} t_ab8500_codec_cr13_envdet_hthresh;
-
-/* CR13 - 3:0 */
-typedef enum {
- AB8500_CODEC_CR13_ENVDET_LTHRESH_25,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_50,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_100,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_150,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_200,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_250,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_300,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_350,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_400,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_450,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_500,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_550,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_600,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_650,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_700,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_750
-} t_ab8500_codec_cr13_envdet_lthresh;
-
-/* CR14 - 7 */
-typedef enum {
- AB8500_CODEC_CR14_SMPSLVEN_HIGHVOLTAGE,
- AB8500_CODEC_CR14_SMPSLVEN_LOWVOLTAGE
-} t_ab8500_codec_cr14_smpslven;
-
-/* CR14 - 6 */
-typedef enum {
- AB8500_CODEC_CR14_ENVDETSMPSEN_DISABLED,
- AB8500_CODEC_CR14_ENVDETSMPSEN_ENABLED
-} t_ab8500_codec_cr14_envdetsmpsen;
-
-/* CR14 - 5 */
-typedef enum {
- AB8500_CODEC_CR14_CPLVEN_HIGHVOLTAGE,
- AB8500_CODEC_CR14_CPLVEN_LOWVOLTAGE
-} t_ab8500_codec_cr14_cplven;
-
-/* CR14 - 4 */
-typedef enum {
- AB8500_CODEC_CR14_ENVDETCPEN_DISABLED,
- AB8500_CODEC_CR14_ENVDETCPEN_ENABLED
-} t_ab8500_codec_cr14_envdetcpen;
-
-/* CR14 - 3:0 */
-typedef enum {
- AB8500_CODEC_CR14_ENVET_TIME_27USEC,
- AB8500_CODEC_CR14_ENVET_TIME_53USEC,
- AB8500_CODEC_CR14_ENVET_TIME_106USEC,
- AB8500_CODEC_CR14_ENVET_TIME_212USEC,
- AB8500_CODEC_CR14_ENVET_TIME_424USEC,
- AB8500_CODEC_CR14_ENVET_TIME_848USEC,
- AB8500_CODEC_CR14_ENVET_TIME_1MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_3MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_6MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_13MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_27MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_54MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_109MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_218MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_436MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_872MSEC,
-} t_ab8500_codec_cr14_envet_time;
-
-/* CR15 - 7 */
-typedef enum {
- AB8500_CODEC_CR15_PWMTOVIBL_DA_PATH,
- AB8500_CODEC_CR15_PWMTOVIBL_PWM
-} t_ab8500_codec_cr15_pwmtovibl;
-
-/* CR15 - 6 */
-typedef enum {
- AB8500_CODEC_CR15_PWMTOVIBR_DA_PATH,
- AB8500_CODEC_CR15_PWMTOVIBR_PWM
-} t_ab8500_codec_cr15_pwmtovibr;
-
-/* CR15 - 5 */
-typedef enum {
- AB8500_CODEC_CR15_PWMLCTRL_PWMNPLGPOL,
- AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE
-} t_ab8500_codec_cr15_pwmlctrl;
-
-/* CR15 - 4 */
-typedef enum {
- AB8500_CODEC_CR15_PWMRCTRL_PWMNPRGPOL,
- AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE
-} t_ab8500_codec_cr15_pwmrctrl;
-
-/* CR15 - 3 */
-typedef enum {
- AB8500_CODEC_CR15_PWMNLCTRL_PWMNLGPOL,
- AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE
-} t_ab8500_codec_cr15_pwmnlctrl;
-
-/* CR15 - 2 */
-typedef enum {
- AB8500_CODEC_CR15_PWMPLCTRL_PWMPLGPOL,
- AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE
-} t_ab8500_codec_cr15_pwmplctrl;
-
-/* CR15 - 1 */
-typedef enum {
- AB8500_CODEC_CR15_PWMNRCTRL_PWMNRGPOL,
- AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE
-} t_ab8500_codec_cr15_pwmnrctrl;
-
-/* CR15 - 0 */
-typedef enum {
- AB8500_CODEC_CR15_PWMPRCTRL_PWMPRGPOL,
- AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE
-} t_ab8500_codec_cr15_pwmprctrl;
-
-/* CR16 - 7 */
-typedef enum {
- AB8500_CODEC_CR16_PWMNLPOL_GNDVIB,
- AB8500_CODEC_CR16_PWMNLPOL_VINVIB
-} t_ab8500_codec_cr16_pwmnlpol;
-
-/* CR16 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr16_pwmnldutycycle;
-
-/* CR17 - 7 */
-typedef enum {
- AB8500_CODEC_CR17_PWMPLPOL_GNDVIB,
- AB8500_CODEC_CR17_PWMPLPOL_VINVIB
-} t_ab8500_codec_cr17_pwmplpol;
-
-/* CR17 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr17_pwmpldutycycle;
-
-/* CR18 - 7 */
-typedef enum {
- AB8500_CODEC_CR18_PWMNRPOL_GNDVIB,
- AB8500_CODEC_CR18_PWMNRPOL_VINVIB
-} t_ab8500_codec_cr18_pwmnrpol;
-
-/* CR18 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr18_pwmnrdutycycle;
-
-/* CR19 - 7 */
-typedef enum {
- AB8500_CODEC_CR19_PWMPRPOL_GNDVIB,
- AB8500_CODEC_CR19_PWMPRPOL_VINVIB
-} t_ab8500_codec_cr19_pwmprpol;
-
-/* CR19 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr19_pwmprdutycycle;
-
-/* CR20 - 7 */
-typedef enum {
- AB8500_CODEC_CR20_EN_SE_MIC1_DIFFERENTIAL,
- AB8500_CODEC_CR20_EN_SE_MIC1_SINGLE
-} t_ab8500_codec_cr20_en_se_mic1;
-
-/* CR20 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr20_mic1_gain;
-
-/* CR21 - 7 */
-typedef enum {
- AB8500_CODEC_CR21_EN_SE_MIC2_DIFFERENTIAL,
- AB8500_CODEC_CR21_EN_SE_MIC2_SINGLE
-} t_ab8500_codec_cr21_en_se_mic2;
-
-/* CR21 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr21_mic2_gain;
-
-/* CR22 - 7:5 */
-typedef t_uint8 t_ab8500_codec_cr22_hsl_gain;
-
-/* CR22 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr22_linl_gain;
-
-/* CR23 - 7:5 */
-typedef t_uint8 t_ab8500_codec_cr23_hsr_gain;
-
-/* CR23 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr23_linr_gain;
-
-/* CR24 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr24_lintohsl_gain;
-
-/* CR25 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr25_lintohsr_gain;
-
-/* CR26 - 7 */
-typedef enum {
- AB8500_CODEC_CR26_AD1NH_FILTER_ENABLED,
- AB8500_CODEC_CR26_AD1NH_FILTER_DISABLED
-} t_ab8500_codec_cr26_ad1nh;
-
-/* CR26 - 6 */
-typedef enum {
- AB8500_CODEC_CR26_AD2NH_FILTER_ENABLED,
- AB8500_CODEC_CR26_AD2NH_FILTER_DISABLED
-} t_ab8500_codec_cr26_ad2nh;
-
-/* CR26 - 5 */
-typedef enum {
- AB8500_CODEC_CR26_AD3NH_FILTER_ENABLED,
- AB8500_CODEC_CR26_AD3NH_FILTER_DISABLED
-} t_ab8500_codec_cr26_ad3nh;
-
-/* CR26 - 4 */
-typedef enum {
- AB8500_CODEC_CR26_AD4NH_FILTER_ENABLED,
- AB8500_CODEC_CR26_AD4NH_FILTER_DISABLED
-} t_ab8500_codec_cr26_ad4nh;
-
-/* CR26 - 3 */
-typedef enum {
- AB8500_CODEC_CR26_AD1_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR26_AD1_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr26_ad1_voice;
-
-/* CR26 - 2 */
-typedef enum {
- AB8500_CODEC_CR26_AD2_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR26_AD2_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr26_ad2_voice;
-
-/* CR26 - 1 */
-typedef enum {
- AB8500_CODEC_CR26_AD3_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR26_AD3_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr26_ad3_voice;
-
-/* CR26 - 0 */
-typedef enum {
- AB8500_CODEC_CR26_AD4_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR26_AD4_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr26_ad4_voice;
-
-/* CR27 - 7 */
-typedef enum {
- AB8500_CODEC_CR27_EN_MASTGEN_DISABLED,
- AB8500_CODEC_CR27_EN_MASTGEN_ENABLED
-} t_ab8500_codec_cr27_en_mastgen;
-
-/* CR27 - 6:5 */
-typedef enum {
- AB8500_CODEC_CR27_IF1_BITCLK_OSR_32,
- AB8500_CODEC_CR27_IF1_BITCLK_OSR_64,
- AB8500_CODEC_CR27_IF1_BITCLK_OSR_128,
- AB8500_CODEC_CR27_IF1_BITCLK_OSR_256
-} t_ab8500_codec_cr27_if1_bitclk_osr;
-
-/* CR27 - 4 */
-typedef enum {
- AB8500_CODEC_CR27_ENFS_BITCLK1_DISABLED,
- AB8500_CODEC_CR27_ENFS_BITCLK1_ENABLED
-} t_ab8500_codec_cr27_enfs_bitclk1;
-
-/* CR27 - 2:1 */
-typedef enum {
- AB8500_CODEC_CR27_IF0_BITCLK_OSR_32,
- AB8500_CODEC_CR27_IF0_BITCLK_OSR_64,
- AB8500_CODEC_CR27_IF0_BITCLK_OSR_128,
- AB8500_CODEC_CR27_IF0_BITCLK_OSR_256
-} t_ab8500_codec_cr27_if0_bitclk_osr;
-
-/* CR27 - 0 */
-typedef enum {
- AB8500_CODEC_CR27_ENFS_BITCLK0_DISABLED,
- AB8500_CODEC_CR27_ENFS_BITCLK0_ENABLED
-} t_ab8500_codec_cr27_enfs_bitclk0;
-
-/* CR28 - 6 */
-typedef enum {
- AB8500_CODEC_CR28_FSYNC0P_RISING_EDGE,
- AB8500_CODEC_CR28_FSYNC0P_FALLING_EDGE
-} t_ab8500_codec_cr28_fsync0p;
-
-/* CR28 - 5 */
-typedef enum {
- AB8500_CODEC_CR28_BITCLK0P_RISING_EDGE,
- AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE
-} t_ab8500_codec_cr28_bitclk0p;
-
-/* CR28 - 4 */
-typedef enum {
- AB8500_CODEC_CR28_IF0DEL_NOT_DELAYED,
- AB8500_CODEC_CR28_IF0DEL_DELAYED
-} t_ab8500_codec_cr28_if0del;
-
-/* CR28 - 3:2 */
-typedef enum {
- AB8500_CODEC_CR28_IF0FORMAT_DISABLED,
- AB8500_CODEC_CR28_IF0FORMAT_TDM,
- AB8500_CODEC_CR28_IF0FORMAT_I2S_LEFTALIGNED
-} t_ab8500_codec_cr28_if0format;
-
-/* CR28 - 1:0 */
-typedef enum {
- AB8500_CODEC_CR28_IF0WL_16BITS,
- AB8500_CODEC_CR28_IF0WL_20BITS,
- AB8500_CODEC_CR28_IF0WL_24BITS,
- AB8500_CODEC_CR28_IF0WL_32BITS
-} t_ab8500_codec_cr28_if0wl;
-
-/* CR29 - 7 */
-typedef enum {
- AB8500_CODEC_CR29_IF0DATOIF1AD_NOTSENT,
- AB8500_CODEC_CR29_IF0DATOIF1AD_SENT
-} t_ab8500_codec_cr29_if0datoif1ad;
-
-/* CR29 - 6 */
-typedef enum {
- AB8500_CODEC_CR29_IF0CKTOIF1CK_NOTSENT,
- AB8500_CODEC_CR29_IF0CKTOIF1CK_SENT
-} t_ab8500_codec_cr29_if0cktoif1ck;
-
-/* CR29 - 5 */
-typedef enum {
- AB8500_CODEC_CR29_IF1MASTER_FS1CK1_INPUT,
- AB8500_CODEC_CR29_IF1MASTER_FS1CK1_OUTPUT
-} t_ab8500_codec_cr29_if1master;
-
-/* CR29 - 3 */
-typedef enum {
- AB8500_CODEC_CR29_IF1DATOIF0AD_NOTSENT,
- AB8500_CODEC_CR29_IF1DATOIF0AD_SENT
-} t_ab8500_codec_cr29_if1datoif0ad;
-
-/* CR29 - 2 */
-typedef enum {
- AB8500_CODEC_CR29_IF1CKTOIF0CK_NOTSENT,
- AB8500_CODEC_CR29_IF1CKTOIF0CK_SENT
-} t_ab8500_codec_cr29_if1cktoif0ck;
-
-/* CR29 - 1 */
-typedef enum {
- AB8500_CODEC_CR29_IF0MASTER_FS0CK0_INPUT,
- AB8500_CODEC_CR29_IF0MASTER_FS0CK0_OUTPUT
-} t_ab8500_codec_cr29_if0master;
-
-/* CR29 - 0 */
-typedef enum {
- AB8500_CODEC_CR29_IF0BFIFOEN_NORMAL_MODE,
- AB8500_CODEC_CR29_IF0BFIFOEN_BURST_MODE
-} t_ab8500_codec_cr29_if0bfifoen;
-
-/* CR30 - 6 */
-typedef enum {
- AB8500_CODEC_CR30_FSYNC1P_RISING_EDGE,
- AB8500_CODEC_CR30_FSYNC1P_FALLING_EDGE
-} t_ab8500_codec_cr30_fsync1p;
-
-/* CR30 - 5 */
-typedef enum {
- AB8500_CODEC_CR30_BITCLK1P_RISING_EDGE,
- AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE
-} t_ab8500_codec_cr30_bitclk1p;
-
-/* CR30 - 4 */
-typedef enum {
- AB8500_CODEC_CR30_IF1DEL_NOT_DELAYED,
- AB8500_CODEC_CR30_IF1DEL_DELAYED
-} t_ab8500_codec_cr30_if1del;
-
-/* CR30 - 3:2 */
-typedef enum {
- AB8500_CODEC_CR30_IF1FORMAT_DISABLED,
- AB8500_CODEC_CR30_IF1FORMAT_TDM,
- AB8500_CODEC_CR30_IF1FORMAT_I2S_LEFTALIGNED
-} t_ab8500_codec_cr30_if1format;
-
-/* CR30 - 1:0 */
-typedef enum {
- AB8500_CODEC_CR30_IF1WL_16BITS,
- AB8500_CODEC_CR30_IF1WL_20BITS,
- AB8500_CODEC_CR30_IF1WL_24BITS,
- AB8500_CODEC_CR30_IF1WL_32BITS
-} t_ab8500_codec_cr30_if1wl;
-
-/* CR31:46 - 7:4 or 3:0 */
-/* In ab8500_codec.h */
-
-/* CR47:50 - 7/6/5/4/3/2/1/0 */
-typedef enum {
- AB8500_CODEC_CR47_TO_CR50_HIZ_SL_LOW_IMPEDANCE,
- AB8500_CODEC_CR47_TO_CR50_HIZ_SL_HIGH_IMPEDANCE,
-} t_ab8500_codec_cr47_to_cr50_hiz_sl;
-
-/* CR51 - 7 */
-typedef enum {
- AB8500_CODEC_CR51_DA12_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR51_DA12_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr51_da12_voice;
-
-/* CR51 - 5 */
-typedef enum {
- AB8500_CODEC_CR51_SLDAI1TOSLADO1_NOT_LOOPEDBACK,
- AB8500_CODEC_CR51_SLDAI1TOSLADO1_LOOPEDBACK
-} t_ab8500_codec_cr51_sldai1toslado1;
-
-/* CR51:56 - 4:0 */
-/* In ab8500_codec.h */
-
-/* CR52 - 5 */
-typedef enum {
- AB8500_CODEC_CR52_SLDAI2TOSLADO2_NOT_LOOPEDBACK,
- AB8500_CODEC_CR52_SLDAI2TOSLADO2_LOOPEDBACK
-} t_ab8500_codec_cr52_sldai2toslado2;
-
-/* CR53 - 7 */
-typedef enum {
- AB8500_CODEC_CR53_DA34_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR53_DA34_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr53_da34_voice;
-
-/* CR53 - 5 */
-typedef enum {
- AB8500_CODEC_CR53_SLDAI3TOSLADO3_NOT_LOOPEDBACK,
- AB8500_CODEC_CR53_SLDAI3TOSLADO3_LOOPEDBACK
-} t_ab8500_codec_cr53_sldai3toslado3;
-
-/* CR54 - 5 */
-typedef enum {
- AB8500_CODEC_CR54_SLDAI4TOSLADO4_NOT_LOOPEDBACK,
- AB8500_CODEC_CR54_SLDAI4TOSLADO4_LOOPEDBACK
-} t_ab8500_codec_cr54_sldai4toslado4;
-
-/* CR55 - 7 */
-typedef enum {
- AB8500_CODEC_CR55_DA56_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR55_DA56_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr55_da56_voice;
-
-/* CR55 - 6:5 */
-typedef enum {
- AB8500_CODEC_CR55_SLDAI5TOSLADO5_NOT_LOOPEDBACK,
- AB8500_CODEC_CR55_SLDAI5TOSLADO5_DA_IN1_LOOPEDBACK,
- AB8500_CODEC_CR55_SLDAI5TOSLADO5_DA_IN3_LOOPEDBACK,
- AB8500_CODEC_CR55_SLDAI5TOSLADO5_DA_IN5_LOOPEDBACK
-} t_ab8500_codec_cr55_sldai5toslado5;
-
-/* CR56 - 6:5 */
-typedef enum {
- AB8500_CODEC_CR56_SLDAI6TOSLADO7_NOT_LOOPEDBACK,
- AB8500_CODEC_CR56_SLDAI6TOSLADO7_DA_IN2_LOOPEDBACK,
- AB8500_CODEC_CR56_SLDAI6TOSLADO7_DA_IN4_LOOPEDBACK,
- AB8500_CODEC_CR56_SLDAI6TOSLADO7_DA_IN6_LOOPEDBACK
-} t_ab8500_codec_cr56_sldai6toslado7;
-
-/* CR57 - 6 */
-typedef enum {
- AB8500_CODEC_CR57_BFIFULL_MSK_MASKED,
- AB8500_CODEC_CR57_BFIFULL_MSK_ENABLED
-} t_ab8500_codec_cr57_bfifull_msk;
-
-/* CR57 - 5 */
-typedef enum {
- AB8500_CODEC_CR57_BFIEMPT_MSK_MASKED,
- AB8500_CODEC_CR57_BFIEMPT_MSK_ENABLED
-} t_ab8500_codec_cr57_bfiempt_msk;
-
-/* CR57 - 4 */
-typedef enum {
- AB8500_CODEC_CR57_DACHAN_MSK_MASKED,
- AB8500_CODEC_CR57_DACHAN_MSK_ENABLED
-} t_ab8500_codec_cr57_dachan_msk;
-
-/* CR57 - 3 */
-typedef enum {
- AB8500_CODEC_CR57_GAIN_MSK_MASKED,
- AB8500_CODEC_CR57_GAIN_MSK_ENABLED
-} t_ab8500_codec_cr57_gain_msk;
-
-/* CR57 - 2 */
-typedef enum {
- AB8500_CODEC_CR57_DSPAD_MSK_MASKED,
- AB8500_CODEC_CR57_DSPAD_MSK_ENABLED
-} t_ab8500_codec_cr57_dspad_msk;
-
-/* CR57 - 1 */
-typedef enum {
- AB8500_CODEC_CR57_DSPDA_MSK_MASKED,
- AB8500_CODEC_CR57_DSPDA_MSK_ENABLED
-} t_ab8500_codec_cr57_dspda_msk;
-
-/* CR57 - 0 */
-typedef enum {
- AB8500_CODEC_CR57_STFIR_MSK_MASKED,
- AB8500_CODEC_CR57_STFIR_MSK_ENABLED
-} t_ab8500_codec_cr57_stfir_msk;
-
-/* CR58 - Read Only */
-/* CR58 - 6 */
-typedef enum {
- AB8500_CODEC_CR58_BFIFULL_EV_NOT_FULL,
- AB8500_CODEC_CR58_BFIFULL_EV_FULL
-} t_ab8500_codec_cr58_bfifull_ev;
-
-/* CR58 - 5 */
-typedef enum {
- AB8500_CODEC_CR58_BFIEMPT_EV_NOT_EMPTY,
- AB8500_CODEC_CR58_BFIEMPT_EV_EMPTY
-} t_ab8500_codec_cr58_bfiempt_ev;
-
-/* CR58 - 4 */
-typedef enum {
- AB8500_CODEC_CR58_DACHAN_EV_NO_SATURATION,
- AB8500_CODEC_CR58_DACHAN_EV_SATURATION
-} t_ab8500_codec_cr58_dachan_ev;
-
-/* CR58 - 3 */
-typedef enum {
- AB8500_CODEC_CR58_GAIN_EV_NO_SATURATION,
- AB8500_CODEC_CR58_GAIN_EV_SATURATION
-} t_ab8500_codec_cr58_gain_ev;
-
-/* CR58 - 2 */
-typedef enum {
- AB8500_CODEC_CR58_DSPAD_EV_NO_SATURATION,
- AB8500_CODEC_CR58_DSPAD_EV_SATURATION
-} t_ab8500_codec_cr58_dspad_ev;
-
-/* CR58 - 1 */
-typedef enum {
- AB8500_CODEC_CR58_DSPDA_EV_NO_SATURATION,
- AB8500_CODEC_CR58_DSPDA_EV_SATURATION
-} t_ab8500_codec_cr58_dspda_ev;
-
-/* CR58 - 0 */
-typedef enum {
- AB8500_CODEC_CR58_STFIR_EV_NO_SATURATION,
- AB8500_CODEC_CR58_STFIR_EV_SATURATION
-} t_ab8500_codec_cr58_stfir_ev;
-
-/* CR59 - 7 */
-typedef enum {
- AB8500_CODEC_CR59_VSSREADY_MSK_MASKED,
- AB8500_CODEC_CR59_VSSREADY_MSK_ENABLED
-} t_ab8500_codec_cr59_vssready_msk;
-
-/* CR59 - 6 */
-typedef enum {
- AB8500_CODEC_CR59_SHRTVIBL_MSK_MASKED,
- AB8500_CODEC_CR59_SHRTVIBL_MSK_ENABLED
-} t_ab8500_codec_cr59_shrtvibl_msk;
-
-/* CR59 - 5 */
-typedef enum {
- AB8500_CODEC_CR59_SHRTVIBR_MSK_MASKED,
- AB8500_CODEC_CR59_SHRTVIBR_MSK_ENABLED
-} t_ab8500_codec_cr59_shrtvibr_msk;
-
-/* CR59 - 4 */
-typedef enum {
- AB8500_CODEC_CR59_SHRTHFL_MSK_MASKED,
- AB8500_CODEC_CR59_SHRTHFL_MSK_ENABLED
-} t_ab8500_codec_cr59_shrthfl_msk;
-
-/* CR59 - 3 */
-typedef enum {
- AB8500_CODEC_CR59_SHRTHFR_MSK_MASKED,
- AB8500_CODEC_CR59_SHRTHFR_MSK_ENABLED
-} t_ab8500_codec_cr59_shrthfr_msk;
-
-/* CR59 - 2 */
-typedef enum {
- AB8500_CODEC_CR59_SHRTHSL_MSK_MASKED,
- AB8500_CODEC_CR59_SHRTHSL_MSK_ENABLED
-} t_ab8500_codec_cr59_shrthsl_msk;
-
-/* CR59 - 1 */
-typedef enum {
- AB8500_CODEC_CR59_SHRTHSR_MSK_MASKED,
- AB8500_CODEC_CR59_SHRTHSR_MSK_ENABLED
-} t_ab8500_codec_cr59_shrthsr_msk;
-
-/* CR59 - 0 */
-typedef enum {
- AB8500_CODEC_CR59_SHRTEAR_MSK_MASKED,
- AB8500_CODEC_CR59_SHRTEAR_MSK_ENABLED
-} t_ab8500_codec_cr59_shrtear_msk;
-
-/* CR60 - Read Only */
-/* CR60 - 7 */
-typedef enum {
- AB8500_CODEC_CR60_VSSREADY_EV_NOT_READY,
- AB8500_CODEC_CR60_VSSREADY_EV_READY
-} t_ab8500_codec_cr60_vssready_ev;
-
-/* CR60 - 6 */
-typedef enum {
- AB8500_CODEC_CR60_SHRTVIBL_EV_NO_SHORTCIRCUIT,
- AB8500_CODEC_CR60_SHRTVIBL_EV_SHORTCIRCUIT
-} t_ab8500_codec_cr60_shrtvibl_ev;
-
-/* CR60 - 5 */
-typedef enum {
- AB8500_CODEC_CR60_SHRTVIBR_EV_NO_SHORTCIRCUIT,
- AB8500_CODEC_CR60_SHRTVIBR_EV_SHORTCIRCUIT
-} t_ab8500_codec_cr60_shrtvibr_ev;
-
-/* CR60 - 4 */
-typedef enum {
- AB8500_CODEC_CR60_SHRTHFL_EV_NO_SHORTCIRCUIT,
- AB8500_CODEC_CR60_SHRTHFL_EV_SHORTCIRCUIT
-} t_ab8500_codec_cr60_shrthfl_ev;
-
-/* CR60 - 3 */
-typedef enum {
- AB8500_CODEC_CR60_SHRTHFR_EV_NO_SHORTCIRCUIT,
- AB8500_CODEC_CR60_SHRTHFR_EV_SHORTCIRCUIT
-} t_ab8500_codec_cr60_shrthfr_ev;
-
-/* CR60 - 2 */
-typedef enum {
- AB8500_CODEC_CR60_SHRTHSL_EV_NO_SHORTCIRCUIT,
- AB8500_CODEC_CR60_SHRTHSL_EV_SHORTCIRCUIT
-} t_ab8500_codec_cr60_shrthsl_ev;
-
-/* CR60 - 1 */
-typedef enum {
- AB8500_CODEC_CR60_SHRTHSR_EV_NO_SHORTCIRCUIT,
- AB8500_CODEC_CR60_SHRTHSR_EV_SHORTCIRCUIT
-} t_ab8500_codec_cr60_shrthsr_ev;
-
-/* CR60 - 0 */
-typedef enum {
- AB8500_CODEC_CR60_SHRTEAR_EV_NO_SHORTCIRCUIT,
- AB8500_CODEC_CR60_SHRTEAR_EV_SHORTCIRCUIT
-} t_ab8500_codec_cr60_shrtear_ev;
-
-/* CR61 - 6:2 - Read Only */
-typedef enum {
- AB8500_CODEC_CR61_REVISION_1_0,
- AB8500_CODEC_CR61_REVISION_TBD
-} t_ab8500_codec_cr61_revision;
-
-/* CR61 - 1:0 */
-typedef enum {
- AB8500_CODEC_CR61_FADE_SPEED_1MS,
- AB8500_CODEC_CR61_FADE_SPEED_4MS,
- AB8500_CODEC_CR61_FADE_SPEED_8MS,
- AB8500_CODEC_CR61_FADE_SPEED_16MS
-} t_ab8500_codec_cr61_fade_speed;
-
-/* CR62 - Read Only */
-/* CR62 - 5 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC1SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC1SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic1sinc3;
-
-/* CR62 - 4 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC2SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC2SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic2sinc3;
-
-/* CR62 - 3 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC3SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC3SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic3sinc3;
-
-/* CR62 - 2 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC4SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC4SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic4sinc3;
-
-/* CR62 - 1 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC5SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC5SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic5sinc3;
-
-/* CR62 - 0 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC6SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC6SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic6sinc3;
-
-/* CR63 - 7 */
-typedef enum {
- AB8500_CODEC_CR63_DATOHSLEN_DISABLED,
- AB8500_CODEC_CR63_DATOHSLEN_ENABLED
-} t_ab8500_codec_cr63_datohslen;
-
-/* CR63 - 6 */
-typedef enum {
- AB8500_CODEC_CR63_DATOHSREN_DISABLED,
- AB8500_CODEC_CR63_DATOHSREN_ENABLED
-} t_ab8500_codec_cr63_datohsren;
-
-/* CR63 - 5 */
-typedef enum {
- AB8500_CODEC_CR63_AD1SEL_LINLADL_SELECTED,
- AB8500_CODEC_CR63_AD1SEL_DMIC1_SELECTED
-} t_ab8500_codec_cr63_ad1sel;
-
-/* CR63 - 4 */
-typedef enum {
- AB8500_CODEC_CR63_AD2SEL_LINRADR_SELECTED,
- AB8500_CODEC_CR63_AD2SEL_DMIC2_SELECTED
-} t_ab8500_codec_cr63_ad2sel;
-
-/* CR63 - 3 */
-typedef enum {
- AB8500_CODEC_CR63_AD3SEL_ADMO_SELECTED,
- AB8500_CODEC_CR63_AD3SEL_DMIC3_SELECTED
-} t_ab8500_codec_cr63_ad3sel;
-
-/* CR63 - 2 */
-typedef enum {
- AB8500_CODEC_CR63_AD5SEL_AMADR_SELECTED,
- AB8500_CODEC_CR63_AD5SEL_DMIC5_SELECTED
-} t_ab8500_codec_cr63_ad5sel;
-
-/* CR63 - 1 */
-typedef enum {
- AB8500_CODEC_CR63_AD6SEL_ADMO_SELECTED,
- AB8500_CODEC_CR63_AD6SEL_DMIC6_SELECTED
-} t_ab8500_codec_cr63_ad6sel;
-
-/* CR63 - 0 */
-typedef enum {
- AB8500_CODEC_CR63_ANCSEL_NOT_MIXED_IN_EAR,
- AB8500_CODEC_CR63_ANCSEL_MIXED_IN_EAR
-} t_ab8500_codec_cr63_ancsel;
-
-/* CR64 - 7 */
-typedef enum {
- AB8500_CODEC_CR64_DATOHFREN_NOT_MIXED_TO_HFR,
- AB8500_CODEC_CR64_DATOHFREN_MIXED_TO_HFR
-} t_ab8500_codec_cr64_datohfren;
-
-/* CR64 - 6 */
-typedef enum {
- AB8500_CODEC_CR64_DATOHFLEN_NOT_MIXED_TO_HFL,
- AB8500_CODEC_CR64_DATOHFLEN_MIXED_TO_HFL
-} t_ab8500_codec_cr64_datohflen;
-
-/* CR64 - 5 */
-typedef enum {
- AB8500_CODEC_CR64_HFRSEL_DA4_MIXED_TO_HFR,
- AB8500_CODEC_CR64_HFRSEL_ANC_MIXED_TO_HFR
-} t_ab8500_codec_cr64_hfrsel;
-
-/* CR64 - 4 */
-typedef enum {
- AB8500_CODEC_CR64_HFLSEL_DA3_MIXED_TO_HFL,
- AB8500_CODEC_CR64_HFLSEL_ANC_MIXED_TO_HFL
-} t_ab8500_codec_cr64_hflsel;
-
-/* CR64 - 3:2 */
-typedef enum {
- AB8500_CODEC_CR64_STFIR1SEL_AD_OUT1_SELECTED,
- AB8500_CODEC_CR64_STFIR1SEL_AD_OUT3_SELECTED,
- AB8500_CODEC_CR64_STFIR1SEL_DA_IN1_SELECTED
-} t_ab8500_codec_cr64_stfir1sel;
-
-/* CR64 - 1:0 */
-typedef enum {
- AB8500_CODEC_CR64_STFIR2SEL_AD_OUT2_SELECTED,
- AB8500_CODEC_CR64_STFIR2SEL_AD_OUT4_SELECTED,
- AB8500_CODEC_CR64_STFIR2SEL_DA_IN2_SELECTED
-} t_ab8500_codec_cr64_stfir2sel;
-
-/* CR65 - 6 */
-typedef enum {
- AB8500_CODEC_CR65_FADEDIS_AD1_ENABLED,
- AB8500_CODEC_CR65_FADEDIS_AD1_DISABLED
-} t_ab8500_codec_cr65_fadedis_ad1;
-
-/* CR65 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr65_ad1gain;
-
-/* CR66 - 6 */
-typedef enum {
- AB8500_CODEC_CR66_FADEDIS_AD2_ENABLED,
- AB8500_CODEC_CR66_FADEDIS_AD2_DISABLED
-} t_ab8500_codec_cr66_fadedis_ad2;
-
-/* CR66 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr66_ad2gain;
-
-/* CR67 - 6 */
-typedef enum {
- AB8500_CODEC_CR67_FADEDIS_AD3_ENABLED,
- AB8500_CODEC_CR67_FADEDIS_AD3_DISABLED
-} t_ab8500_codec_cr67_fadedis_ad3;
-
-/* CR67 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr67_ad3gain;
-
-/* CR68 - 6 */
-typedef enum {
- AB8500_CODEC_CR68_FADEDIS_AD4_ENABLED,
- AB8500_CODEC_CR68_FADEDIS_AD4_DISABLED
-} t_ab8500_codec_cr68_fadedis_ad4;
-
-/* CR68 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr68_ad4gain;
-
-/* CR69 - 6 */
-typedef enum {
- AB8500_CODEC_CR69_FADEDIS_AD5_ENABLED,
- AB8500_CODEC_CR69_FADEDIS_AD5_DISABLED
-} t_ab8500_codec_cr69_fadedis_ad5;
-
-/* CR69 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr69_ad5gain;
-
-/* CR70 - 6 */
-typedef enum {
- AB8500_CODEC_CR70_FADEDIS_AD6_ENABLED,
- AB8500_CODEC_CR70_FADEDIS_AD6_DISABLED
-} t_ab8500_codec_cr70_fadedis_ad6;
-
-/* CR70 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr70_ad6gain;
-
-/* CR71 - 6 */
-typedef enum {
- AB8500_CODEC_CR71_FADEDIS_DA1_ENABLED,
- AB8500_CODEC_CR71_FADEDIS_DA1_DISABLED
-} t_ab8500_codec_cr71_fadedis_da1;
-
-/* CR71 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr71_da1gain;
-
-/* CR72 - 6 */
-typedef enum {
- AB8500_CODEC_CR72_FADEDIS_DA2_ENABLED,
- AB8500_CODEC_CR72_FADEDIS_DA2_DISABLED
-} t_ab8500_codec_cr72_fadedis_da2;
-
-/* CR72 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr72_da2gain;
-
-/* CR73 - 6 */
-typedef enum {
- AB8500_CODEC_CR73_FADEDIS_DA3_ENABLED,
- AB8500_CODEC_CR73_FADEDIS_DA3_DISABLED
-} t_ab8500_codec_cr73_fadedis_da3;
-
-/* CR73 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr73_da3gain;
-
-/* CR74 - 6 */
-typedef enum {
- AB8500_CODEC_CR74_FADEDIS_DA4_ENABLED,
- AB8500_CODEC_CR74_FADEDIS_DA4_DISABLED
-} t_ab8500_codec_cr74_fadedis_da4;
-
-/* CR74 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr74_da4gain;
-
-/* CR75 - 6 */
-typedef enum {
- AB8500_CODEC_CR75_FADEDIS_DA5_ENABLED,
- AB8500_CODEC_CR75_FADEDIS_DA5_DISABLED
-} t_ab8500_codec_cr75_fadedis_da5;
-
-/* CR75 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr75_da5gain;
-
-/* CR76 - 6 */
-typedef enum {
- AB8500_CODEC_CR76_FADEDIS_DA6_ENABLED,
- AB8500_CODEC_CR76_FADEDIS_DA6_DISABLED
-} t_ab8500_codec_cr76_fadedis_da6;
-
-/* CR76 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr76_da6gain;
-
-/* CR77 - 6 */
-typedef enum {
- AB8500_CODEC_CR77_FADEDIS_AD1L_TO_HFL_ENABLED,
- AB8500_CODEC_CR77_FADEDIS_AD1L_TO_HFL_DISABLED
-} t_ab8500_codec_cr77_fadedis_ad1l;
-
-/* CR77 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr77_ad1lbgain_to_hfl;
-
-/* CR78 - 6 */
-typedef enum {
- AB8500_CODEC_CR78_FADEDIS_AD2L_TO_HFR_ENABLED,
- AB8500_CODEC_CR78_FADEDIS_AD2L_TO_HFR_DISABLED
-} t_ab8500_codec_cr78_fadedis_ad2l;
-
-/* CR78 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr78_ad2lbgain_to_hfr;
-
-/* CR79 - 7 */
-typedef enum {
- AB8500_CODEC_CR79_HSSINC1_SINC3_CHOOSEN,
- AB8500_CODEC_CR79_HSSINC1_SINC1_CHOOSEN
-} t_ab8500_codec_cr79_hssinc1;
-
-/* CR79 - 4 */
-typedef enum {
- AB8500_CODEC_CR79_FADEDIS_HSL_ENABLED,
- AB8500_CODEC_CR79_FADEDIS_HSL_DISABLED
-} t_ab8500_codec_cr79_fadedis_hsl;
-
-/* CR79 - 3:0 */
-typedef t_uint8 t_ab8500_codec_cr79_hsldgain;
-
-/* CR80 - 4 */
-typedef enum {
- AB8500_CODEC_CR80_FADEDIS_HSR_ENABLED,
- AB8500_CODEC_CR80_FADEDIS_HSR_DISABLED
-} t_ab8500_codec_cr80_fadedis_hsr;
-
-/* CR80 - 3:0 */
-typedef t_uint8 t_ab8500_codec_cr80_hsrdgain;
-
-/* CR81 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr81_stfir1gain;
-
-/* CR82 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr82_stfir2gain;
-
-/* CR83 - 2 */
-typedef enum {
- AB8500_CODEC_CR83_ENANC_DISABLED,
- AB8500_CODEC_CR83_ENANC_ENABLED
-} t_ab8500_codec_cr83_enanc;
-
-/* CR83 - 1 */
-typedef enum {
- AB8500_CODEC_CR83_ANCIIRINIT_NOT_STARTED,
- AB8500_CODEC_CR83_ANCIIRINIT_STARTED
-} t_ab8500_codec_cr83_anciirinit;
-
-/* CR83 - 0 */
-typedef enum {
- AB8500_CODEC_CR83_ANCFIRUPDATE_RESETTED,
- AB8500_CODEC_CR83_ANCFIRUPDATE_NOT_RESETTED
-} t_ab8500_codec_cr83_ancfirupdate;
-
-/* CR84 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr84_ancinshift;
-
-/* CR85 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr85_ancfiroutshift;
-
-/* CR86 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr86_ancshiftout;
-
-/* CR87 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr87_ancfircoeff_msb;
-
-/* CR88 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr88_ancfircoeff_lsb;
-
-/* CR89 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr89_anciircoeff_msb;
-
-/* CR90 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr90_anciircoeff_lsb;
-
-/* CR91 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr91_ancwarpdel_msb;
-
-/* CR92 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr92_ancwarpdel_lsb;
-
-/* CR93 - Read Only */
-/* CR93 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr93_ancfirpeak_msb;
-
-/* CR94 - Read Only */
-/* CR94 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr94_ancfirpeak_lsb;
-
-/* CR95 - Read Only */
-/* CR95 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr95_anciirpeak_msb;
-
-/* CR96 - Read Only */
-/* CR96 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr96_anciirpeak_lsb;
-
-/* CR97 - 7 */
-typedef enum {
- AB8500_CODEC_CR97_STFIR_SET_LAST_NOT_APPLIED,
- AB8500_CODEC_CR97_STFIR_SET_LAST_APPLIED
-} t_ab8500_codec_cr97_stfir_set;
-
-/* CR97 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr97_stfir_addr;
-
-/* CR98 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr98_stfir_coeff_msb;
-
-/* CR99 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr99_stfir_coeff_lsb;
-
-/* CR100 - 2 */
-typedef enum {
- AB8500_CODEC_CR100_ENSTFIRS_DISABLED,
- AB8500_CODEC_CR100_ENSTFIRS_ENABLED
-} t_ab8500_codec_cr100_enstfirs;
-
-/* CR100 - 1 */
-typedef enum {
- AB8500_CODEC_CR100_STFIRSTOIF1_AUD_IF0_DATA_RATE,
- AB8500_CODEC_CR100_STFIRSTOIF1_AUD_IF1_DATA_RATE
-} t_ab8500_codec_cr100_stfirstoif1;
-
-/* CR100 - 0 */
-typedef enum {
- AB8500_CODEC_CR100_STFIR_BUSY_READY,
- AB8500_CODEC_CR100_STFIR_BUSY_NOT_READY
-} t_ab8500_codec_cr100_stfir_busy;
-
-/* CR101 - 7 */
-typedef enum {
- AB8500_CODEC_CR101_PARLHF_INDEPENDENT,
- AB8500_CODEC_CR101_PARLHF_BRIDGED
-} t_ab8500_codec_cr101_parlhf;
-
-/* CR101 - 6 */
-typedef enum {
- AB8500_CODEC_CR101_PARLVIB_INDEPENDENT,
- AB8500_CODEC_CR101_PARLVIB_BRIDGED
-} t_ab8500_codec_cr101_parlvib;
-
-/* CR101 - 3 */
-typedef enum {
- AB8500_CODEC_CR101_CLASSD_VIBLSWAPEN_DISABLED,
- AB8500_CODEC_CR101_CLASSD_VIBLSWAPEN_ENABLED
-} t_ab8500_codec_cr101_classd_viblswapen;
-
-/* CR101 - 2 */
-typedef enum {
- AB8500_CODEC_CR101_CLASSD_VIBRSWAPEN_DISABLED,
- AB8500_CODEC_CR101_CLASSD_VIBRSWAPEN_ENABLED
-} t_ab8500_codec_cr101_classd_vibrswapen;
-
-/* CR101 - 1 */
-typedef enum {
- AB8500_CODEC_CR101_CLASSD_HFLSWAPEN_DISABLED,
- AB8500_CODEC_CR101_CLASSD_HFLSWAPEN_ENABLED
-} t_ab8500_codec_cr101_classd_hflswapen;
-
-/* CR101 - 0 */
-typedef enum {
- AB8500_CODEC_CR101_CLASSD_HFRSWAPEN_DISABLED,
- AB8500_CODEC_CR101_CLASSD_HFRSWAPEN_ENABLED
-} t_ab8500_codec_cr101_classd_hfrswapen;
-
-/* CR102 - 7:4 */
-typedef enum {
- AB8500_CODEC_CR102_CLASSD_FIRBYP_ALL_ENABLED = 0,
- AB8500_CODEC_CR102_CLASSD_FIRBYP_HFL_BYPASSED = 1,
- AB8500_CODEC_CR102_CLASSD_FIRBYP_HFR_BYPASSED = 2,
- AB8500_CODEC_CR102_CLASSD_FIRBYP_VIBL_BYPASSED = 4,
- AB8500_CODEC_CR102_CLASSD_FIRBYP_VIBR_BYPASSED = 8
-} t_ab8500_codec_cr102_classd_firbyp;
-
-/* CR102 - 3:0 */
-typedef enum {
- AB8500_CODEC_CR102_CLASSD_HIGHVOLEN_DISABLED = 0,
- AB8500_CODEC_CR102_CLASSD_HIGHVOLEN_HFL_HIGHVOL = 1,
- AB8500_CODEC_CR102_CLASSD_HIGHVOLEN_HFR_HIGHVOL = 2,
- AB8500_CODEC_CR102_CLASSD_HIGHVOLEN_VIBL_HIGHVOL = 4,
- AB8500_CODEC_CR102_CLASSD_HIGHVOLEN_VIBR_HIGHVOL = 8
-} t_ab8500_codec_cr102_classd_highvolen;
-
-/* CR103 - 7:4 */
-typedef t_uint8 t_ab8500_codec_cr103_classd_ditherhpgain;
-
-/* CR103 - 3:0 */
-typedef t_uint8 t_ab8500_codec_cr103_classd_ditherwgain;
-
-/* CR104 - 5:0 */
-/* In ab8500_codec.h */
-
-/* CR105 - 7:0 */
-/* In ab8500_codec.h */
-
-/* CR106 - 6:4 */
-/* In ab8500_codec.h */
-
-/* CR106 - 2 */
-/* In ab8500_codec.h */
-
-/* CR106 - 1 */
-/* In ab8500_codec.h */
-
-/* CR106 - 0 */
-/* In ab8500_codec.h */
-
-/* CR107 - 7:0 */
-/* In ab8500_codec.h */
-
-/* CR108 - 7:0 */
-/* In ab8500_codec.h */
-
-/* CR109 - Read Only */
-/* CR109 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr109_bfifosamples;
-
-typedef enum {
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT1,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT2,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT3,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT4,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT5,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT6,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT7,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT8,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_ZEROS,
- AB8500_CODEC_CR31_TO_CR46_SLOT_IS_TRISTATE = 15,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_UNDEFINED
-} t_ab8500_codec_cr31_to_cr46_ad_data_allocation;
-
-typedef enum {
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT00,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT01,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT02,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT03,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT04,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT05,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT06,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT07,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT08,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT09,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT10,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT11,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT12,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT13,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT14,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT15,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT16,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT17,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT18,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT19,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT20,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT21,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT22,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT23,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT24,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT25,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT26,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT27,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT28,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT29,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT30,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT31,
- AB8500_CODEC_CR51_TO_CR56_SLTODA_SLOT_UNDEFINED
-} t_ab8500_codec_cr51_to_cr56_sltoda;
-
-/* CR104 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr104_bfifoint;
-
-/* CR105 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr105_bfifotx;
-
-/* CR106 - 6:4 */
-typedef enum {
- AB8500_CODEC_CR106_BFIFOFSEXT_NO_EXTRA_CLK,
- AB8500_CODEC_CR106_BFIFOFSEXT_1SLOT_EXTRA_CLK,
- AB8500_CODEC_CR106_BFIFOFSEXT_2SLOT_EXTRA_CLK,
- AB8500_CODEC_CR106_BFIFOFSEXT_3SLOT_EXTRA_CLK,
- AB8500_CODEC_CR106_BFIFOFSEXT_4SLOT_EXTRA_CLK,
- AB8500_CODEC_CR106_BFIFOFSEXT_5SLOT_EXTRA_CLK,
- AB8500_CODEC_CR106_BFIFOFSEXT_6SLOT_EXTRA_CLK
-} t_ab8500_codec_cr106_bfifofsext;
-
-/* CR106 - 2 */
-typedef enum {
- AB8500_CODEC_CR106_BFIFOMSK_AD_DATA0_UNMASKED,
- AB8500_CODEC_CR106_BFIFOMSK_AD_DATA0_MASKED
-} t_ab8500_codec_cr106_bfifomsk;
-
-/* CR106 - 1 */
-typedef enum {
- AB8500_CODEC_CR106_BFIFOMSTR_SLAVE_MODE,
- AB8500_CODEC_CR106_BFIFOMSTR_MASTER_MODE
-} t_ab8500_codec_cr106_bfifomstr;
-
-/* CR106 - 0 */
-typedef enum {
- AB8500_CODEC_CR106_BFIFOSTRT_STOPPED,
- AB8500_CODEC_CR106_BFIFOSTRT_RUNNING
-} t_ab8500_codec_cr106_bfifostrt;
-
-/* CR107 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr107_bfifosampnr;
-
-/* CR108 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr108_bfifowakeup;
-
-/*configuration structure for AB8500 Codec*/
-typedef struct {
- /* CR0 */
- t_ab8500_codec_cr0_powerup cr0_powerup;
- t_ab8500_codec_cr0_enaana cr0_enaana;
-
- /* CR1 */
- t_ab8500_codec_cr1_swreset cr1_swreset;
-
- /* CR2 */
- t_ab8500_codec_cr2_enad1 cr2_enad1;
- t_ab8500_codec_cr2_enad2 cr2_enad2;
- t_ab8500_codec_cr2_enad3 cr2_enad3;
- t_ab8500_codec_cr2_enad4 cr2_enad4;
- t_ab8500_codec_cr2_enad5 cr2_enad5;
- t_ab8500_codec_cr2_enad6 cr2_enad6;
-
- /* CR3 */
- t_ab8500_codec_cr3_enda1 cr3_enda1;
- t_ab8500_codec_cr3_enda2 cr3_enda2;
- t_ab8500_codec_cr3_enda3 cr3_enda3;
- t_ab8500_codec_cr3_enda4 cr3_enda4;
- t_ab8500_codec_cr3_enda5 cr3_enda5;
- t_ab8500_codec_cr3_enda6 cr3_enda6;
-
- /* CR4 */
- t_ab8500_codec_cr4_lowpowhs cr4_lowpowhs;
- t_ab8500_codec_cr4_lowpowdachs cr4_lowpowdachs;
- t_ab8500_codec_cr4_lowpowear cr4_lowpowear;
- t_ab8500_codec_cr4_ear_sel_cm cr4_ear_sel_cm;
- t_ab8500_codec_cr4_hs_hp_dis cr4_hs_hp_dis;
- t_ab8500_codec_cr4_ear_hp_dis cr4_ear_hp_dis;
-
- /* CR5 */
- t_ab8500_codec_cr5_enmic1 cr5_enmic1;
- t_ab8500_codec_cr5_enmic2 cr5_enmic2;
- t_ab8500_codec_cr5_enlinl cr5_enlinl;
- t_ab8500_codec_cr5_enlinr cr5_enlinr;
- t_ab8500_codec_cr5_mutmic1 cr5_mutmic1;
- t_ab8500_codec_cr5_mutmic2 cr5_mutmic2;
- t_ab8500_codec_cr5_mutlinl cr5_mutlinl;
- t_ab8500_codec_cr5_mutlinr cr5_mutlinr;
-
- /* CR6 */
- t_ab8500_codec_cr6_endmic1 cr6_endmic1;
- t_ab8500_codec_cr6_endmic2 cr6_endmic2;
- t_ab8500_codec_cr6_endmic3 cr6_endmic3;
- t_ab8500_codec_cr6_endmic4 cr6_endmic4;
- t_ab8500_codec_cr6_endmic5 cr6_endmic5;
- t_ab8500_codec_cr6_endmic6 cr6_endmic6;
-
- /* CR7 */
- t_ab8500_codec_cr7_mic1sel cr7_mic1sel;
- t_ab8500_codec_cr7_linrsel cr7_linrsel;
- t_ab8500_codec_cr7_endrvhsl cr7_endrvhsl;
- t_ab8500_codec_cr7_endrvhsr cr7_endrvhsr;
- t_ab8500_codec_cr7_enadcmic cr7_enadcmic;
- t_ab8500_codec_cr7_enadclinl cr7_enadclinl;
- t_ab8500_codec_cr7_enadclinr cr7_enadclinr;
-
- /* CR8 */
- t_ab8500_codec_cr8_cp_dis_pldwn cr8_cp_dis_pldwn;
- t_ab8500_codec_cr8_enear cr8_enear;
- t_ab8500_codec_cr8_enhsl cr8_enhsl;
- t_ab8500_codec_cr8_enhsr cr8_enhsr;
- t_ab8500_codec_cr8_enhfl cr8_enhfl;
- t_ab8500_codec_cr8_enhfr cr8_enhfr;
- t_ab8500_codec_cr8_envibl cr8_envibl;
- t_ab8500_codec_cr8_envibr cr8_envibr;
-
- /* CR9 */
- t_ab8500_codec_cr9_endacear cr9_endacear;
- t_ab8500_codec_cr9_endachsl cr9_endachsl;
- t_ab8500_codec_cr9_endachsr cr9_endachsr;
- t_ab8500_codec_cr9_endachfl cr9_endachfl;
- t_ab8500_codec_cr9_endachfr cr9_endachfr;
- t_ab8500_codec_cr9_endacvibl cr9_endacvibl;
- t_ab8500_codec_cr9_endacvibr cr9_endacvibr;
-
- /* CR10 */
- t_ab8500_codec_cr10_muteear cr10_muteear;
- t_ab8500_codec_cr10_mutehsl cr10_mutehsl;
- t_ab8500_codec_cr10_mutehsr cr10_mutehsr;
- t_ab8500_codec_cr10_mutehfl cr10_mutehfl;
- t_ab8500_codec_cr10_mutehfr cr10_mutehfr;
- t_ab8500_codec_cr10_mutevibl cr10_mutevibl;
- t_ab8500_codec_cr10_mutevibr cr10_mutevibr;
-
- /* CR11 */
- t_ab8500_codec_cr11_earshortpwd cr11_earshortpwd;
- t_ab8500_codec_cr11_earshortdis cr11_earshortdis;
- t_ab8500_codec_cr11_hslshortdis cr11_hslshortdis;
- t_ab8500_codec_cr11_hsrshortdis cr11_hsrshortdis;
- t_ab8500_codec_cr11_hflshortdis cr11_hflshortdis;
- t_ab8500_codec_cr11_hfrshortdis cr11_hfrshortdis;
- t_ab8500_codec_cr11_viblshortdis cr11_viblshortdis;
- t_ab8500_codec_cr11_vibrshortdis cr11_vibrshortdis;
-
- /* CR12 */
- t_ab8500_codec_cr12_encphs cr12_encphs;
- t_ab8500_codec_cr12_hsautotime cr12_hsautotime;
- t_ab8500_codec_cr12_hsautoensel cr12_hsautoensel;
- t_ab8500_codec_cr12_hsautoen cr12_hsautoen;
-
- /* CR13 */
- t_ab8500_codec_cr13_envdet_hthresh cr13_envdet_hthresh;
- t_ab8500_codec_cr13_envdet_lthresh cr13_envdet_lthresh;
-
- /* CR14 */
- t_ab8500_codec_cr14_smpslven cr14_smpslven;
- t_ab8500_codec_cr14_envdetsmpsen cr14_envdetsmpsen;
- t_ab8500_codec_cr14_cplven cr14_cplven;
- t_ab8500_codec_cr14_envdetcpen cr14_envdetcpen;
- t_ab8500_codec_cr14_envet_time cr14_envet_time;
-
- /* CR15 */
- t_ab8500_codec_cr15_pwmtovibl cr15_pwmtovibl;
- t_ab8500_codec_cr15_pwmtovibr cr15_pwmtovibr;
- t_ab8500_codec_cr15_pwmlctrl cr15_pwmlctrl;
- t_ab8500_codec_cr15_pwmrctrl cr15_pwmrctrl;
- t_ab8500_codec_cr15_pwmnlctrl cr15_pwmnlctrl;
- t_ab8500_codec_cr15_pwmplctrl cr15_pwmplctrl;
- t_ab8500_codec_cr15_pwmnrctrl cr15_pwmnrctrl;
- t_ab8500_codec_cr15_pwmprctrl cr15_pwmprctrl;
-
- /* CR16 */
- t_ab8500_codec_cr16_pwmnlpol cr16_pwmnlpol;
- t_ab8500_codec_cr16_pwmnldutycycle cr16_pwmnldutycycle;
-
- /* CR17 */
- t_ab8500_codec_cr17_pwmplpol cr17_pwmplpol;
- t_ab8500_codec_cr17_pwmpldutycycle cr17_pwmpldutycycle;
-
- /* CR18 */
- t_ab8500_codec_cr18_pwmnrpol cr18_pwmnrpol;
- t_ab8500_codec_cr18_pwmnrdutycycle cr18_pwmnrdutycycle;
-
- /* CR19 */
- t_ab8500_codec_cr19_pwmprpol cr19_pwmprpol;
- t_ab8500_codec_cr19_pwmprdutycycle cr19_pwmprdutycycle;
-
- /* CR20 */
- t_ab8500_codec_cr20_en_se_mic1 cr20_en_se_mic1;
- t_ab8500_codec_cr20_mic1_gain cr20_mic1_gain;
-
- /* CR21 */
- t_ab8500_codec_cr21_en_se_mic2 cr21_en_se_mic2;
- t_ab8500_codec_cr21_mic2_gain cr21_mic2_gain;
-
- /* CR22 */
- t_ab8500_codec_cr22_hsl_gain cr22_hsl_gain;
- t_ab8500_codec_cr22_linl_gain cr22_linl_gain;
-
- /* CR23 */
- t_ab8500_codec_cr23_hsr_gain cr23_hsr_gain;
- t_ab8500_codec_cr23_linr_gain cr23_linr_gain;
-
- /* CR24 */
- t_ab8500_codec_cr24_lintohsl_gain cr24_lintohsl_gain;
-
- /* CR25 */
- t_ab8500_codec_cr25_lintohsr_gain cr25_lintohsr_gain;
-
- /* CR26 */
- t_ab8500_codec_cr26_ad1nh cr26_ad1nh;
- t_ab8500_codec_cr26_ad2nh cr26_ad2nh;
- t_ab8500_codec_cr26_ad3nh cr26_ad3nh;
- t_ab8500_codec_cr26_ad4nh cr26_ad4nh;
- t_ab8500_codec_cr26_ad1_voice cr26_ad1_voice;
- t_ab8500_codec_cr26_ad2_voice cr26_ad2_voice;
- t_ab8500_codec_cr26_ad3_voice cr26_ad3_voice;
- t_ab8500_codec_cr26_ad4_voice cr26_ad4_voice;
-
- /* CR27 */
- t_ab8500_codec_cr27_en_mastgen cr27_en_mastgen;
- t_ab8500_codec_cr27_if1_bitclk_osr cr27_if1_bitclk_osr;
- t_ab8500_codec_cr27_enfs_bitclk1 cr27_enfs_bitclk1;
- t_ab8500_codec_cr27_if0_bitclk_osr cr27_if0_bitclk_osr;
- t_ab8500_codec_cr27_enfs_bitclk0 cr27_enfs_bitclk0;
-
- /* CR28 */
- t_ab8500_codec_cr28_fsync0p cr28_fsync0p;
- t_ab8500_codec_cr28_bitclk0p cr28_bitclk0p;
- t_ab8500_codec_cr28_if0del cr28_if0del;
- t_ab8500_codec_cr28_if0format cr28_if0format;
- t_ab8500_codec_cr28_if0wl cr28_if0wl;
-
- /* CR29 */
- t_ab8500_codec_cr29_if0datoif1ad cr29_if0datoif1ad;
- t_ab8500_codec_cr29_if0cktoif1ck cr29_if0cktoif1ck;
- t_ab8500_codec_cr29_if1master cr29_if1master;
- t_ab8500_codec_cr29_if1datoif0ad cr29_if1datoif0ad;
- t_ab8500_codec_cr29_if1cktoif0ck cr29_if1cktoif0ck;
- t_ab8500_codec_cr29_if0master cr29_if0master;
- t_ab8500_codec_cr29_if0bfifoen cr29_if0bfifoen;
-
- /* CR30 */
- t_ab8500_codec_cr30_fsync1p cr30_fsync1p;
- t_ab8500_codec_cr30_bitclk1p cr30_bitclk1p;
- t_ab8500_codec_cr30_if1del cr30_if1del;
- t_ab8500_codec_cr30_if1format cr30_if1format;
- t_ab8500_codec_cr30_if1wl cr30_if1wl;
-
- /* CR31 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr31_adotoslot1;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr31_adotoslot0;
-
- /* CR32 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr32_adotoslot3;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr32_adotoslot2;
-
- /* CR33 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr33_adotoslot5;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr33_adotoslot4;
-
- /* CR34 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr34_adotoslot7;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr34_adotoslot6;
-
- /* CR35 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr35_adotoslot9;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr35_adotoslot8;
-
- /* CR36 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr36_adotoslot11;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr36_adotoslot10;
-
- /* CR37 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr37_adotoslot13;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr37_adotoslot12;
-
- /* CR38 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr38_adotoslot15;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr38_adotoslot14;
-
- /* CR39 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr39_adotoslot17;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr39_adotoslot16;
-
- /* CR40 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr40_adotoslot19;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr40_adotoslot18;
-
- /* CR41 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr41_adotoslot21;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr41_adotoslot20;
-
- /* CR42 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr42_adotoslot23;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr42_adotoslot22;
-
- /* CR43 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr43_adotoslot25;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr43_adotoslot24;
-
- /* CR44 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr44_adotoslot27;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr44_adotoslot26;
-
- /* CR45 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr45_adotoslot29;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr45_adotoslot28;
-
- /* CR46 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr46_adotoslot31;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr46_adotoslot30;
-
- /* CR47 */
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl7;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl6;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl5;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl4;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl3;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl2;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl1;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl0;
-
- /* CR48 */
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl15;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl14;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl13;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl12;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl11;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl10;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl9;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl8;
-
- /* CR49 */
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl23;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl22;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl21;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl20;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl19;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl18;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl17;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl16;
-
- /* CR50 */
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl31;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl30;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl29;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl28;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl27;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl26;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl25;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl24;
-
- /* CR51 */
- t_ab8500_codec_cr51_da12_voice cr51_da12_voice;
- t_ab8500_codec_cr51_sldai1toslado1 cr51_sldai1toslado1;
- t_ab8500_codec_cr51_to_cr56_sltoda cr51_sltoda1;
-
- /* CR52 */
- t_ab8500_codec_cr52_sldai2toslado2 cr52_sldai2toslado2;
- t_ab8500_codec_cr51_to_cr56_sltoda cr52_sltoda2;
-
- /* CR53 */
- t_ab8500_codec_cr53_da34_voice cr53_da34_voice;
- t_ab8500_codec_cr53_sldai3toslado3 cr53_sldai3toslado3;
- t_ab8500_codec_cr51_to_cr56_sltoda cr53_sltoda3;
-
- /* CR54 */
- t_ab8500_codec_cr54_sldai4toslado4 cr54_sldai4toslado4;
- t_ab8500_codec_cr51_to_cr56_sltoda cr54_sltoda4;
-
- /* CR55 */
- t_ab8500_codec_cr55_da56_voice cr55_da56_voice;
- t_ab8500_codec_cr55_sldai5toslado5 cr55_sldai5toslado5;
- t_ab8500_codec_cr51_to_cr56_sltoda cr55_sltoda5;
-
- /* CR56 */
- t_ab8500_codec_cr56_sldai6toslado7 cr56_sldai6toslado7;
- t_ab8500_codec_cr51_to_cr56_sltoda cr56_sltoda6;
-
- /* CR57 */
- t_ab8500_codec_cr57_bfifull_msk cr57_bfifull_msk;
- t_ab8500_codec_cr57_bfiempt_msk cr57_bfiempt_msk;
- t_ab8500_codec_cr57_dachan_msk cr57_dachan_msk;
- t_ab8500_codec_cr57_gain_msk cr57_gain_msk;
- t_ab8500_codec_cr57_dspad_msk cr57_dspad_msk;
- t_ab8500_codec_cr57_dspda_msk cr57_dspda_msk;
- t_ab8500_codec_cr57_stfir_msk cr57_stfir_msk;
-
- /* CR58 */
- t_ab8500_codec_cr58_bfifull_ev cr58_bfifull_ev;
- t_ab8500_codec_cr58_bfiempt_ev cr58_bfiempt_ev;
- t_ab8500_codec_cr58_dachan_ev cr58_dachan_ev;
- t_ab8500_codec_cr58_gain_ev cr58_gain_ev;
- t_ab8500_codec_cr58_dspad_ev cr58_dspad_ev;
- t_ab8500_codec_cr58_dspda_ev cr58_dspda_ev;
- t_ab8500_codec_cr58_stfir_ev cr58_stfir_ev;
-
- /* CR59 */
- t_ab8500_codec_cr59_vssready_msk cr59_vssready_msk;
- t_ab8500_codec_cr59_shrtvibl_msk cr59_shrtvibl_msk;
- t_ab8500_codec_cr59_shrtvibr_msk cr59_shrtvibr_msk;
- t_ab8500_codec_cr59_shrthfl_msk cr59_shrthfl_msk;
- t_ab8500_codec_cr59_shrthfr_msk cr59_shrthfr_msk;
- t_ab8500_codec_cr59_shrthsl_msk cr59_shrthsl_msk;
- t_ab8500_codec_cr59_shrthsr_msk cr59_shrthsr_msk;
- t_ab8500_codec_cr59_shrtear_msk cr59_shrtear_msk;
-
- /* CR60 */
- t_ab8500_codec_cr60_vssready_ev cr60_vssready_ev;
- t_ab8500_codec_cr60_shrtvibl_ev cr60_shrtvibl_ev;
- t_ab8500_codec_cr60_shrtvibr_ev cr60_shrtvibr_ev;
- t_ab8500_codec_cr60_shrthfl_ev cr60_shrthfl_ev;
- t_ab8500_codec_cr60_shrthfr_ev cr60_shrthfr_ev;
- t_ab8500_codec_cr60_shrthsl_ev cr60_shrthsl_ev;
- t_ab8500_codec_cr60_shrthsr_ev cr60_shrthsr_ev;
- t_ab8500_codec_cr60_shrtear_ev cr60_shrtear_ev;
-
- /* CR61 */
- t_ab8500_codec_cr61_revision cr61_revision;
- t_ab8500_codec_cr61_fade_speed cr61_fade_speed;
-
- /* CR62 */
- t_ab8500_codec_cr62_dmic1sinc3 cr62_dmic1sinc3;
- t_ab8500_codec_cr62_dmic2sinc3 cr62_dmic2sinc3;
- t_ab8500_codec_cr62_dmic3sinc3 cr62_dmic3sinc3;
- t_ab8500_codec_cr62_dmic4sinc3 cr62_dmic4sinc3;
- t_ab8500_codec_cr62_dmic5sinc3 cr62_dmic5sinc3;
- t_ab8500_codec_cr62_dmic6sinc3 cr62_dmic6sinc3;
-
- /* CR63 */
- t_ab8500_codec_cr63_datohslen cr63_datohslen;
- t_ab8500_codec_cr63_datohsren cr63_datohsren;
- t_ab8500_codec_cr63_ad1sel cr63_ad1sel;
- t_ab8500_codec_cr63_ad2sel cr63_ad2sel;
- t_ab8500_codec_cr63_ad3sel cr63_ad3sel;
- t_ab8500_codec_cr63_ad5sel cr63_ad5sel;
- t_ab8500_codec_cr63_ad6sel cr63_ad6sel;
- t_ab8500_codec_cr63_ancsel cr63_ancsel;
-
- /* CR64 */
- t_ab8500_codec_cr64_datohfren cr64_datohfren;
- t_ab8500_codec_cr64_datohflen cr64_datohflen;
- t_ab8500_codec_cr64_hfrsel cr64_hfrsel;
- t_ab8500_codec_cr64_hflsel cr64_hflsel;
- t_ab8500_codec_cr64_stfir1sel cr64_stfir1sel;
- t_ab8500_codec_cr64_stfir2sel cr64_stfir2sel;
-
- /* CR65 */
- t_ab8500_codec_cr65_fadedis_ad1 cr65_fadedis_ad1;
- t_ab8500_codec_cr65_ad1gain cr65_ad1gain;
-
- /* CR66 */
- t_ab8500_codec_cr66_fadedis_ad2 cr66_fadedis_ad2;
- t_ab8500_codec_cr66_ad2gain cr66_ad2gain;
-
- /* CR67 */
- t_ab8500_codec_cr67_fadedis_ad3 cr67_fadedis_ad3;
- t_ab8500_codec_cr67_ad3gain cr67_ad3gain;
-
- /* CR68 */
- t_ab8500_codec_cr68_fadedis_ad4 cr68_fadedis_ad4;
- t_ab8500_codec_cr68_ad4gain cr68_ad4gain;
-
- /* CR69 */
- t_ab8500_codec_cr69_fadedis_ad5 cr69_fadedis_ad5;
- t_ab8500_codec_cr69_ad5gain cr69_ad5gain;
-
- /* CR70 */
- t_ab8500_codec_cr70_fadedis_ad6 cr70_fadedis_ad6;
- t_ab8500_codec_cr70_ad6gain cr70_ad6gain;
-
- /* CR71 */
- t_ab8500_codec_cr71_fadedis_da1 cr71_fadedis_da1;
- t_ab8500_codec_cr71_da1gain cr71_da1gain;
-
- /* CR72 */
- t_ab8500_codec_cr72_fadedis_da2 cr72_fadedis_da2;
- t_ab8500_codec_cr72_da2gain cr72_da2gain;
-
- /* CR73 */
- t_ab8500_codec_cr73_fadedis_da3 cr73_fadedis_da3;
- t_ab8500_codec_cr73_da3gain cr73_da3gain;
-
- /* CR74 */
- t_ab8500_codec_cr74_fadedis_da4 cr74_fadedis_da4;
- t_ab8500_codec_cr74_da4gain cr74_da4gain;
-
- /* CR75 */
- t_ab8500_codec_cr75_fadedis_da5 cr75_fadedis_da5;
- t_ab8500_codec_cr75_da5gain cr75_da5gain;
-
- /* CR76 */
- t_ab8500_codec_cr76_fadedis_da6 cr76_fadedis_da6;
- t_ab8500_codec_cr76_da6gain cr76_da6gain;
-
- /* CR77 */
- t_ab8500_codec_cr77_fadedis_ad1l cr77_fadedis_ad1l;
- t_ab8500_codec_cr77_ad1lbgain_to_hfl cr77_ad1lbgain_to_hfl;
-
- /* CR78 */
- t_ab8500_codec_cr78_fadedis_ad2l cr78_fadedis_ad2l;
- t_ab8500_codec_cr78_ad2lbgain_to_hfr cr78_ad2lbgain_to_hfr;
-
- /* CR79 */
- t_ab8500_codec_cr79_hssinc1 cr79_hssinc1;
- t_ab8500_codec_cr79_fadedis_hsl cr79_fadedis_hsl;
- t_ab8500_codec_cr79_hsldgain cr79_hsldgain;
-
- /* CR80 */
- t_ab8500_codec_cr80_fadedis_hsr cr80_fadedis_hsr;
- t_ab8500_codec_cr80_hsrdgain cr80_hsrdgain;
-
- /* CR81 */
- t_ab8500_codec_cr81_stfir1gain cr81_stfir1gain;
-
- /* CR82 */
- t_ab8500_codec_cr82_stfir2gain cr82_stfir2gain;
-
- /* CR83 */
- t_ab8500_codec_cr83_enanc cr83_enanc;
- t_ab8500_codec_cr83_anciirinit cr83_anciirinit;
- t_ab8500_codec_cr83_ancfirupdate cr83_ancfirupdate;
-
- /* CR84 */
- t_ab8500_codec_cr84_ancinshift cr84_ancinshift;
-
- /* CR85 */
- t_ab8500_codec_cr85_ancfiroutshift cr85_ancfiroutshift;
-
- /* CR86 */
- t_ab8500_codec_cr86_ancshiftout cr86_ancshiftout;
-
- /* CR87 */
- t_ab8500_codec_cr87_ancfircoeff_msb cr87_ancfircoeff_msb;
-
- /* CR88 */
- t_ab8500_codec_cr88_ancfircoeff_lsb cr88_ancfircoeff_lsb;
-
- /* CR89 */
- t_ab8500_codec_cr89_anciircoeff_msb cr89_anciircoeff_msb;
-
- /* CR90 */
- t_ab8500_codec_cr90_anciircoeff_lsb cr90_anciircoeff_lsb;
-
- /* CR91 */
- t_ab8500_codec_cr91_ancwarpdel_msb cr91_ancwarpdel_msb;
-
- /* CR92 */
- t_ab8500_codec_cr92_ancwarpdel_lsb cr92_ancwarpdel_lsb;
-
- /* CR93 */
- t_ab8500_codec_cr93_ancfirpeak_msb cr93_ancfirpeak_msb;
-
- /* CR94 */
- t_ab8500_codec_cr94_ancfirpeak_lsb cr94_ancfirpeak_lsb;
-
- /* CR95 */
- t_ab8500_codec_cr95_anciirpeak_msb cr95_anciirpeak_msb;
-
- /* CR96 */
- t_ab8500_codec_cr96_anciirpeak_lsb cr96_anciirpeak_lsb;
-
- /* CR97 */
- t_ab8500_codec_cr97_stfir_set cr97_stfir_set;
- t_ab8500_codec_cr97_stfir_addr cr97_stfir_addr;
-
- /* CR98 */
- t_ab8500_codec_cr98_stfir_coeff_msb cr98_stfir_coeff_msb;
-
- /* CR99 */
- t_ab8500_codec_cr99_stfir_coeff_lsb cr99_stfir_coeff_lsb;
-
- /* CR100 */
- t_ab8500_codec_cr100_enstfirs cr100_enstfirs;
- t_ab8500_codec_cr100_stfirstoif1 cr100_stfirstoif1;
- t_ab8500_codec_cr100_stfir_busy cr100_stfir_busy;
-
- /* CR101 */
- t_ab8500_codec_cr101_parlhf cr101_parlhf;
- t_ab8500_codec_cr101_parlvib cr101_parlvib;
- t_ab8500_codec_cr101_classd_viblswapen cr101_classd_viblswapen;
- t_ab8500_codec_cr101_classd_vibrswapen cr101_classd_vibrswapen;
- t_ab8500_codec_cr101_classd_hflswapen cr101_classd_hflswapen;
- t_ab8500_codec_cr101_classd_hfrswapen cr101_classd_hfrswapen;
-
- /* CR102 */
- t_ab8500_codec_cr102_classd_firbyp cr102_classd_firbyp;
- t_ab8500_codec_cr102_classd_highvolen cr102_classd_highvolen;
-
- /* CR103 */
- t_ab8500_codec_cr103_classd_ditherhpgain cr103_classd_ditherhpgain;
- t_ab8500_codec_cr103_classd_ditherwgain cr103_classd_ditherwgain;
-
- /* CR104 */
- t_ab8500_codec_cr104_bfifoint cr104_bfifoint;
-
- /* CR105 */
- t_ab8500_codec_cr105_bfifotx cr105_bfifotx;
-
- /* CR106 */
- t_ab8500_codec_cr106_bfifofsext cr106_bfifofsext;
- t_ab8500_codec_cr106_bfifomsk cr106_bfifomsk;
- t_ab8500_codec_cr106_bfifomstr cr106_bfifomstr;
- t_ab8500_codec_cr106_bfifostrt cr106_bfifostrt;
-
- /* CR107 */
- t_ab8500_codec_cr107_bfifosampnr cr107_bfifosampnr;
-
- /* CR108 */
- t_ab8500_codec_cr108_bfifowakeup cr108_bfifowakeup;
-
- /* CR109 */
- t_ab8500_codec_cr109_bfifosamples cr109_bfifosamples;
-
-} t_ab8500_codec_configuration;
-
-typedef enum {
- AB8500_CODEC_DIRECTION_IN,
- AB8500_CODEC_DIRECTION_OUT,
- AB8500_CODEC_DIRECTION_INOUT
-} t_ab8500_codec_direction;
-
-typedef enum {
- AB8500_CODEC_MODE_HIFI,
- AB8500_CODEC_MODE_VOICE,
- AB8500_CODEC_MODE_MANUAL_SETTING
-} t_ab8500_codec_mode;
-
-typedef enum {
- AB8500_CODEC_AUDIO_INTERFACE_0,
- AB8500_CODEC_AUDIO_INTERFACE_1
-} t_ab8500_codec_audio_interface;
-
-typedef enum {
- AB8500_CODEC_SRC_LINEIN,
- AB8500_CODEC_SRC_MICROPHONE_1A,
- AB8500_CODEC_SRC_MICROPHONE_1B,
- AB8500_CODEC_SRC_MICROPHONE_2,
- AB8500_CODEC_SRC_D_MICROPHONE_1,
- AB8500_CODEC_SRC_D_MICROPHONE_2,
- AB8500_CODEC_SRC_D_MICROPHONE_3,
- AB8500_CODEC_SRC_D_MICROPHONE_4,
- AB8500_CODEC_SRC_D_MICROPHONE_5,
- AB8500_CODEC_SRC_D_MICROPHONE_6,
- AB8500_CODEC_SRC_FM_RX,
- AB8500_CODEC_SRC_ALL
-} t_ab8500_codec_src;
-
-typedef enum {
- AB8500_CODEC_DEST_HEADSET,
- AB8500_CODEC_DEST_EARPIECE,
- AB8500_CODEC_DEST_HANDSFREE,
- AB8500_CODEC_DEST_VIBRATOR_L,
- AB8500_CODEC_DEST_VIBRATOR_R,
- AB8500_CODEC_DEST_ALL
-} t_ab8500_codec_dest;
-
-typedef struct {
- t_uint8 slave_address_of_ab8500_codec;
- t_ab8500_codec_direction ab8500_codec_direction;
- t_ab8500_codec_mode ab8500_codec_mode_in;
- t_ab8500_codec_mode ab8500_codec_mode_out;
- t_ab8500_codec_audio_interface audio_interface;
- t_ab8500_codec_src ab8500_codec_src;
- t_ab8500_codec_dest ab8500_codec_dest;
- t_uint8 in_left_volume;
- t_uint8 in_right_volume;
- t_uint8 out_left_volume;
- t_uint8 out_right_volume;
-
- t_ab8500_codec_configuration ab8500_codec_configuration;
-} t_ab8500_codec_system_context;
-#endif /* _AB8500_CODECP_H_ */
-
-/* End of file AB8500_CODECP.h */
diff --git a/arch/arm/mach-ux500/include/mach/ab8500_codec_p_v1_0.h b/arch/arm/mach-ux500/include/mach/ab8500_codec_p_v1_0.h
deleted file mode 100644
index 866cd0c80f1..00000000000
--- a/arch/arm/mach-ux500/include/mach/ab8500_codec_p_v1_0.h
+++ /dev/null
@@ -1,3037 +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 Private Header file for AB8500 CODEC
-* \author ST-Ericsson
-*/
-/*****************************************************************************/
-
-#ifndef _AB8500_CODECP_V1_0_H_
-#define _AB8500_CODECP_V1_0_H_
-
-/*----------------------------------------------------------------------------
- * Includes
- *---------------------------------------------------------------------------*/
-#include "hcl_defs.h"
-
-#define AB8500_CODEC_HCL_VERSION_ID 3
-#define AB8500_CODEC_HCL_MAJOR_ID 0
-#define AB8500_CODEC_HCL_MINOR_ID 0
-
-#define AB8500_CODEC_MASK_ONE_BIT 0x1UL
-#define AB8500_CODEC_MASK_TWO_BITS 0x3UL
-#define AB8500_CODEC_MASK_THREE_BITS 0x7UL
-#define AB8500_CODEC_MASK_FOUR_BITS 0xFUL
-#define AB8500_CODEC_MASK_FIVE_BITS 0x1FUL
-#define AB8500_CODEC_MASK_SIX_BITS 0x3FUL
-#define AB8500_CODEC_MASK_SEVEN_BITS 0x7FUL
-#define AB8500_CODEC_MASK_EIGHT_BITS 0xFFUL
-
-#define AB8500_CODEC_WRITE_BITS(reg, val, bit_nb, pos) (reg) = ((t_uint8) ((((reg) & (~(bit_nb << pos))) | (((val) & bit_nb) << pos))))
-
-#define AB8500_CODEC_BLOCK 0x0D
-
-#define AB8500_CODEC_MASK_TWO_MS_BITS 0xC0UL
-#define AB8500_CODEC_MASK_SIX_LS_BITS 0x3FUL
-
-/* Genepi AudioCodec Control Registers */
-
-#define AB8500_CODEC_CR0 0x00
-#define AB8500_CODEC_CR1 0x01
-#define AB8500_CODEC_CR2 0x02
-#define AB8500_CODEC_CR3 0x03
-#define AB8500_CODEC_CR4 0x04
-#define AB8500_CODEC_CR5 0x05
-#define AB8500_CODEC_CR6 0x06
-#define AB8500_CODEC_CR7 0x07
-#define AB8500_CODEC_CR8 0x08
-#define AB8500_CODEC_CR9 0x09
-#define AB8500_CODEC_CR10 0x0A
-#define AB8500_CODEC_CR11 0x0B
-#define AB8500_CODEC_CR12 0x0C
-#define AB8500_CODEC_CR13 0x0D
-#define AB8500_CODEC_CR14 0x0E
-#define AB8500_CODEC_CR15 0x0F
-#define AB8500_CODEC_CR16 0x10
-#define AB8500_CODEC_CR17 0x11
-#define AB8500_CODEC_CR18 0x12
-#define AB8500_CODEC_CR19 0x13
-#define AB8500_CODEC_CR20 0x14
-#define AB8500_CODEC_CR21 0x15
-#define AB8500_CODEC_CR22 0x16
-#define AB8500_CODEC_CR23 0x17
-#define AB8500_CODEC_CR24 0x18
-#define AB8500_CODEC_CR25 0x19
-#define AB8500_CODEC_CR26 0x1A
-#define AB8500_CODEC_CR27 0x1B
-#define AB8500_CODEC_CR28 0x1C
-#define AB8500_CODEC_CR29 0x1D
-#define AB8500_CODEC_CR30 0x1E
-#define AB8500_CODEC_CR31 0x1F
-#define AB8500_CODEC_CR32 0x20
-#define AB8500_CODEC_CR33 0x21
-#define AB8500_CODEC_CR34 0x22
-#define AB8500_CODEC_CR35 0x23
-#define AB8500_CODEC_CR36 0x24
-#define AB8500_CODEC_CR37 0x25
-#define AB8500_CODEC_CR38 0x26
-#define AB8500_CODEC_CR39 0x27
-#define AB8500_CODEC_CR40 0x28
-#define AB8500_CODEC_CR41 0x29
-#define AB8500_CODEC_CR42 0x2A
-#define AB8500_CODEC_CR43 0x2B
-#define AB8500_CODEC_CR44 0x2C
-#define AB8500_CODEC_CR45 0x2D
-#define AB8500_CODEC_CR46 0x2E
-#define AB8500_CODEC_CR47 0x2F
-#define AB8500_CODEC_CR48 0x30
-#define AB8500_CODEC_CR49 0x31
-#define AB8500_CODEC_CR50 0x32
-#define AB8500_CODEC_CR51 0x33
-#define AB8500_CODEC_CR52 0x34
-#define AB8500_CODEC_CR53 0x35
-#define AB8500_CODEC_CR54 0x36
-#define AB8500_CODEC_CR55 0x37
-#define AB8500_CODEC_CR56 0x38
-#define AB8500_CODEC_CR57 0x39
-#define AB8500_CODEC_CR58 0x3A
-#define AB8500_CODEC_CR59 0x3B
-#define AB8500_CODEC_CR60 0x3C
-#define AB8500_CODEC_CR61 0x3D
-#define AB8500_CODEC_CR62 0x3E
-#define AB8500_CODEC_CR63 0x3F
-#define AB8500_CODEC_CR64 0x40
-#define AB8500_CODEC_CR65 0x41
-#define AB8500_CODEC_CR66 0x42
-#define AB8500_CODEC_CR67 0x43
-#define AB8500_CODEC_CR68 0x44
-#define AB8500_CODEC_CR69 0x45
-#define AB8500_CODEC_CR70 0x46
-#define AB8500_CODEC_CR71 0x47
-#define AB8500_CODEC_CR72 0x48
-#define AB8500_CODEC_CR73 0x49
-#define AB8500_CODEC_CR74 0x4A
-#define AB8500_CODEC_CR75 0x4B
-#define AB8500_CODEC_CR76 0x4C
-#define AB8500_CODEC_CR77 0x4D
-#define AB8500_CODEC_CR78 0x4E
-#define AB8500_CODEC_CR79 0x4F
-#define AB8500_CODEC_CR80 0x50
-#define AB8500_CODEC_CR81 0x51
-#define AB8500_CODEC_CR82 0x52
-#define AB8500_CODEC_CR83 0x53
-#define AB8500_CODEC_CR84 0x54
-#define AB8500_CODEC_CR85 0x55
-#define AB8500_CODEC_CR86 0x56
-#define AB8500_CODEC_CR87 0x57
-#define AB8500_CODEC_CR88 0x58
-#define AB8500_CODEC_CR89 0x59
-#define AB8500_CODEC_CR90 0x5A
-#define AB8500_CODEC_CR91 0x5B
-#define AB8500_CODEC_CR92 0x5C
-#define AB8500_CODEC_CR93 0x5D
-#define AB8500_CODEC_CR94 0x5E
-#define AB8500_CODEC_CR95 0x5F
-#define AB8500_CODEC_CR96 0x60
-#define AB8500_CODEC_CR97 0x61
-#define AB8500_CODEC_CR98 0x62
-#define AB8500_CODEC_CR99 0x63
-#define AB8500_CODEC_CR100 0x64
-#define AB8500_CODEC_CR101 0x65
-#define AB8500_CODEC_CR102 0x66
-#define AB8500_CODEC_CR103 0x67
-#define AB8500_CODEC_CR104 0x68
-#define AB8500_CODEC_CR105 0x69
-#define AB8500_CODEC_CR106 0x6A
-#define AB8500_CODEC_CR107 0x6B
-#define AB8500_CODEC_CR108 0x6C
-#define AB8500_CODEC_CR109 0x6D
-#define AB8500_CODEC_CR110 0x6E
-#define AB8500_CODEC_CR111 0x6F
-
-/* CR0-CR0x0000 */
-#define AB8500_CODEC_CR0_POWERUP 7
-#define AB8500_CODEC_CR0_ENAANA 3
-
-/* CR1-CR0x0001 */
-#define AB8500_CODEC_CR1_SWRESET 7
-
-/* CR2-CR0x0002 */
-#define AB8500_CODEC_CR2_ENAD1 7
-#define AB8500_CODEC_CR2_ENAD2 6
-#define AB8500_CODEC_CR2_ENAD3 5
-#define AB8500_CODEC_CR2_ENAD4 4
-#define AB8500_CODEC_CR2_ENAD5 3
-#define AB8500_CODEC_CR2_ENAD6 2
-
-/* CR3-CR0x0003 */
-#define AB8500_CODEC_CR3_ENDA1 7
-#define AB8500_CODEC_CR3_ENDA2 6
-#define AB8500_CODEC_CR3_ENDA3 5
-#define AB8500_CODEC_CR3_ENDA4 4
-#define AB8500_CODEC_CR3_ENDA5 3
-#define AB8500_CODEC_CR3_ENDA6 2
-
-/* CR4-CR0x0004 */
-#define AB8500_CODEC_CR4_LOWPOWHS 7
-#define AB8500_CODEC_CR4_LOWPOWDACHS 5
-#define AB8500_CODEC_CR4_LOWPOWEAR 4
-#define AB8500_CODEC_CR4_EAR_SEL_CM 2
-#define AB8500_CODEC_CR4_HS_HP_EN 1
-
-/* CR5-CR0x0005 */
-#define AB8500_CODEC_CR5_ENMIC1 7
-#define AB8500_CODEC_CR5_ENMIC2 6
-#define AB8500_CODEC_CR5_ENLINL 5
-#define AB8500_CODEC_CR5_ENLINR 4
-#define AB8500_CODEC_CR5_MUTMIC1 3
-#define AB8500_CODEC_CR5_MUTMIC2 2
-#define AB8500_CODEC_CR5_MUTELINL 1
-#define AB8500_CODEC_CR5_MUTELINR 0
-
-/* CR6-CR0x0006 */
-#define AB8500_CODEC_CR6_ENDMIC1 7
-#define AB8500_CODEC_CR6_ENDMIC2 6
-#define AB8500_CODEC_CR6_ENDMIC3 5
-#define AB8500_CODEC_CR6_ENDMIC4 4
-#define AB8500_CODEC_CR6_ENDMIC5 3
-#define AB8500_CODEC_CR6_ENDMIC6 2
-
-/* CR7-CR0x0007 */
-#define AB8500_CODEC_CR7_MIC1SEL 7
-#define AB8500_CODEC_CR7_LINRSEL 6
-#define AB8500_CODEC_CR7_ENDRVHSL 5
-#define AB8500_CODEC_CR7_ENDRVHSR 4
-#define AB8500_CODEC_CR7_ENADCMIC 2
-#define AB8500_CODEC_CR7_ENADCLINL 1
-#define AB8500_CODEC_CR7_ENADCLINR 0
-
-/* CR8-CR0x0008 */
-#define AB8500_CODEC_CR8_CP_DIS_PLDWN 7
-#define AB8500_CODEC_CR8_ENEAR 6
-#define AB8500_CODEC_CR8_ENHSL 5
-#define AB8500_CODEC_CR8_ENHSR 4
-#define AB8500_CODEC_CR8_ENHFL 3
-#define AB8500_CODEC_CR8_ENHFR 2
-#define AB8500_CODEC_CR8_ENVIBL 1
-#define AB8500_CODEC_CR8_ENVIBR 0
-
-/* CR9-CR0x0009 */
-#define AB8500_CODEC_CR9_ENADACEAR 6
-#define AB8500_CODEC_CR9_ENADACHSL 5
-#define AB8500_CODEC_CR9_ENADACHSR 4
-#define AB8500_CODEC_CR9_ENADACHFL 3
-#define AB8500_CODEC_CR9_ENADACHFR 2
-#define AB8500_CODEC_CR9_ENADACVIBL 1
-#define AB8500_CODEC_CR9_ENADACVIBR 0
-
-/* CR10-CR0x000A */
-#define AB8500_CODEC_CR10_MUTEEAR 6
-#define AB8500_CODEC_CR10_MUTEHSL 5
-#define AB8500_CODEC_CR10_MUTEHSR 4
-
-/* CR11-CR0x000B */
-#define AB8500_CODEC_CR11_ENSHORTPWD 7
-#define AB8500_CODEC_CR11_EARSHORTDIS 6
-#define AB8500_CODEC_CR11_HSSHORTDIS 5
-#define AB8500_CODEC_CR11_HSPULLDEN 4
-#define AB8500_CODEC_CR11_HSOSCEN 2
-#define AB8500_CODEC_CR11_HSFADEN 1
-#define AB8500_CODEC_CR11_HSZCDDIS 0
-
-/* CR12-CR0x000C */
-#define AB8500_CODEC_CR12_ENCPHS 7
-#define AB8500_CODEC_CR12_HSAUTOEN 0
-
-/* CR13-CR0x000D */
-#define AB8500_CODEC_CR13_ENVDET_HTHRESH 4
-#define AB8500_CODEC_CR13_ENVDET_LTHRESH 0
-
-/* CR14-CR0x000E */
-#define AB8500_CODEC_CR14_SMPSLVEN 7
-#define AB8500_CODEC_CR14_ENVDETSMPSEN 6
-#define AB8500_CODEC_CR14_CPLVEN 5
-#define AB8500_CODEC_CR14_ENVDETCPEN 4
-#define AB8500_CODEC_CR14_ENVDET_TIME 0
-
-/* CR15-CR0x000F */
-#define AB8500_CODEC_CR15_PWMTOVIBL 7
-#define AB8500_CODEC_CR15_PWMTOVIBR 6
-#define AB8500_CODEC_CR15_PWMLCTRL 5
-#define AB8500_CODEC_CR15_PWMRCTRL 4
-#define AB8500_CODEC_CR15_PWMNLCTRL 3
-#define AB8500_CODEC_CR15_PWMPLCTRL 2
-#define AB8500_CODEC_CR15_PWMNRCTRL 1
-#define AB8500_CODEC_CR15_PWMPRCTRL 0
-
-/* CR16-CR0x0010 */
-#define AB8500_CODEC_CR16_PWMNLPOL 7
-#define AB8500_CODEC_CR16_PWMNLDUTYCYCLE 0
-
-/* CR17-CR0x0011 */
-#define AB8500_CODEC_CR17_PWMPLPOL 7
-#define AB8500_CODEC_CR17_PWMLPDUTYCYCLE 0
-
-/* CR18-CR0x0012 */
-#define AB8500_CODEC_CR18_PWMNRPOL 7
-#define AB8500_CODEC_CR18_PWMNRDUTYCYCLE 0
-
-/* CR19-CR0x0013 */
-#define AB8500_CODEC_CR19_PWMPRPOL 7
-#define AB8500_CODEC_CR19_PWMRPDUTYCYCLE 0
-
-/* CR20-CR0x0014 */
-#define AB8500_CODEC_CR20_EN_SE_MIC1 7
-#define AB8500_CODEC_CR20_LOW_POW_MIC1 6
-#define AB8500_CODEC_CR20_MIC1_GAIN 0
-
-/* CR21-CR0x0015 */
-#define AB8500_CODEC_CR21_EN_SE_MIC2 7
-#define AB8500_CODEC_CR21_LOW_POW_MIC2 6
-#define AB8500_CODEC_CR21_MIC2_GAIN 0
-
-/* CR22-CR0x0016 */
-#define AB8500_CODEC_CR22_HSL_GAIN 4
-#define AB8500_CODEC_CR22_HSR_GAIN 0
-
-/* CR23-CR0x0017 */
-#define AB8500_CODEC_CR23_LINL_GAIN 4
-#define AB8500_CODEC_CR23_LINR_GAIN 0
-
-/* CR24-CR0x0018 */
-#define AB8500_CODEC_CR24_LINTOHSL_GAIN 0
-
-/* CR25-CR0x0019 */
-#define AB8500_CODEC_CR25_LINTOHSR_GAIN 0
-
-/* CR26-CR0x001A */
-#define AB8500_CODEC_CR26_AD1NH 7
-#define AB8500_CODEC_CR26_AD2NH 6
-#define AB8500_CODEC_CR26_AD3NH 5
-#define AB8500_CODEC_CR26_AD4NH 4
-#define AB8500_CODEC_CR26_AD1_VOICE 3
-#define AB8500_CODEC_CR26_AD2_VOICE 2
-#define AB8500_CODEC_CR26_AD3_VOICE 1
-#define AB8500_CODEC_CR26_AD4_VOICE 0
-
-/* CR27-CR0x001B */
-#define AB8500_CODEC_CR27_EN_MASTGEN 7
-#define AB8500_CODEC_CR27_IF1_BITCLK_OSR 5
-#define AB8500_CODEC_CR27_ENFS_BITCLK1 4
-#define AB8500_CODEC_CR27_IF0_BITCLK_OSR 1
-#define AB8500_CODEC_CR27_ENFS_BITCLK0 0
-
-/* CR28-CR0x001C */
-#define AB8500_CODEC_CR28_FSYNC0P 6
-#define AB8500_CODEC_CR28_BITCLK0P 5
-#define AB8500_CODEC_CR28_IF0DEL 4
-#define AB8500_CODEC_CR28_IF0FORMAT 2
-#define AB8500_CODEC_CR28_IF0WL 0
-
-/* CR29-CR0x001D */
-#define AB8500_CODEC_CR29_IF0DATOIF1AD 7
-#define AB8500_CODEC_CR29_IF0CKTOIF1CK 6
-#define AB8500_CODEC_CR29_IF1MASTER 5
-#define AB8500_CODEC_CR29_IF1DATOIF0AD 3
-#define AB8500_CODEC_CR29_IF1CKTOIF0CK 2
-#define AB8500_CODEC_CR29_IF0MASTER 1
-#define AB8500_CODEC_CR29_IF0BFIFOEN 0
-
-/* CR30-CR0x001E */
-#define AB8500_CODEC_CR30_FSYNC1P 6
-#define AB8500_CODEC_CR30_BITCLK1P 5
-#define AB8500_CODEC_CR30_IF1DEL 4
-#define AB8500_CODEC_CR30_IF1FORMAT 2
-#define AB8500_CODEC_CR30_IF1WL 0
-
-/* CR31-CR0x001F */
-#define AB8500_CODEC_CR31_ADOTOSLOT1 4
-#define AB8500_CODEC_CR31_ADOTOSLOT0 0
-
-/* CR32-CR0x0020 */
-#define AB8500_CODEC_CR32_ADOTOSLOT3 4
-#define AB8500_CODEC_CR32_ADOTOSLOT2 0
-
-/* CR33-CR0x0021 */
-#define AB8500_CODEC_CR33_ADOTOSLOT5 4
-#define AB8500_CODEC_CR33_ADOTOSLOT4 0
-
-/* CR34-CR0x0022 */
-#define AB8500_CODEC_CR34_ADOTOSLOT7 4
-#define AB8500_CODEC_CR34_ADOTOSLOT6 0
-
-/* CR35-CR0x0023 */
-#define AB8500_CODEC_CR35_ADOTOSLOT9 4
-#define AB8500_CODEC_CR35_ADOTOSLOT8 0
-
-/* CR36-CR0x0024 */
-#define AB8500_CODEC_CR36_ADOTOSLOT11 4
-#define AB8500_CODEC_CR36_ADOTOSLOT10 0
-
-/* CR37-CR0x0025 */
-#define AB8500_CODEC_CR37_ADOTOSLOT13 4
-#define AB8500_CODEC_CR37_ADOTOSLOT12 0
-
-/* CR38-CR0x0026 */
-#define AB8500_CODEC_CR38_ADOTOSLOT15 4
-#define AB8500_CODEC_CR38_ADOTOSLOT14 0
-
-/* CR39-CR0x0027 */
-#define AB8500_CODEC_CR39_ADOTOSLOT17 4
-#define AB8500_CODEC_CR39_ADOTOSLOT16 0
-
-/* CR40-CR0x0028 */
-#define AB8500_CODEC_CR40_ADOTOSLOT19 4
-#define AB8500_CODEC_CR40_ADOTOSLOT18 0
-
-/* CR41-CR0x0029 */
-#define AB8500_CODEC_CR41_ADOTOSLOT21 4
-#define AB8500_CODEC_CR41_ADOTOSLOT20 0
-
-/* CR42-CR0x002A */
-#define AB8500_CODEC_CR42_ADOTOSLOT23 4
-#define AB8500_CODEC_CR42_ADOTOSLOT22 0
-
-/* CR43-CR0x002B */
-#define AB8500_CODEC_CR43_ADOTOSLOT25 4
-#define AB8500_CODEC_CR43_ADOTOSLOT24 0
-
-/* CR44-CR0x002C */
-#define AB8500_CODEC_CR44_ADOTOSLOT27 4
-#define AB8500_CODEC_CR44_ADOTOSLOT26 0
-
-/* CR45-CR0x002D */
-#define AB8500_CODEC_CR45_ADOTOSLOT29 4
-#define AB8500_CODEC_CR45_ADOTOSLOT28 0
-
-/* CR46-CR0x002E */
-#define AB8500_CODEC_CR46_ADOTOSLOT31 4
-#define AB8500_CODEC_CR46_ADOTOSLOT30 0
-
-/* CR47-CR0x002F */
-#define AB8500_CODEC_CR47_HIZ_SL7 7
-#define AB8500_CODEC_CR47_HIZ_SL6 6
-#define AB8500_CODEC_CR47_HIZ_SL5 5
-#define AB8500_CODEC_CR47_HIZ_SL4 4
-#define AB8500_CODEC_CR47_HIZ_SL3 3
-#define AB8500_CODEC_CR47_HIZ_SL2 2
-#define AB8500_CODEC_CR47_HIZ_SL1 1
-#define AB8500_CODEC_CR47_HIZ_SL0 0
-
-/* CR48-CR0x0030 */
-#define AB8500_CODEC_CR48_HIZ_SL15 7
-#define AB8500_CODEC_CR48_HIZ_SL14 6
-#define AB8500_CODEC_CR48_HIZ_SL13 5
-#define AB8500_CODEC_CR48_HIZ_SL12 4
-#define AB8500_CODEC_CR48_HIZ_SL11 3
-#define AB8500_CODEC_CR48_HIZ_SL10 2
-#define AB8500_CODEC_CR48_HIZ_SL9 1
-#define AB8500_CODEC_CR48_HIZ_SL8 0
-
-/* CR49-CR0x0031 */
-#define AB8500_CODEC_CR49_HIZ_SL23 7
-#define AB8500_CODEC_CR49_HIZ_SL22 6
-#define AB8500_CODEC_CR49_HIZ_SL21 5
-#define AB8500_CODEC_CR49_HIZ_SL20 4
-#define AB8500_CODEC_CR49_HIZ_SL19 3
-#define AB8500_CODEC_CR49_HIZ_SL18 2
-#define AB8500_CODEC_CR49_HIZ_SL17 1
-#define AB8500_CODEC_CR49_HIZ_SL16 0
-
-/* CR50-CR0x0032 */
-#define AB8500_CODEC_CR50_HIZ_SL31 7
-#define AB8500_CODEC_CR50_HIZ_SL30 6
-#define AB8500_CODEC_CR50_HIZ_SL29 5
-#define AB8500_CODEC_CR50_HIZ_SL28 4
-#define AB8500_CODEC_CR50_HIZ_SL27 3
-#define AB8500_CODEC_CR50_HIZ_SL26 2
-#define AB8500_CODEC_CR50_HIZ_SL25 1
-#define AB8500_CODEC_CR50_HIZ_SL24 0
-
-/* CR51-CR0x0033 */
-#define AB8500_CODEC_CR51_DA12_VOICE 7
-#define AB8500_CODEC_CR51_SWAP_DA12_34 6
-#define AB8500_CODEC_CR51_SLDAI7TOSLADO1 5
-#define AB8500_CODEC_CR51_SLTODA1 0
-
-/* CR52-CR0x0034 */
-#define AB8500_CODEC_CR52_SLDAI8TOSLADO2 5
-#define AB8500_CODEC_CR52_SLTODA2 0
-
-/* CR53-CR0x0035 */
-#define AB8500_CODEC_CR53_DA34_VOICE 7
-#define AB8500_CODEC_CR53_SLDAI7TOSLADO3 5
-#define AB8500_CODEC_CR53_SLTODA3 0
-
-/* CR54-CR0x0036 */
-#define AB8500_CODEC_CR54_SLDAI8TOSLADO4 5
-#define AB8500_CODEC_CR54_SLTODA4 0
-
-/* CR55-CR0x0037 */
-#define AB8500_CODEC_CR55_DA56_VOICE 7
-#define AB8500_CODEC_CR55_SLDAI7TOSLADO5 5
-#define AB8500_CODEC_CR55_SLTODA5 0
-
-/* CR56-CR0x0038 */
-#define AB8500_CODEC_CR56_SLDAI8TOSLADO6 5
-#define AB8500_CODEC_CR56_SLTODA6 0
-
-/* CR57-CR0x0039 */
-#define AB8500_CODEC_CR57_SLDAI8TOSLADO7 5
-#define AB8500_CODEC_CR57_SLTODA7 0
-
-/* CR58-CR0x003A */
-#define AB8500_CODEC_CR58_SLDAI7TOSLADO8 5
-#define AB8500_CODEC_CR58_SLTODA8 0
-
-/* CR59-CR0x003B */
-#define AB8500_CODEC_CR59_PARLHF 7
-#define AB8500_CODEC_CR59_PARLVIB 6
-#define AB8500_CODEC_CR59_CLASSDVIB1SWAPEN 3
-#define AB8500_CODEC_CR59_CLASSDVIB2SWAPEN 2
-#define AB8500_CODEC_CR59_CLASSDHFLSWAPEN 1
-#define AB8500_CODEC_CR59_CLASSDHFRSWAPEN 0
-
-/* CR60-CR0x003C */
-#define AB8500_CODEC_CR60_CLASSD_FIR_BYP 4
-#define AB8500_CODEC_CR60_CLASSD_HIGHVOL_EN 0
-
-/* CR61-CR0x003D */
-#define AB8500_CODEC_CR61_CLASSD_DITH_HPGAIN 4
-#define AB8500_CODEC_CR61_CLASSD_DITH_WGAIN 0
-
-/* CR62-CR0x003E */
-#define AB8500_CODEC_CR62_DMIC1SINC3 5
-#define AB8500_CODEC_CR62_DMIC2SINC3 4
-#define AB8500_CODEC_CR62_DMIC3SINC3 3
-#define AB8500_CODEC_CR62_DMIC4SINC3 2
-#define AB8500_CODEC_CR62_DMIC5SINC3 1
-#define AB8500_CODEC_CR62_DMIC6SINC3 0
-
-/* CR63-CR0x003F */
-#define AB8500_CODEC_CR63_DATOHSLEN 7
-#define AB8500_CODEC_CR63_DATOHSREN 6
-#define AB8500_CODEC_CR63_AD1SEL 5
-#define AB8500_CODEC_CR63_AD2SEL 4
-#define AB8500_CODEC_CR63_AD3SEL 3
-#define AB8500_CODEC_CR63_AD5SEL 2
-#define AB8500_CODEC_CR63_AD6SEL 1
-#define AB8500_CODEC_CR63_ANCSEL 0
-
-/* CR64-CR0x0040 */
-#define AB8500_CODEC_CR64_DATOHFREN 7
-#define AB8500_CODEC_CR64_DATOHFLEN 6
-#define AB8500_CODEC_CR64_HFRSEL 5
-#define AB8500_CODEC_CR64_HFLSEL 4
-#define AB8500_CODEC_CR64_STFIR1SEL 2
-#define AB8500_CODEC_CR64_STFIR2SEL 0
-
-/* CR65-CR0x0041 */
-#define AB8500_CODEC_CR65_FADEDIS_AD1 6
-#define AB8500_CODEC_CR65_AD1GAIN 0
-
-/* CR66-CR0x0042 */
-#define AB8500_CODEC_CR66_FADEDIS_AD2 6
-#define AB8500_CODEC_CR66_AD2GAIN 0
-
-/* CR67-CR0x0043 */
-#define AB8500_CODEC_CR67_FADEDIS_AD3 6
-#define AB8500_CODEC_CR67_AD3GAIN 0
-
-/* CR68-CR0x0044 */
-#define AB8500_CODEC_CR68_FADEDIS_AD4 6
-#define AB8500_CODEC_CR68_AD4GAIN 0
-
-/* CR69-CR0x0045 */
-#define AB8500_CODEC_CR69_FADEDIS_AD5 6
-#define AB8500_CODEC_CR69_AD5GAIN 0
-
-/* CR70-CR0x0046 */
-#define AB8500_CODEC_CR70_FADEDIS_AD6 6
-#define AB8500_CODEC_CR70_AD6GAIN 0
-
-/* CR71-CR0x0047 */
-#define AB8500_CODEC_CR71_FADEDIS_DA1 6
-#define AB8500_CODEC_CR71_DA1GAIN 0
-
-/* CR72-CR0x0048 */
-#define AB8500_CODEC_CR72_FADEDIS_DA2 6
-#define AB8500_CODEC_CR72_DA2GAIN 0
-
-/* CR73-CR0x0049 */
-#define AB8500_CODEC_CR73_FADEDIS_DA3 6
-#define AB8500_CODEC_CR73_DA3GAIN 0
-
-/* CR74-CR0x004A */
-#define AB8500_CODEC_CR74_FADEDIS_DA4 6
-#define AB8500_CODEC_CR74_DA4GAIN 0
-
-/* CR75-CR0x004B */
-#define AB8500_CODEC_CR75_FADEDIS_DA5 6
-#define AB8500_CODEC_CR75_DA5GAIN 0
-
-/* CR76-CR0x004C */
-#define AB8500_CODEC_CR76_FADEDIS_DA6 6
-#define AB8500_CODEC_CR76_DA6GAIN 0
-
-/* CR77-CR0x004D */
-#define AB8500_CODEC_CR77_FADEDIS_AD1L 6
-#define AB8500_CODEC_CR77_AD1LBGAIN 0
-
-/* CR78-CR0x004E */
-#define AB8500_CODEC_CR78_FADEDIS_AD2L 6
-#define AB8500_CODEC_CR78_AD2LBGAIN 0
-
-/* CR79-CR0x004F */
-#define AB8500_CODEC_CR79_HSSINC1 7
-#define AB8500_CODEC_CR79_FADEDIS_HSL 4
-#define AB8500_CODEC_CR79_HSLDGAIN 0
-
-/* CR80-CR0x0050 */
-#define AB8500_CODEC_CR80_FADE_SPEED 6
-#define AB8500_CODEC_CR80_FADEDIS_HSR 4
-#define AB8500_CODEC_CR80_HSRDGAIN 0
-
-/* CR81-CR0x0051 */
-#define AB8500_CODEC_CR81_STFIR1GAIN 0
-
-/* CR82-CR0x0052 */
-#define AB8500_CODEC_CR82_STFIR2GAIN 0
-
-/* CR83-CR0x0053 */
-#define AB8500_CODEC_CR83_ENANC 2
-#define AB8500_CODEC_CR83_ANCIIRINIT 1
-#define AB8500_CODEC_CR83_ANCFIRUPDATE 0
-
-/* CR84-CR0x0054 */
-#define AB8500_CODEC_CR84_ANCINSHIFT 0
-
-/* CR85-CR0x0055 */
-#define AB8500_CODEC_CR85_ANCFIROUTSHIFT 0
-
-/* CR86-CR0x0056 */
-#define AB8500_CODEC_CR86_ANCSHIFTOUT 0
-
-/* CR87-CR0x0057 */
-#define AB8500_CODEC_CR87_ANCFIRCOEFF_MSB 0
-
-/* CR88-CR0x0058 */
-#define AB8500_CODEC_CR88_ANCFIRCOEFF_LSB 0
-
-/* CR89-CR0x0059 */
-#define AB8500_CODEC_CR89_ANCIIRCOEFF_MSB 0
-
-/* CR90-CR0x005A */
-#define AB8500_CODEC_CR90_ANCIIRCOEFF_LSB 0
-
-/* CR91-CR0x005B */
-#define AB8500_CODEC_CR91_ANCWARPDEL_MSB 0
-
-/* CR92-CR0x005C */
-#define AB8500_CODEC_CR92_ANCWARPDEL_LSB 0
-
-/* CR93-CR0x005D */
-#define AB8500_CODEC_CR93_ANCFIRPEAK_MSB 0
-
-/* CR94-CR0x005E */
-#define AB8500_CODEC_CR94_ANCFIRPEAK_LSB 0
-
-/* CR95-CR0x005F */
-#define AB8500_CODEC_CR95_ANCIIRPEAK_MSB 0
-
-/* CR96-CR0x0060 */
-#define AB8500_CODEC_CR96_ANCIIRPEAK_LSB 0
-
-/* CR97-CR0x0061 */
-#define AB8500_CODEC_CR97_STFIR_SET 7
-#define AB8500_CODEC_CR97_STFIR_ADDR 0
-
-/* CR98-CR0x0062 */
-#define AB8500_CODEC_CR98_STFIR_COEFF_MSB 0
-
-/* CR99-CR0x0063 */
-#define AB8500_CODEC_CR99_STFIR_COEFF_LSB 0
-
-/* CR100-CR0x0064 */
-#define AB8500_CODEC_CR100_ENSTFIRS 2
-#define AB8500_CODEC_CR100_STFIRSTOIF1 1
-#define AB8500_CODEC_CR100_STFIR_BUSY 0
-
-/* CR101-CR0x0065 */
-#define AB8500_CODEC_CR101_HSOFFSTMASK 7
-#define AB8500_CODEC_CR101_FIFOFULLMASK 6
-#define AB8500_CODEC_CR101_FIFOEMPTYMASK 5
-#define AB8500_CODEC_CR101_DASATMASK 4
-#define AB8500_CODEC_CR101_ADSATMASK 3
-#define AB8500_CODEC_CR101_ADDSPMASK 2
-#define AB8500_CODEC_CR101_DADSPMASK 1
-#define AB8500_CODEC_CR101_FIRSIDMASK 0
-
-/* CR102-CR0x0066 */
-#define AB8500_CODEC_CR102_IT_HSOFFST 7
-#define AB8500_CODEC_CR102_IT_FIFOFULL 6
-#define AB8500_CODEC_CR102_IT_FIFOEMPTY 5
-#define AB8500_CODEC_CR102_IT_DASAT 4
-#define AB8500_CODEC_CR102_IT_ADSAT 3
-#define AB8500_CODEC_CR102_IT_ADDSP 2
-#define AB8500_CODEC_CR102_IT_DADSP 1
-#define AB8500_CODEC_CR102_IT_FIRSID 0
-
-/* CR103-CR0x0067 */
-#define AB8500_CODEC_CR103_VSSREADYMASK 7
-#define AB8500_CODEC_CR103_SHORTHSLMASK 2
-#define AB8500_CODEC_CR103_SHORTHSRMASK 1
-#define AB8500_CODEC_CR103_SHORTEARMASK 0
-
-/* CR104-CR0x0068 */
-#define AB8500_CODEC_CR104_IT_VSSREADY 7
-#define AB8500_CODEC_CR104_IT_SHORTHSL 2
-#define AB8500_CODEC_CR104_IT_SHORTHSR 1
-#define AB8500_CODEC_CR104_IT_SHORTEAR 0
-
-/* CR105-CR0x0069 */
-#define AB8500_CODEC_CR105_BFIFOMASK 7
-#define AB8500_CODEC_CR105_BFIFOINT 0
-
-/* CR106-CR0x006A */
-#define AB8500_CODEC_CR106_BFIFOTX 0
-
-/* CR107-CR0x006B */
-#define AB8500_CODEC_CR107_BFIFOEXSL 5
-#define AB8500_CODEC_CR107_PREBITCLK0 2
-#define AB8500_CODEC_CR107_BFIFOMAST 1
-#define AB8500_CODEC_CR107_BFIFORUN 0
-
-/* CR108-CR0x006C */
-#define AB8500_CODEC_CR108_BFIFOFRAMESW 0
-
-/* CR109-CR0x006D */
-#define AB8500_CODEC_CR109_BFIFOWAKEUP 0
-
-/* CR110-CR0x006E */
-#define AB8500_CODEC_CR110_BFIFOSAMPLE 0
-
-/* CR111-CR0x006F */
-#define AB8500_CODEC_CR111_AUD_IP_REV 0
-
-/* For SetVolume API*/
-#define AB8500_CODEC_MAX_VOLUME 100
-
-/* Analog MIC1 & MIC2 */
-#define AB8500_CODEC_MIC_VOLUME_MAX 31
-#define AB8500_CODEC_MIC_VOLUME_MEDIUM 15
-#define AB8500_CODEC_MIC_VOLUME_MIN 0
-
-/* Line-in */
-#define AB8500_CODEC_LINEIN_VOLUME_MAX 15
-#define AB8500_CODEC_LINEIN_VOLUME_MEDIUM 7
-#define AB8500_CODEC_LINEIN_VOLUME_MIN 0
-
-/* HeadSet */
-#define AB8500_CODEC_HEADSET_VOLUME_MAX 13
-#define AB8500_CODEC_HEADSET_VOLUME_MEDIUM 6
-#define AB8500_CODEC_HEADSET_VOLUME_MIN 0
-
-/* HeadSet Digital */
-#define AB8500_CODEC_HEADSET_D_VOLUME_MAX 0
-#define AB8500_CODEC_HEADSET_D_VOLUME_MEDIUM 7
-#define AB8500_CODEC_HEADSET_D_VOLUME_MIN 15
-#define AB8500_CODEC_HEADSET_D_VOLUME_0DB 8
-
-/* Digital AD Path */
-#define AB8500_CODEC_AD_D_VOLUME_MAX 0
-#define AB8500_CODEC_AD_D_VOLUME_MEDIUM 31
-#define AB8500_CODEC_AD_D_VOLUME_MIN 63
-
-/* Digital DA Path */
-#define AB8500_CODEC_DA_D_VOLUME_MAX 0
-#define AB8500_CODEC_DA_D_VOLUME_MEDIUM 31
-#define AB8500_CODEC_DA_D_VOLUME_MIN 63
-
-/* EarPiece Digital */
-#define AB8500_CODEC_EARPIECE_D_VOLUME_MAX 0
-#define AB8500_CODEC_EARPIECE_D_VOLUME_MEDIUM 7
-#define AB8500_CODEC_EARPIECE_D_VOLUME_MIN 15
-
-/* AD1 loopback to HFL & HFR Digital */
-#define AB8500_CODEC_AD_LB_TO_HF_L_R_VOLUME_MAX 0
-#define AB8500_CODEC_AD_LB_TO_HF_L_R_VOLUME_MEDIUM 31
-#define AB8500_CODEC_AD_LB_TO_HF_L_R_VOLUME_MIN 63
-
-/* Line-in to HSL & HSR */
-#define AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MAX 0
-#define AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MEDIUM 9
-#define AB8500_CODEC_LINEIN_TO_HS_L_R_VOLUME_MIN 18
-#define AB8500_CODEC_LINEIN_TO_HS_L_R_LOOP_OPEN 19
-
-/* Vibrator */
-#define AB8500_CODEC_VIBRATOR_VOLUME_MAX 100
-#define AB8500_CODEC_VIBRATOR_VOLUME_MEDIUM 50
-#define AB8500_CODEC_VIBRATOR_VOLUME_MIN 0
-
-/* CR0 - 7 */
-typedef enum {
- AB8500_CODEC_CR0_POWERUP_OFF,
- AB8500_CODEC_CR0_POWERUP_ON
-} t_ab8500_codec_cr0_powerup;
-
-/* CR0 - 3 */
-typedef enum {
- AB8500_CODEC_CR0_ENAANA_OFF,
- AB8500_CODEC_CR0_ENAANA_ON
-} t_ab8500_codec_cr0_enaana;
-
-/* CR1 - 7 */
-typedef enum {
- AB8500_CODEC_CR1_SWRESET_DISABLED,
- AB8500_CODEC_CR1_SWRESET_ENABLED
-} t_ab8500_codec_cr1_swreset;
-
-/* CR2 - 7 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD1_DISABLED,
- AB8500_CODEC_CR2_ENAD1_ENABLED
-} t_ab8500_codec_cr2_enad1;
-
-/* CR2 - 6 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD2_DISABLED,
- AB8500_CODEC_CR2_ENAD2_ENABLED
-} t_ab8500_codec_cr2_enad2;
-
-/* CR2 - 5 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD3_DISABLED,
- AB8500_CODEC_CR2_ENAD3_ENABLED
-} t_ab8500_codec_cr2_enad3;
-
-/* CR2 - 4 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD4_DISABLED,
- AB8500_CODEC_CR2_ENAD4_ENABLED
-} t_ab8500_codec_cr2_enad4;
-
-/* CR2 - 3 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD5_DISABLED,
- AB8500_CODEC_CR2_ENAD5_ENABLED
-} t_ab8500_codec_cr2_enad5;
-
-/* CR2 - 2 */
-typedef enum {
- AB8500_CODEC_CR2_ENAD6_DISABLED,
- AB8500_CODEC_CR2_ENAD6_ENABLED
-} t_ab8500_codec_cr2_enad6;
-
-/* CR3 - 7 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA1_DISABLED,
- AB8500_CODEC_CR3_ENDA1_ENABLED
-} t_ab8500_codec_cr3_enda1;
-
-/* CR3 - 6 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA2_DISABLED,
- AB8500_CODEC_CR3_ENDA2_ENABLED
-} t_ab8500_codec_cr3_enda2;
-
-/* CR3 - 5 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA3_DISABLED,
- AB8500_CODEC_CR3_ENDA3_ENABLED
-} t_ab8500_codec_cr3_enda3;
-
-/* CR3 - 4 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA4_DISABLED,
- AB8500_CODEC_CR3_ENDA4_ENABLED
-} t_ab8500_codec_cr3_enda4;
-
-/* CR3 - 3 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA5_DISABLED,
- AB8500_CODEC_CR3_ENDA5_ENABLED
-} t_ab8500_codec_cr3_enda5;
-
-/* CR3 - 2 */
-typedef enum {
- AB8500_CODEC_CR3_ENDA6_DISABLED,
- AB8500_CODEC_CR3_ENDA6_ENABLED
-} t_ab8500_codec_cr3_enda6;
-
-/* CR4 - 7 */
-typedef enum {
- AB8500_CODEC_CR4_LOWPOWHS_NORMAL,
- AB8500_CODEC_CR4_LOWPOWHS_LP
-} t_ab8500_codec_cr4_lowpowhs;
-
-/* CR4 - 6:5 */
-typedef enum {
- AB8500_CODEC_CR4_LOWPOWDACHS_NORMAL,
- AB8500_CODEC_CR4_LOWPOWDACHS_DRIVERS_LP,
- AB8500_CODEC_CR4_LOWPOWDACHS_LP,
- AB8500_CODEC_CR4_LOWPOWDACHS_BOTH_LP
-} t_ab8500_codec_cr4_lowpowdachs;
-
-/* CR4 - 4 */
-typedef enum {
- AB8500_CODEC_CR4_LOWPOWEAR_NORMAL,
- AB8500_CODEC_CR4_LOWPOWEAR_LP
-} t_ab8500_codec_cr4_lowpowear;
-
-/* CR4 - 3:2 */
-typedef enum {
- AB8500_CODEC_CR4_EAR_SEL_CM_0_95V,
- AB8500_CODEC_CR4_EAR_SEL_CM_1_1V,
- AB8500_CODEC_CR4_EAR_SEL_CM_1_27V,
- AB8500_CODEC_CR4_EAR_SEL_CM_1_58V
-} t_ab8500_codec_cr4_ear_sel_cm;
-
-/* CR4 - 1 */
-typedef enum {
- AB8500_CODEC_CR4_HS_HP_EN_FILTER_DISABLED,
- AB8500_CODEC_CR4_HS_HP_EN_FILTER_ENABLED
-} t_ab8500_codec_cr4_hs_hp_en;
-
-/* CR5 - 7 */
-typedef enum {
- AB8500_CODEC_CR5_ENMIC1_DISABLED,
- AB8500_CODEC_CR5_ENMIC1_ENABLED
-} t_ab8500_codec_cr5_enmic1;
-
-/* CR5 - 6 */
-typedef enum {
- AB8500_CODEC_CR5_ENMIC2_DISABLED,
- AB8500_CODEC_CR5_ENMIC2_ENABLED
-} t_ab8500_codec_cr5_enmic2;
-
-/* CR5 - 5 */
-typedef enum {
- AB8500_CODEC_CR5_ENLINL_DISABLED,
- AB8500_CODEC_CR5_ENLINL_ENABLED
-} t_ab8500_codec_cr5_enlinl;
-
-/* CR5 - 4 */
-typedef enum {
- AB8500_CODEC_CR5_ENLINR_DISABLED,
- AB8500_CODEC_CR5_ENLINR_ENABLED
-} t_ab8500_codec_cr5_enlinr;
-
-/* CR5 - 3 */
-typedef enum {
- AB8500_CODEC_CR5_MUTMIC1_DISABLED,
- AB8500_CODEC_CR5_MUTMIC1_ENABLED
-} t_ab8500_codec_cr5_mutmic1;
-
-/* CR5 - 2 */
-typedef enum {
- AB8500_CODEC_CR5_MUTMIC2_DISABLED,
- AB8500_CODEC_CR5_MUTMIC2_ENABLED
-} t_ab8500_codec_cr5_mutmic2;
-
-/* CR5 - 1 */
-typedef enum {
- AB8500_CODEC_CR5_MUTLINL_DISABLED,
- AB8500_CODEC_CR5_MUTLINL_ENABLED
-} t_ab8500_codec_cr5_mutlinl;
-
-/* CR5 - 0 */
-typedef enum {
- AB8500_CODEC_CR5_MUTLINR_DISABLED,
- AB8500_CODEC_CR5_MUTLINR_ENABLED
-} t_ab8500_codec_cr5_mutlinr;
-
-/* CR6 - 7 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC1_DISABLED,
- AB8500_CODEC_CR6_ENDMIC1_ENABLED
-} t_ab8500_codec_cr6_endmic1;
-
-/* CR6 - 6 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC2_DISABLED,
- AB8500_CODEC_CR6_ENDMIC2_ENABLED
-} t_ab8500_codec_cr6_endmic2;
-
-/* CR6 - 5 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC3_DISABLED,
- AB8500_CODEC_CR6_ENDMIC3_ENABLED
-} t_ab8500_codec_cr6_endmic3;
-
-/* CR6 - 4 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC4_DISABLED,
- AB8500_CODEC_CR6_ENDMIC4_ENABLED
-} t_ab8500_codec_cr6_endmic4;
-
-/* CR6 - 3 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC5_DISABLED,
- AB8500_CODEC_CR6_ENDMIC5_ENABLED
-} t_ab8500_codec_cr6_endmic5;
-
-/* CR6 - 2 */
-typedef enum {
- AB8500_CODEC_CR6_ENDMIC6_DISABLED,
- AB8500_CODEC_CR6_ENDMIC6_ENABLED
-} t_ab8500_codec_cr6_endmic6;
-
-/* CR7 - 7 */
-typedef enum {
- AB8500_CODEC_CR7_MIC1SEL_MIC1A,
- AB8500_CODEC_CR7_MIC1SEL_MIC1B
-} t_ab8500_codec_cr7_mic1sel;
-
-/* CR7 - 6 */
-typedef enum {
- AB8500_CODEC_CR7_LINRSEL_MIC2,
- AB8500_CODEC_CR7_LINRSEL_LINR
-} t_ab8500_codec_cr7_linrsel;
-
-/* CR7 - 5 */
-typedef enum {
- AB8500_CODEC_CR7_ENDRVHSL_DISABLED,
- AB8500_CODEC_CR7_ENDRVHSL_ENABLED
-} t_ab8500_codec_cr7_endrvhsl;
-
-/* CR7 - 4 */
-typedef enum {
- AB8500_CODEC_CR7_ENDRVHSR_DISABLED,
- AB8500_CODEC_CR7_ENDRVHSR_ENABLED
-} t_ab8500_codec_cr7_endrvhsr;
-
-/* CR7 - 2 */
-typedef enum {
- AB8500_CODEC_CR7_ENADCMIC_DISABLED,
- AB8500_CODEC_CR7_ENADCMIC_ENABLED
-} t_ab8500_codec_cr7_enadcmic;
-
-/* CR7 - 1 */
-typedef enum {
- AB8500_CODEC_CR7_ENADCLINL_DISABLED,
- AB8500_CODEC_CR7_ENADCLINL_ENABLED
-} t_ab8500_codec_cr7_enadclinl;
-
-/* CR7 - 0 */
-typedef enum {
- AB8500_CODEC_CR7_ENADCLINR_DISABLED,
- AB8500_CODEC_CR7_ENADCLINR_ENABLED
-} t_ab8500_codec_cr7_enadclinr;
-
-/* CR8 - 7 */
-typedef enum {
- AB8500_CODEC_CR8_CP_DIS_PLDWN_ENABLED,
- AB8500_CODEC_CR8_CP_DIS_PLDWN_DISABLED
-} t_ab8500_codec_cr8_cp_dis_pldwn;
-
-/* CR8 - 6 */
-typedef enum {
- AB8500_CODEC_CR8_ENEAR_DISABLED,
- AB8500_CODEC_CR8_ENEAR_ENABLED
-} t_ab8500_codec_cr8_enear;
-
-/* CR8 - 5 */
-typedef enum {
- AB8500_CODEC_CR8_ENHSL_DISABLED,
- AB8500_CODEC_CR8_ENHSL_ENABLED
-} t_ab8500_codec_cr8_enhsl;
-
-/* CR8 - 4 */
-typedef enum {
- AB8500_CODEC_CR8_ENHSR_DISABLED,
- AB8500_CODEC_CR8_ENHSR_ENABLED
-} t_ab8500_codec_cr8_enhsr;
-
-/* CR8 - 3 */
-typedef enum {
- AB8500_CODEC_CR8_ENHFL_DISABLED,
- AB8500_CODEC_CR8_ENHFL_ENABLED
-} t_ab8500_codec_cr8_enhfl;
-
-/* CR8 - 2 */
-typedef enum {
- AB8500_CODEC_CR8_ENHFR_DISABLED,
- AB8500_CODEC_CR8_ENHFR_ENABLED
-} t_ab8500_codec_cr8_enhfr;
-
-/* CR8 - 1 */
-typedef enum {
- AB8500_CODEC_CR8_ENVIBL_DISABLED,
- AB8500_CODEC_CR8_ENVIBL_ENABLED
-} t_ab8500_codec_cr8_envibl;
-
-/* CR8 - 0 */
-typedef enum {
- AB8500_CODEC_CR8_ENVIBR_DISABLED,
- AB8500_CODEC_CR8_ENVIBR_ENABLED
-} t_ab8500_codec_cr8_envibr;
-
-/* CR9 - 6 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACEAR_DISABLED,
- AB8500_CODEC_CR9_ENDACEAR_ENABLED
-} t_ab8500_codec_cr9_endacear;
-
-/* CR9 - 5 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACHSL_DISABLED,
- AB8500_CODEC_CR9_ENDACHSL_ENABLED
-} t_ab8500_codec_cr9_endachsl;
-
-/* CR9 - 4 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACHSR_DISABLED,
- AB8500_CODEC_CR9_ENDACHSR_ENABLED
-} t_ab8500_codec_cr9_endachsr;
-
-/* CR9 - 3 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACHFL_DISABLED,
- AB8500_CODEC_CR9_ENDACHFL_ENABLED
-} t_ab8500_codec_cr9_endachfl;
-
-/* CR9 - 2 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACHFR_DISABLED,
- AB8500_CODEC_CR9_ENDACHFR_ENABLED
-} t_ab8500_codec_cr9_endachfr;
-
-/* CR9 - 1 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACVIBL_DISABLED,
- AB8500_CODEC_CR9_ENDACVIBL_ENABLED
-} t_ab8500_codec_cr9_endacvibl;
-
-/* CR9 - 0 */
-typedef enum {
- AB8500_CODEC_CR9_ENDACVIBR_DISABLED,
- AB8500_CODEC_CR9_ENDACVIBR_ENABLED
-} t_ab8500_codec_cr9_endacvibr;
-
-/* CR10 - 6 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEEAR_DISABLED,
- AB8500_CODEC_CR10_MUTEEAR_ENABLED
-} t_ab8500_codec_cr10_muteear;
-
-/* CR10 - 5 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEHSL_DISABLED,
- AB8500_CODEC_CR10_MUTEHSL_ENABLED
-} t_ab8500_codec_cr10_mutehsl;
-
-/* CR10 - 4 */
-typedef enum {
- AB8500_CODEC_CR10_MUTEHSR_DISABLED,
- AB8500_CODEC_CR10_MUTEHSR_ENABLED
-} t_ab8500_codec_cr10_mutehsr;
-
-/* CR11 - 7 */
-typedef enum {
- AB8500_CODEC_CR11_ENSHORTPWD_DISABLED,
- AB8500_CODEC_CR11_ENSHORTPWD_ENABLED
-} t_ab8500_codec_cr11_enshortpwd;
-
-/* CR11 - 6 */
-typedef enum {
- AB8500_CODEC_CR11_EARSHORTDIS_ENABLED,
- AB8500_CODEC_CR11_EARSHORTDIS_DISABLED
-} t_ab8500_codec_cr11_earshortdis;
-
-/* CR11 - 5 */
-typedef enum {
- AB8500_CODEC_CR11_HSSHORTDIS_ENABLED,
- AB8500_CODEC_CR11_HSSHORTDIS_DISABLED
-} t_ab8500_codec_cr11_hsshortdis;
-
-/* CR11 - 4 */
-typedef enum {
- AB8500_CODEC_CR11_HSPULLDEN_HIGH,
- AB8500_CODEC_CR11_HSPULLDEN_DOWN
-} t_ab8500_codec_cr11_hspullden;
-
-/* CR11 - 2 */
-typedef enum {
- AB8500_CODEC_CR11_HSOSCEN_SYSTEMCLOCK,
- AB8500_CODEC_CR11_HSOSCEN_LOCALOSC
-} t_ab8500_codec_cr11_hsoscen;
-
-/* CR11 - 1 */
-typedef enum {
- AB8500_CODEC_CR11_HSFADEN_FADING,
- AB8500_CODEC_CR11_HSFADEN_IMMEDIATELY
-} t_ab8500_codec_cr11_hsfaden;
-
-/* CR11 - 0 */
-typedef enum {
- AB8500_CODEC_CR11_HSZCDDIS_ONZEROCROSS,
- AB8500_CODEC_CR11_HSZCDDIS_WITHOUTZEROCROSS
-} t_ab8500_codec_cr11_hszcddis;
-
-/* CR12 - 7 */
-typedef enum {
- AB8500_CODEC_CR12_ENCPHS_DISABLED,
- AB8500_CODEC_CR12_ENCPHS_ENABLED
-} t_ab8500_codec_cr12_encphs;
-
-/* CR12 - 0 */
-typedef enum {
- AB8500_CODEC_CR12_HSAUTOEN_DISABLED,
- AB8500_CODEC_CR12_HSAUTOEN_ENABLED
-} t_ab8500_codec_cr12_hsautoen;
-
-/* CR13 - 7:4 */
-typedef enum {
- AB8500_CODEC_CR13_ENVDET_HTHRESH_25,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_50,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_100,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_150,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_200,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_250,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_300,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_350,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_400,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_450,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_500,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_550,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_600,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_650,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_700,
- AB8500_CODEC_CR13_ENVDET_HTHRESH_750
-} t_ab8500_codec_cr13_envdet_hthresh;
-
-/* CR13 - 3:0 */
-typedef enum {
- AB8500_CODEC_CR13_ENVDET_LTHRESH_25,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_50,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_100,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_150,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_200,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_250,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_300,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_350,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_400,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_450,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_500,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_550,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_600,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_650,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_700,
- AB8500_CODEC_CR13_ENVDET_LTHRESH_750
-} t_ab8500_codec_cr13_envdet_lthresh;
-
-/* CR14 - 7 */
-typedef enum {
- AB8500_CODEC_CR14_SMPSLVEN_HIGHVOLTAGE,
- AB8500_CODEC_CR14_SMPSLVEN_LOWVOLTAGE
-} t_ab8500_codec_cr14_smpslven;
-
-/* CR14 - 6 */
-typedef enum {
- AB8500_CODEC_CR14_ENVDETSMPSEN_DISABLED,
- AB8500_CODEC_CR14_ENVDETSMPSEN_ENABLED
-} t_ab8500_codec_cr14_envdetsmpsen;
-
-/* CR14 - 5 */
-typedef enum {
- AB8500_CODEC_CR14_CPLVEN_HIGHVOLTAGE,
- AB8500_CODEC_CR14_CPLVEN_LOWVOLTAGE
-} t_ab8500_codec_cr14_cplven;
-
-/* CR14 - 4 */
-typedef enum {
- AB8500_CODEC_CR14_ENVDETCPEN_DISABLED,
- AB8500_CODEC_CR14_ENVDETCPEN_ENABLED
-} t_ab8500_codec_cr14_envdetcpen;
-
-/* CR14 - 3:0 */
-typedef enum {
- AB8500_CODEC_CR14_ENVET_TIME_27USEC,
- AB8500_CODEC_CR14_ENVET_TIME_53USEC,
- AB8500_CODEC_CR14_ENVET_TIME_106USEC,
- AB8500_CODEC_CR14_ENVET_TIME_212USEC,
- AB8500_CODEC_CR14_ENVET_TIME_424USEC,
- AB8500_CODEC_CR14_ENVET_TIME_848USEC,
- AB8500_CODEC_CR14_ENVET_TIME_1MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_3MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_6MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_13MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_27MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_54MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_109MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_218MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_436MSEC,
- AB8500_CODEC_CR14_ENVET_TIME_872MSEC,
-} t_ab8500_codec_cr14_envet_time;
-
-/* CR15 - 7 */
-typedef enum {
- AB8500_CODEC_CR15_PWMTOVIBL_DA_PATH,
- AB8500_CODEC_CR15_PWMTOVIBL_PWM
-} t_ab8500_codec_cr15_pwmtovibl;
-
-/* CR15 - 6 */
-typedef enum {
- AB8500_CODEC_CR15_PWMTOVIBR_DA_PATH,
- AB8500_CODEC_CR15_PWMTOVIBR_PWM
-} t_ab8500_codec_cr15_pwmtovibr;
-
-/* CR15 - 5 */
-typedef enum {
- AB8500_CODEC_CR15_PWMLCTRL_PWMNPLGPOL,
- AB8500_CODEC_CR15_PWMLCTRL_PWMNPLDUTYCYCLE
-} t_ab8500_codec_cr15_pwmlctrl;
-
-/* CR15 - 4 */
-typedef enum {
- AB8500_CODEC_CR15_PWMRCTRL_PWMNPRGPOL,
- AB8500_CODEC_CR15_PWMRCTRL_PWMNPRDUTYCYCLE
-} t_ab8500_codec_cr15_pwmrctrl;
-
-/* CR15 - 3 */
-typedef enum {
- AB8500_CODEC_CR15_PWMNLCTRL_PWMNLGPOL,
- AB8500_CODEC_CR15_PWMNLCTRL_PWMNLDUTYCYCLE
-} t_ab8500_codec_cr15_pwmnlctrl;
-
-/* CR15 - 2 */
-typedef enum {
- AB8500_CODEC_CR15_PWMPLCTRL_PWMPLGPOL,
- AB8500_CODEC_CR15_PWMPLCTRL_PWMPLDUTYCYCLE
-} t_ab8500_codec_cr15_pwmplctrl;
-
-/* CR15 - 1 */
-typedef enum {
- AB8500_CODEC_CR15_PWMNRCTRL_PWMNRGPOL,
- AB8500_CODEC_CR15_PWMNRCTRL_PWMNRDUTYCYCLE
-} t_ab8500_codec_cr15_pwmnrctrl;
-
-/* CR15 - 0 */
-typedef enum {
- AB8500_CODEC_CR15_PWMPRCTRL_PWMPRGPOL,
- AB8500_CODEC_CR15_PWMPRCTRL_PWMPRDUTYCYCLE
-} t_ab8500_codec_cr15_pwmprctrl;
-
-/* CR16 - 7 */
-typedef enum {
- AB8500_CODEC_CR16_PWMNLPOL_GNDVIB,
- AB8500_CODEC_CR16_PWMNLPOL_VINVIB
-} t_ab8500_codec_cr16_pwmnlpol;
-
-/* CR16 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr16_pwmnldutycycle;
-
-/* CR17 - 7 */
-typedef enum {
- AB8500_CODEC_CR17_PWMPLPOL_GNDVIB,
- AB8500_CODEC_CR17_PWMPLPOL_VINVIB
-} t_ab8500_codec_cr17_pwmplpol;
-
-/* CR17 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr17_pwmpldutycycle;
-
-/* CR18 - 7 */
-typedef enum {
- AB8500_CODEC_CR18_PWMNRPOL_GNDVIB,
- AB8500_CODEC_CR18_PWMNRPOL_VINVIB
-} t_ab8500_codec_cr18_pwmnrpol;
-
-/* CR18 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr18_pwmnrdutycycle;
-
-/* CR19 - 7 */
-typedef enum {
- AB8500_CODEC_CR19_PWMPRPOL_GNDVIB,
- AB8500_CODEC_CR19_PWMPRPOL_VINVIB
-} t_ab8500_codec_cr19_pwmprpol;
-
-/* CR19 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr19_pwmprdutycycle;
-
-/* CR20 - 7 */
-typedef enum {
- AB8500_CODEC_CR20_EN_SE_MIC1_DIFFERENTIAL,
- AB8500_CODEC_CR20_EN_SE_MIC1_SINGLE
-} t_ab8500_codec_cr20_en_se_mic1;
-
-/* CR20 - 6 */
-typedef enum {
- AB8500_CODEC_CR20_LOW_POW_MIC1_NORMAL,
- AB8500_CODEC_CR20_LOW_POW_MIC1_LOW_POWER
-} t_ab8500_codec_cr20_low_pow_mic1;
-
-/* CR20 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr20_mic1_gain;
-
-/* CR21 - 7 */
-typedef enum {
- AB8500_CODEC_CR21_EN_SE_MIC2_DIFFERENTIAL,
- AB8500_CODEC_CR21_EN_SE_MIC2_SINGLE
-} t_ab8500_codec_cr21_en_se_mic2;
-
-/* CR21 - 6 */
-typedef enum {
- AB8500_CODEC_CR21_LOW_POW_MIC2_NORMAL,
- AB8500_CODEC_CR21_LOW_POW_MIC2_LOW_POWER
-} t_ab8500_codec_cr21_low_pow_mic2;
-
-/* CR21 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr21_mic2_gain;
-
-/* CR22 - 7:4 */
-typedef t_uint8 t_ab8500_codec_cr22_hsl_gain;
-
-/* CR22 - 3:0 */
-typedef t_uint8 t_ab8500_codec_cr22_hsr_gain;
-
-/* CR23 - 7:4 */
-typedef t_uint8 t_ab8500_codec_cr23_linl_gain;
-
-/* CR23 - 3:0 */
-typedef t_uint8 t_ab8500_codec_cr23_linr_gain;
-
-/* CR24 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr24_lintohsl_gain;
-
-/* CR25 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr25_lintohsr_gain;
-
-/* CR26 - 7 */
-typedef enum {
- AB8500_CODEC_CR26_AD1NH_FILTER_ENABLED,
- AB8500_CODEC_CR26_AD1NH_FILTER_DISABLED
-} t_ab8500_codec_cr26_ad1nh;
-
-/* CR26 - 6 */
-typedef enum {
- AB8500_CODEC_CR26_AD2NH_FILTER_ENABLED,
- AB8500_CODEC_CR26_AD2NH_FILTER_DISABLED
-} t_ab8500_codec_cr26_ad2nh;
-
-/* CR26 - 5 */
-typedef enum {
- AB8500_CODEC_CR26_AD3NH_FILTER_ENABLED,
- AB8500_CODEC_CR26_AD3NH_FILTER_DISABLED
-} t_ab8500_codec_cr26_ad3nh;
-
-/* CR26 - 4 */
-typedef enum {
- AB8500_CODEC_CR26_AD4NH_FILTER_ENABLED,
- AB8500_CODEC_CR26_AD4NH_FILTER_DISABLED
-} t_ab8500_codec_cr26_ad4nh;
-
-/* CR26 - 3 */
-typedef enum {
- AB8500_CODEC_CR26_AD1_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR26_AD1_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr26_ad1_voice;
-
-/* CR26 - 2 */
-typedef enum {
- AB8500_CODEC_CR26_AD2_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR26_AD2_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr26_ad2_voice;
-
-/* CR26 - 1 */
-typedef enum {
- AB8500_CODEC_CR26_AD3_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR26_AD3_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr26_ad3_voice;
-
-/* CR26 - 0 */
-typedef enum {
- AB8500_CODEC_CR26_AD4_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR26_AD4_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr26_ad4_voice;
-
-/* CR27 - 7 */
-typedef enum {
- AB8500_CODEC_CR27_EN_MASTGEN_DISABLED,
- AB8500_CODEC_CR27_EN_MASTGEN_ENABLED
-} t_ab8500_codec_cr27_en_mastgen;
-
-/* CR27 - 6:5 */
-/* In ab8500_codec.h */
-
-/* CR27 - 4 */
-typedef enum {
- AB8500_CODEC_CR27_ENFS_BITCLK1_DISABLED,
- AB8500_CODEC_CR27_ENFS_BITCLK1_ENABLED
-} t_ab8500_codec_cr27_enfs_bitclk1;
-
-/* CR27 - 2:1 */
-/* In ab8500_codec.h */
-
-/* CR27 - 0 */
-typedef enum {
- AB8500_CODEC_CR27_ENFS_BITCLK0_DISABLED,
- AB8500_CODEC_CR27_ENFS_BITCLK0_ENABLED
-} t_ab8500_codec_cr27_enfs_bitclk0;
-
-/* CR28 - 6 */
-typedef enum {
- AB8500_CODEC_CR28_FSYNC0P_RISING_EDGE,
- AB8500_CODEC_CR28_FSYNC0P_FALLING_EDGE
-} t_ab8500_codec_cr28_fsync0p;
-
-/* CR28 - 5 */
-typedef enum {
- AB8500_CODEC_CR28_BITCLK0P_RISING_EDGE,
- AB8500_CODEC_CR28_BITCLK0P_FALLING_EDGE
-} t_ab8500_codec_cr28_bitclk0p;
-
-/* CR28 - 4 */
-typedef enum {
- AB8500_CODEC_CR28_IF0DEL_NOT_DELAYED,
- AB8500_CODEC_CR28_IF0DEL_DELAYED
-} t_ab8500_codec_cr28_if0del;
-
-/* CR28 - 3:2 */
-typedef enum {
- AB8500_CODEC_CR28_IF0FORMAT_DISABLED,
- AB8500_CODEC_CR28_IF0FORMAT_TDM,
- AB8500_CODEC_CR28_IF0FORMAT_I2S_LEFTALIGNED
-} t_ab8500_codec_cr28_if0format;
-
-/* CR28 - 1:0 */
-/* In ab8500_codec.h */
-
-/* CR29 - 7 */
-typedef enum {
- AB8500_CODEC_CR29_IF0DATOIF1AD_NOTSENT,
- AB8500_CODEC_CR29_IF0DATOIF1AD_SENT
-} t_ab8500_codec_cr29_if0datoif1ad;
-
-/* CR29 - 6 */
-typedef enum {
- AB8500_CODEC_CR29_IF0CKTOIF1CK_NOTSENT,
- AB8500_CODEC_CR29_IF0CKTOIF1CK_SENT
-} t_ab8500_codec_cr29_if0cktoif1ck;
-
-/* CR29 - 5 */
-typedef enum {
- AB8500_CODEC_CR29_IF1MASTER_FS1CK1_INPUT,
- AB8500_CODEC_CR29_IF1MASTER_FS1CK1_OUTPUT
-} t_ab8500_codec_cr29_if1master;
-
-/* CR29 - 3 */
-typedef enum {
- AB8500_CODEC_CR29_IF1DATOIF0AD_NOTSENT,
- AB8500_CODEC_CR29_IF1DATOIF0AD_SENT
-} t_ab8500_codec_cr29_if1datoif0ad;
-
-/* CR29 - 2 */
-typedef enum {
- AB8500_CODEC_CR29_IF1CKTOIF0CK_NOTSENT,
- AB8500_CODEC_CR29_IF1CKTOIF0CK_SENT
-} t_ab8500_codec_cr29_if1cktoif0ck;
-
-/* CR29 - 1 */
-typedef enum {
- AB8500_CODEC_CR29_IF0MASTER_FS0CK0_INPUT,
- AB8500_CODEC_CR29_IF0MASTER_FS0CK0_OUTPUT
-} t_ab8500_codec_cr29_if0master;
-
-/* CR29 - 0 */
-typedef enum {
- AB8500_CODEC_CR29_IF0BFIFOEN_NORMAL_MODE,
- AB8500_CODEC_CR29_IF0BFIFOEN_BURST_MODE
-} t_ab8500_codec_cr29_if0bfifoen;
-
-/* CR30 - 6 */
-typedef enum {
- AB8500_CODEC_CR30_FSYNC1P_RISING_EDGE,
- AB8500_CODEC_CR30_FSYNC1P_FALLING_EDGE
-} t_ab8500_codec_cr30_fsync1p;
-
-/* CR30 - 5 */
-typedef enum {
- AB8500_CODEC_CR30_BITCLK1P_RISING_EDGE,
- AB8500_CODEC_CR30_BITCLK1P_FALLING_EDGE
-} t_ab8500_codec_cr30_bitclk1p;
-
-/* CR30 - 4 */
-typedef enum {
- AB8500_CODEC_CR30_IF1DEL_NOT_DELAYED,
- AB8500_CODEC_CR30_IF1DEL_DELAYED
-} t_ab8500_codec_cr30_if1del;
-
-/* CR30 - 3:2 */
-typedef enum {
- AB8500_CODEC_CR30_IF1FORMAT_DISABLED,
- AB8500_CODEC_CR30_IF1FORMAT_TDM,
- AB8500_CODEC_CR30_IF1FORMAT_I2S_LEFTALIGNED
-} t_ab8500_codec_cr30_if1format;
-
-/* CR30 - 1:0 */
-/* In ab8500_codec.h */
-
-/* CR31:46 - 7:4 or 3:0 */
-/* In ab8500_codec.h */
-
-/* CR47:50 - 7/6/5/4/3/2/1/0 */
-typedef enum {
- AB8500_CODEC_CR47_TO_CR50_HIZ_SL_LOW_IMPEDANCE,
- AB8500_CODEC_CR47_TO_CR50_HIZ_SL_HIGH_IMPEDANCE,
-} t_ab8500_codec_cr47_to_cr50_hiz_sl;
-
-/* CR51 - 7 */
-typedef enum {
- AB8500_CODEC_CR51_DA12_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR51_DA12_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr51_da12_voice;
-
-/* CR51 - 6 */
-typedef enum {
- AB8500_CODEC_CR51_SWAPDA12_34_NORMAL,
- AB8500_CODEC_CR51_SWAPDA12_34_SWAPPED
-} t_ab8500_codec_cr51_swapda12_34;
-
-/* CR51 - 5 */
-typedef enum {
- AB8500_CODEC_CR51_SLDAI7TOSLADO1_NOT_LOOPEDBACK,
- AB8500_CODEC_CR51_SLDAI7TOSLADO1_LOOPEDBACK
-} t_ab8500_codec_cr51_sldai7toslado1;
-
-/* CR51:58 - 4:0 */
-/* In ab8500_codec.h */
-
-/* CR52 - 5 */
-typedef enum {
- AB8500_CODEC_CR52_SLDAI8TOSLADO2_NOT_LOOPEDBACK,
- AB8500_CODEC_CR52_SLDAI8TOSLADO2_LOOPEDBACK
-} t_ab8500_codec_cr52_sldai8toslado2;
-
-/* CR53 - 7 */
-typedef enum {
- AB8500_CODEC_CR53_DA34_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR53_DA34_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr53_da34_voice;
-
-/* CR53 - 5 */
-typedef enum {
- AB8500_CODEC_CR53_SLDAI7TOSLADO3_NOT_LOOPEDBACK,
- AB8500_CODEC_CR53_SLDAI7TOSLADO3_LOOPEDBACK
-} t_ab8500_codec_cr53_sldai7toslado3;
-
-/* CR54 - 5 */
-typedef enum {
- AB8500_CODEC_CR54_SLDAI8TOSLADO4_NOT_LOOPEDBACK,
- AB8500_CODEC_CR54_SLDAI8TOSLADO4_LOOPEDBACK
-} t_ab8500_codec_cr54_sldai8toslado4;
-
-/* CR55 - 7 */
-typedef enum {
- AB8500_CODEC_CR55_DA56_VOICE_AUDIOFILTER,
- AB8500_CODEC_CR55_DA56_VOICE_LOWLATENCYFILTER
-} t_ab8500_codec_cr55_da56_voice;
-
-/* CR55 - 5 */
-typedef enum {
- AB8500_CODEC_CR55_SLDAI7TOSLADO5_NOT_LOOPEDBACK,
- AB8500_CODEC_CR55_SLDAI7TOSLADO5_LOOPEDBACK
-} t_ab8500_codec_cr55_sldai7toslado5;
-
-/* CR56 - 5 */
-typedef enum {
- AB8500_CODEC_CR56_SLDAI8TOSLADO6_NOT_LOOPEDBACK,
- AB8500_CODEC_CR56_SLDAI8TOSLADO6_LOOPEDBACK
-} t_ab8500_codec_cr56_sldai8toslado6;
-
-/* CR57 - 5 */
-typedef enum {
- AB8500_CODEC_CR57_SLDAI8TOSLADO7_NOT_LOOPEDBACK,
- AB8500_CODEC_CR57_SLDAI8TOSLADO7_LOOPEDBACK
-} t_ab8500_codec_cr57_sldai8toslado7;
-
-/* CR58 - 5 */
-typedef enum {
- AB8500_CODEC_CR58_SLDAI7TOSLADO8_NOT_LOOPEDBACK,
- AB8500_CODEC_CR58_SLDAI7TOSLADO8_LOOPEDBACK
-} t_ab8500_codec_cr58_sldai7toslado8;
-
-/* CR59 - 7 */
-typedef enum {
- AB8500_CODEC_CR59_PARLHF_INDEPENDENT,
- AB8500_CODEC_CR59_PARLHF_BRIDGED
-} t_ab8500_codec_cr59_parlhf;
-
-/* CR59 - 6 */
-typedef enum {
- AB8500_CODEC_CR59_PARLVIB_INDEPENDENT,
- AB8500_CODEC_CR59_PARLVIB_BRIDGED
-} t_ab8500_codec_cr59_parlvib;
-
-/* CR59 - 3 */
-typedef enum {
- AB8500_CODEC_CR59_CLASSDVIB1_SWAPEN_DISABLED,
- AB8500_CODEC_CR59_CLASSDVIB1_SWAPEN_ENABLED
-} t_ab8500_codec_cr59_classdvib1_swapen;
-
-/* CR59 - 2 */
-typedef enum {
- AB8500_CODEC_CR59_CLASSDVIB2_SWAPEN_DISABLED,
- AB8500_CODEC_CR59_CLASSDVIB2_SWAPEN_ENABLED
-} t_ab8500_codec_cr59_classdvib2_swapen;
-
-/* CR59 - 1 */
-typedef enum {
- AB8500_CODEC_CR59_CLASSDHFL_SWAPEN_DISABLED,
- AB8500_CODEC_CR59_CLASSDHFL_SWAPEN_ENABLED
-} t_ab8500_codec_cr59_classdhfl_swapen;
-
-/* CR59 - 0 */
-typedef enum {
- AB8500_CODEC_CR59_CLASSDHFR_SWAPEN_DISABLED,
- AB8500_CODEC_CR59_CLASSDHFR_SWAPEN_ENABLED
-} t_ab8500_codec_cr59_classdhfr_swapen;
-
-/* CR60 - 7:4 */
-typedef enum {
- AB8500_CODEC_CR60_CLASSD_FIRBYP_ALL_ENABLED = 0,
- AB8500_CODEC_CR60_CLASSD_FIRBYP_LEFT_HF_BYPASSED = 1,
- AB8500_CODEC_CR60_CLASSD_FIRBYP_RIGHT_HF_BYPASSED = 2,
- AB8500_CODEC_CR60_CLASSD_FIRBYP_VIBRA1_BYPASSED = 4,
- AB8500_CODEC_CR60_CLASSD_FIRBYP_VIBRA2_BYPASSED = 8
-} t_ab8500_codec_cr60_classd_firbyp;
-
-/* CR60 - 3:0 */
-typedef enum {
- AB8500_CODEC_CR60_CLASSD_HIGHVOLEN_DISABLED = 0,
- AB8500_CODEC_CR60_CLASSD_HIGHVOLEN_LEFT_HF = 1,
- AB8500_CODEC_CR60_CLASSD_HIGHVOLEN_RIGHT_HF = 2,
- AB8500_CODEC_CR60_CLASSD_HIGHVOLEN_VIBRA1 = 4,
- AB8500_CODEC_CR60_CLASSD_HIGHVOLEN_VIBRA2 = 8
-} t_ab8500_codec_cr60_classd_highvolen;
-
-/* CR61 - 7:4 */
-typedef t_uint8 t_ab8500_codec_cr61_classddith_hpgain;
-
-/* CR61 - 3:0 */
-typedef t_uint8 t_ab8500_codec_cr61_classddith_wgain;
-
-/* CR62 - Read Only */
-/* CR62 - 5 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC1SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC1SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic1sinc3;
-
-/* CR62 - 4 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC2SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC2SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic2sinc3;
-
-/* CR62 - 3 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC3SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC3SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic3sinc3;
-
-/* CR62 - 2 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC4SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC4SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic4sinc3;
-
-/* CR62 - 1 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC5SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC5SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic5sinc3;
-
-/* CR62 - 0 */
-typedef enum {
- AB8500_CODEC_CR62_DMIC6SINC3_SINC5_SELECTED,
- AB8500_CODEC_CR62_DMIC6SINC3_SINC3_SELECTED
-} t_ab8500_codec_cr62_dmic6sinc3;
-
-/* CR63 - 7 */
-typedef enum {
- AB8500_CODEC_CR63_DATOHSLEN_DISABLED,
- AB8500_CODEC_CR63_DATOHSLEN_ENABLED
-} t_ab8500_codec_cr63_datohslen;
-
-/* CR63 - 6 */
-typedef enum {
- AB8500_CODEC_CR63_DATOHSREN_DISABLED,
- AB8500_CODEC_CR63_DATOHSREN_ENABLED
-} t_ab8500_codec_cr63_datohsren;
-
-/* CR63 - 5 */
-typedef enum {
- AB8500_CODEC_CR63_AD1SEL_LINLADL_SELECTED,
- AB8500_CODEC_CR63_AD1SEL_DMIC1_SELECTED
-} t_ab8500_codec_cr63_ad1sel;
-
-/* CR63 - 4 */
-typedef enum {
- AB8500_CODEC_CR63_AD2SEL_LINRADR_SELECTED,
- AB8500_CODEC_CR63_AD2SEL_DMIC2_SELECTED
-} t_ab8500_codec_cr63_ad2sel;
-
-/* CR63 - 3 */
-typedef enum {
- AB8500_CODEC_CR63_AD3SEL_ADMO_SELECTED,
- AB8500_CODEC_CR63_AD3SEL_DMIC3_SELECTED
-} t_ab8500_codec_cr63_ad3sel;
-
-/* CR63 - 2 */
-typedef enum {
- AB8500_CODEC_CR63_AD5SEL_AMADR_SELECTED,
- AB8500_CODEC_CR63_AD5SEL_DMIC5_SELECTED
-} t_ab8500_codec_cr63_ad5sel;
-
-/* CR63 - 1 */
-typedef enum {
- AB8500_CODEC_CR63_AD6SEL_ADMO_SELECTED,
- AB8500_CODEC_CR63_AD6SEL_DMIC6_SELECTED
-} t_ab8500_codec_cr63_ad6sel;
-
-/* CR63 - 0 */
-typedef enum {
- AB8500_CODEC_CR63_ANCSEL_NOT_MIXED_IN_EAR,
- AB8500_CODEC_CR63_ANCSEL_MIXED_IN_EAR
-} t_ab8500_codec_cr63_ancsel;
-
-/* CR64 - 7 */
-typedef enum {
- AB8500_CODEC_CR64_DATOHFREN_NOT_MIXED_TO_HFR,
- AB8500_CODEC_CR64_DATOHFREN_MIXED_TO_HFR
-} t_ab8500_codec_cr64_datohfren;
-
-/* CR64 - 6 */
-typedef enum {
- AB8500_CODEC_CR64_DATOHFLEN_NOT_MIXED_TO_HFL,
- AB8500_CODEC_CR64_DATOHFLEN_MIXED_TO_HFL
-} t_ab8500_codec_cr64_datohflen;
-
-/* CR64 - 5 */
-typedef enum {
- AB8500_CODEC_CR64_HFRSEL_DA4_MIXED_TO_HFR,
- AB8500_CODEC_CR64_HFRSEL_ANC_MIXED_TO_HFR
-} t_ab8500_codec_cr64_hfrsel;
-
-/* CR64 - 4 */
-typedef enum {
- AB8500_CODEC_CR64_HFLSEL_DA3_MIXED_TO_HFL,
- AB8500_CODEC_CR64_HFLSEL_ANC_MIXED_TO_HFL
-} t_ab8500_codec_cr64_hflsel;
-
-/* CR64 - 3:2 */
-typedef enum {
- AB8500_CODEC_CR64_STFIR1SEL_AD_OUT1_SELECTED,
- AB8500_CODEC_CR64_STFIR1SEL_AD_OUT3_SELECTED,
- AB8500_CODEC_CR64_STFIR1SEL_DA_IN1_SELECTED
-} t_ab8500_codec_cr64_stfir1sel;
-
-/* CR64 - 1:0 */
-typedef enum {
- AB8500_CODEC_CR64_STFIR2SEL_AD_OUT2_SELECTED,
- AB8500_CODEC_CR64_STFIR2SEL_AD_OUT4_SELECTED,
- AB8500_CODEC_CR64_STFIR2SEL_DA_IN2_SELECTED
-} t_ab8500_codec_cr64_stfir2sel;
-
-/* CR65 - 6 */
-typedef enum {
- AB8500_CODEC_CR65_FADEDIS_AD1_ENABLED,
- AB8500_CODEC_CR65_FADEDIS_AD1_DISABLED
-} t_ab8500_codec_cr65_fadedis_ad1;
-
-/* CR65 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr65_ad1gain;
-
-/* CR66 - 6 */
-typedef enum {
- AB8500_CODEC_CR66_FADEDIS_AD2_ENABLED,
- AB8500_CODEC_CR66_FADEDIS_AD2_DISABLED
-} t_ab8500_codec_cr66_fadedis_ad2;
-
-/* CR66 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr66_ad2gain;
-
-/* CR67 - 6 */
-typedef enum {
- AB8500_CODEC_CR67_FADEDIS_AD3_ENABLED,
- AB8500_CODEC_CR67_FADEDIS_AD3_DISABLED
-} t_ab8500_codec_cr67_fadedis_ad3;
-
-/* CR67 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr67_ad3gain;
-
-/* CR68 - 6 */
-typedef enum {
- AB8500_CODEC_CR68_FADEDIS_AD4_ENABLED,
- AB8500_CODEC_CR68_FADEDIS_AD4_DISABLED
-} t_ab8500_codec_cr68_fadedis_ad4;
-
-/* CR68 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr68_ad4gain;
-
-/* CR69 - 6 */
-typedef enum {
- AB8500_CODEC_CR69_FADEDIS_AD5_ENABLED,
- AB8500_CODEC_CR69_FADEDIS_AD5_DISABLED
-} t_ab8500_codec_cr69_fadedis_ad5;
-
-/* CR69 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr69_ad5gain;
-
-/* CR70 - 6 */
-typedef enum {
- AB8500_CODEC_CR70_FADEDIS_AD6_ENABLED,
- AB8500_CODEC_CR70_FADEDIS_AD6_DISABLED
-} t_ab8500_codec_cr70_fadedis_ad6;
-
-/* CR70 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr70_ad6gain;
-
-/* CR71 - 6 */
-typedef enum {
- AB8500_CODEC_CR71_FADEDIS_DA1_ENABLED,
- AB8500_CODEC_CR71_FADEDIS_DA1_DISABLED
-} t_ab8500_codec_cr71_fadedis_da1;
-
-/* CR71 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr71_da1gain;
-
-/* CR72 - 6 */
-typedef enum {
- AB8500_CODEC_CR72_FADEDIS_DA2_ENABLED,
- AB8500_CODEC_CR72_FADEDIS_DA2_DISABLED
-} t_ab8500_codec_cr72_fadedis_da2;
-
-/* CR72 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr72_da2gain;
-
-/* CR73 - 6 */
-typedef enum {
- AB8500_CODEC_CR73_FADEDIS_DA3_ENABLED,
- AB8500_CODEC_CR73_FADEDIS_DA3_DISABLED
-} t_ab8500_codec_cr73_fadedis_da3;
-
-/* CR73 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr73_da3gain;
-
-/* CR74 - 6 */
-typedef enum {
- AB8500_CODEC_CR74_FADEDIS_DA4_ENABLED,
- AB8500_CODEC_CR74_FADEDIS_DA4_DISABLED
-} t_ab8500_codec_cr74_fadedis_da4;
-
-/* CR74 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr74_da4gain;
-
-/* CR75 - 6 */
-typedef enum {
- AB8500_CODEC_CR75_FADEDIS_DA5_ENABLED,
- AB8500_CODEC_CR75_FADEDIS_DA5_DISABLED
-} t_ab8500_codec_cr75_fadedis_da5;
-
-/* CR75 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr75_da5gain;
-
-/* CR76 - 6 */
-typedef enum {
- AB8500_CODEC_CR76_FADEDIS_DA6_ENABLED,
- AB8500_CODEC_CR76_FADEDIS_DA6_DISABLED
-} t_ab8500_codec_cr76_fadedis_da6;
-
-/* CR76 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr76_da6gain;
-
-/* CR77 - 6 */
-typedef enum {
- AB8500_CODEC_CR77_FADEDIS_AD1L_TO_HFL_ENABLED,
- AB8500_CODEC_CR77_FADEDIS_AD1L_TO_HFL_DISABLED
-} t_ab8500_codec_cr77_fadedis_ad1l;
-
-/* CR77 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr77_ad1lbgain_to_hfl;
-
-/* CR78 - 6 */
-typedef enum {
- AB8500_CODEC_CR78_FADEDIS_AD2L_TO_HFR_ENABLED,
- AB8500_CODEC_CR78_FADEDIS_AD2L_TO_HFR_DISABLED
-} t_ab8500_codec_cr78_fadedis_ad2l;
-
-/* CR78 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr78_ad2lbgain_to_hfr;
-
-/* CR79 - 7 */
-typedef enum {
- AB8500_CODEC_CR79_HSSINC1_SINC3_CHOOSEN,
- AB8500_CODEC_CR79_HSSINC1_SINC1_CHOOSEN
-} t_ab8500_codec_cr79_hssinc1;
-
-/* CR79 - 4 */
-typedef enum {
- AB8500_CODEC_CR79_FADEDIS_HSL_ENABLED,
- AB8500_CODEC_CR79_FADEDIS_HSL_DISABLED
-} t_ab8500_codec_cr79_fadedis_hsl;
-
-/* CR79 - 3:0 */
-typedef t_uint8 t_ab8500_codec_cr79_hsldgain;
-
-/* CR80 - 7:6 */
-typedef enum {
- AB8500_CODEC_CR80_FADE_SPEED_1MS,
- AB8500_CODEC_CR80_FADE_SPEED_4MS,
- AB8500_CODEC_CR80_FADE_SPEED_8MS,
- AB8500_CODEC_CR80_FADE_SPEED_16MS,
-} t_ab8500_codec_cr80_fade_speed;
-
-/* CR80 - 4 */
-typedef enum {
- AB8500_CODEC_CR80_FADEDIS_HSR_ENABLED,
- AB8500_CODEC_CR80_FADEDIS_HSR_DISABLED
-} t_ab8500_codec_cr80_fadedis_hsr;
-
-/* CR80 - 3:0 */
-typedef t_uint8 t_ab8500_codec_cr80_hsrdgain;
-
-/* CR81 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr81_stfir1gain;
-
-/* CR82 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr82_stfir2gain;
-
-/* CR83 - 2 */
-typedef enum {
- AB8500_CODEC_CR83_ENANC_DISABLED,
- AB8500_CODEC_CR83_ENANC_ENABLED
-} t_ab8500_codec_cr83_enanc;
-
-/* CR83 - 1 */
-typedef enum {
- AB8500_CODEC_CR83_ANCIIRINIT_NOT_STARTED,
- AB8500_CODEC_CR83_ANCIIRINIT_STARTED
-} t_ab8500_codec_cr83_anciirinit;
-
-/* CR83 - 0 */
-typedef enum {
- AB8500_CODEC_CR83_ANCFIRUPDATE_RESETTED,
- AB8500_CODEC_CR83_ANCFIRUPDATE_NOT_RESETTED
-} t_ab8500_codec_cr83_ancfirupdate;
-
-/* CR84 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr84_ancinshift;
-
-/* CR85 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr85_ancfiroutshift;
-
-/* CR86 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr86_ancshiftout;
-
-/* CR87 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr87_ancfircoeff_msb;
-
-/* CR88 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr88_ancfircoeff_lsb;
-
-/* CR89 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr89_anciircoeff_msb;
-
-/* CR90 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr90_anciircoeff_lsb;
-
-/* CR91 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr91_ancwarpdel_msb;
-
-/* CR92 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr92_ancwarpdel_lsb;
-
-/* CR93 - Read Only */
-/* CR93 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr93_ancfirpeak_msb;
-
-/* CR94 - Read Only */
-/* CR94 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr94_ancfirpeak_lsb;
-
-/* CR95 - Read Only */
-/* CR95 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr95_anciirpeak_msb;
-
-/* CR96 - Read Only */
-/* CR96 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr96_anciirpeak_lsb;
-
-/* CR97 - 7 */
-typedef enum {
- AB8500_CODEC_CR97_STFIR_SET_LAST_NOT_APPLIED,
- AB8500_CODEC_CR97_STFIR_SET_LAST_APPLIED
-} t_ab8500_codec_cr97_stfir_set;
-
-/* CR97 - 6:0 */
-typedef t_uint8 t_ab8500_codec_cr97_stfir_addr;
-
-/* CR98 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr98_stfir_coeff_msb;
-
-/* CR99 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr99_stfir_coeff_lsb;
-
-/* CR100 - 2 */
-typedef enum {
- AB8500_CODEC_CR100_ENSTFIRS_DISABLED,
- AB8500_CODEC_CR100_ENSTFIRS_ENABLED
-} t_ab8500_codec_cr100_enstfirs;
-
-/* CR100 - 1 */
-typedef enum {
- AB8500_CODEC_CR100_STFIRSTOIF1_AUD_IF0_DATA_RATE,
- AB8500_CODEC_CR100_STFIRSTOIF1_AUD_IF1_DATA_RATE
-} t_ab8500_codec_cr100_stfirstoif1;
-
-/* CR100 - 0 */
-typedef enum {
- AB8500_CODEC_CR100_STFIR_BUSY_READY,
- AB8500_CODEC_CR100_STFIR_BUSY_NOT_READY
-} t_ab8500_codec_cr100_stfir_busy;
-
-/* CR101 - 7 */
-typedef enum {
- AB8500_CODEC_CR101_HSOFFST_MASK_MASKED,
- AB8500_CODEC_CR101_HSOFFST_MASK_ENABLED
-} t_ab8500_codec_cr101_hsoffst_mask;
-
-/* CR101 - 6 */
-typedef enum {
- AB8500_CODEC_CR101_FIFOFULL_MASK_MASKED,
- AB8500_CODEC_CR101_FIFOFULL_MASK_ENABLED
-} t_ab8500_codec_cr101_fifofull_mask;
-
-/* CR101 - 5 */
-typedef enum {
- AB8500_CODEC_CR101_FIFOEMPTY_MASK_MASKED,
- AB8500_CODEC_CR101_FIFOEMPTY_MASK_ENABLED
-} t_ab8500_codec_cr101_fifoempty_mask;
-
-/* CR101 - 4 */
-typedef enum {
- AB8500_CODEC_CR101_DASAT_MASK_MASKED,
- AB8500_CODEC_CR101_DASAT_MASK_ENABLED
-} t_ab8500_codec_cr101_dasat_mask;
-
-/* CR101 - 3 */
-typedef enum {
- AB8500_CODEC_CR101_ADSAT_MASK_MASKED,
- AB8500_CODEC_CR101_ADSAT_MASK_ENABLED
-} t_ab8500_codec_cr101_adsat_mask;
-
-/* CR101 - 2 */
-typedef enum {
- AB8500_CODEC_CR101_ADDSP_MASK_MASKED,
- AB8500_CODEC_CR101_ADDSP_MASK_ENABLED
-} t_ab8500_codec_cr101_addsp_mask;
-
-/* CR101 - 1 */
-typedef enum {
- AB8500_CODEC_CR101_DADSP_MASK_MASKED,
- AB8500_CODEC_CR101_DADSP_MASK_ENABLED
-} t_ab8500_codec_cr101_dadsp_mask;
-
-/* CR101 - 0 */
-typedef enum {
- AB8500_CODEC_CR101_FIRSID_MASK_MASKED,
- AB8500_CODEC_CR101_FIRSID_MASK_ENABLED
-} t_ab8500_codec_cr101_firsid_mask;
-
-/* CR102 - Read Only */
-/* CR102 - 7 */
-typedef enum {
- AB8500_CODEC_CR102_IT_HSOFFST_ON,
- AB8500_CODEC_CR102_IT_HSOFFST_OFF
-} t_ab8500_codec_cr102_it_hsoffst;
-
-/* CR102 - 6 */
-typedef enum {
- AB8500_CODEC_CR102_IT_FIFOFULL_NOT_FULL,
- AB8500_CODEC_CR102_IT_FIFOFULL_FULL
-} t_ab8500_codec_cr102_it_fifofull;
-
-/* CR102 - 5 */
-typedef enum {
- AB8500_CODEC_CR102_IT_FIFOEMPTY_NOT_EMPTY,
- AB8500_CODEC_CR102_IT_FIFOEMPTY_EMPTY
-} t_ab8500_codec_cr102_it_fifoempty;
-
-/* CR102 - 4 */
-typedef enum {
- AB8500_CODEC_CR102_IT_DASAT_NO_SATURATION,
- AB8500_CODEC_CR102_IT_DASAT_SATURATION
-} t_ab8500_codec_cr102_it_dasat;
-
-/* CR102 - 3 */
-typedef enum {
- AB8500_CODEC_CR102_IT_ADSAT_NO_SATURATION,
- AB8500_CODEC_CR102_IT_ADSAT_SATURATION
-} t_ab8500_codec_cr102_it_adsat;
-
-/* CR102 - 2 */
-typedef enum {
- AB8500_CODEC_CR102_IT_ADDSP_NO_SATURATION,
- AB8500_CODEC_CR102_IT_ADDSP_SATURATION
-} t_ab8500_codec_cr102_it_addsp;
-
-/* CR102 - 1 */
-typedef enum {
- AB8500_CODEC_CR102_IT_DADSP_NO_SATURATION,
- AB8500_CODEC_CR102_IT_DADSP_SATURATION
-} t_ab8500_codec_cr102_it_dadsp;
-
-/* CR102 - 0 */
-typedef enum {
- AB8500_CODEC_CR102_IT_FIRSID_NO_SATURATION,
- AB8500_CODEC_CR102_IT_FIRSID_SATURATION
-} t_ab8500_codec_cr102_it_firsid;
-
-/* CR103 - 7 */
-typedef enum {
- AB8500_CODEC_CR103_VSSREADY_MASK_MASKED,
- AB8500_CODEC_CR103_VSSREADY_MASK_ENABLED
-} t_ab8500_codec_cr103_vssready_mask;
-
-/* CR103 - 2 */
-typedef enum {
- AB8500_CODEC_CR103_SHORTHSL_MASK_MASKED,
- AB8500_CODEC_CR103_SHORTHSL_MASK_ENABLED
-} t_ab8500_codec_cr103_shorthsl_mask;
-
-/* CR103 - 1 */
-typedef enum {
- AB8500_CODEC_CR103_SHORTHSR_MASK_MASKED,
- AB8500_CODEC_CR103_SHORTHSR_MASK_ENABLED
-} t_ab8500_codec_cr103_shorthsr_mask;
-
-/* CR103 - 0 */
-typedef enum {
- AB8500_CODEC_CR103_SHORTEAR_MASK_MASKED,
- AB8500_CODEC_CR103_SHORTEAR_MASK_ENABLED
-} t_ab8500_codec_cr103_shortear_mask;
-
-/* CR104 - Read Only */
-/* CR104 - 7 */
-typedef enum {
- AB8500_CODEC_CR104_IT_VSSREADY_NOT_READY,
- AB8500_CODEC_CR104_IT_VSSREADY_READY
-} t_ab8500_codec_cr104_it_vssready;
-
-/* CR104 - 2 */
-typedef enum {
- AB8500_CODEC_CR104_IT_SHORTHSL_NOT_DETECTED,
- AB8500_CODEC_CR104_IT_SHORTHSL_DETECTED
-} t_ab8500_codec_cr104_it_shorthsl;
-
-/* CR104 - 1 */
-typedef enum {
- AB8500_CODEC_CR104_IT_SHORTHSR_NOT_DETECTED,
- AB8500_CODEC_CR104_IT_SHORTHSR_DETECTED
-} t_ab8500_codec_cr104_it_shorthsr;
-
-/* CR104 - 0 */
-typedef enum {
- AB8500_CODEC_CR104_IT_SHORTEAR_NOT_DETECTED,
- AB8500_CODEC_CR104_IT_SHORTEAR_DETECTED
-} t_ab8500_codec_cr104_it_shortear;
-
-/* CR105 - 7 */
-/* In ab8500_codec.h */
-
-/* CR105 - 5:0 */
-/* In ab8500_codec.h */
-
-/* CR106 - 7:0 */
-/* In ab8500_codec.h */
-
-/* CR107 - 7:0 */
-/* In ab8500_codec.h */
-
-/* CR108 - 7:0 */
-/* In ab8500_codec.h */
-
-/* CR109 - 7:0 */
-/* In ab8500_codec.h */
-
-/* CR110 - Read Only */
-/* CR110 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr110_bfifosamples;
-
-/* CR111 - Read Only */
-/* CR111 - 4:0 */
-typedef t_uint8 t_ab8500_codec_cr111_aud_ip_rev;
-
-/* CR27 - 6:5 */
-typedef enum {
- AB8500_CODEC_CR27_IF1_BITCLK_OSR_32,
- AB8500_CODEC_CR27_IF1_BITCLK_OSR_64,
- AB8500_CODEC_CR27_IF1_BITCLK_OSR_128,
- AB8500_CODEC_CR27_IF1_BITCLK_OSR_256
-} t_ab8500_codec_cr27_if1_bitclk_osr;
-
-/* CR27 - 2:1 */
-typedef enum {
- AB8500_CODEC_CR27_IF0_BITCLK_OSR_32,
- AB8500_CODEC_CR27_IF0_BITCLK_OSR_64,
- AB8500_CODEC_CR27_IF0_BITCLK_OSR_128,
- AB8500_CODEC_CR27_IF0_BITCLK_OSR_256
-} t_ab8500_codec_cr27_if0_bitclk_osr;
-
-/* CR28 - 1:0 */
-typedef enum {
- AB8500_CODEC_CR28_IF0WL_16BITS,
- AB8500_CODEC_CR28_IF0WL_20BITS,
- AB8500_CODEC_CR28_IF0WL_24BITS,
- AB8500_CODEC_CR28_IF0WL_32BITS
-} t_ab8500_codec_cr28_if0wl;
-
-/* CR30 - 1:0 */
-typedef enum {
- AB8500_CODEC_CR30_IF1WL_16BITS,
- AB8500_CODEC_CR30_IF1WL_20BITS,
- AB8500_CODEC_CR30_IF1WL_24BITS,
- AB8500_CODEC_CR30_IF1WL_32BITS
-} t_ab8500_codec_cr30_if1wl;
-
-/* CR105 - 7 */
-typedef enum {
- AB8500_CODEC_CR105_BFIFOMSK_AD_DATA0_UNMASKED,
- AB8500_CODEC_CR105_BFIFOMSK_AD_DATA0_MASKED
-} t_ab8500_codec_cr105_bfifomsk;
-
-/* CR105 - 5:0 */
-typedef t_uint8 t_ab8500_codec_cr105_bfifoint;
-
-/* CR106 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr106_bfifotx;
-
-/* CR107 - 7:5 */
-typedef enum {
- AB8500_CODEC_CR107_BFIFOEXSL_0_EXTRA_SLOT,
- AB8500_CODEC_CR107_BFIFOEXSL_1_EXTRA_SLOT,
- AB8500_CODEC_CR107_BFIFOEXSL_2_EXTRA_SLOT,
- AB8500_CODEC_CR107_BFIFOEXSL_3_EXTRA_SLOT,
- AB8500_CODEC_CR107_BFIFOEXSL_4_EXTRA_SLOT,
- AB8500_CODEC_CR107_BFIFOEXSL_5_EXTRA_SLOT,
- AB8500_CODEC_CR107_BFIFOEXSL_6_EXTRA_SLOT,
-} t_ab8500_codec_cr107_bfifoexsl;
-
-/* CR107 - 4:2 */
-typedef enum {
- AB8500_CODEC_CR107_PREBITCLK0_0_EXTRA_CLK,
- AB8500_CODEC_CR107_PREBITCLK0_1_EXTRA_CLK,
- AB8500_CODEC_CR107_PREBITCLK0_2_EXTRA_CLK,
- AB8500_CODEC_CR107_PREBITCLK0_3_EXTRA_CLK,
- AB8500_CODEC_CR107_PREBITCLK0_4_EXTRA_CLK,
- AB8500_CODEC_CR107_PREBITCLK0_5_EXTRA_CLK,
- AB8500_CODEC_CR107_PREBITCLK0_6_EXTRA_CLK,
- AB8500_CODEC_CR107_PREBITCLK0_7_EXTRA_CLK
-} t_ab8500_codec_cr107_prebitclk0;
-
-/* CR107 - 1 */
-typedef enum {
- AB8500_CODEC_CR107_BFIFOMAST_SLAVE_MODE,
- AB8500_CODEC_CR107_BFIFOMAST_MASTER_MODE
-} t_ab8500_codec_cr107_bfifomast;
-
-/* CR107 - 0 */
-typedef enum {
- AB8500_CODEC_CR107_BFIFORUN_STOPPED,
- AB8500_CODEC_CR107_BFIFORUN_RUNNING
-} t_ab8500_codec_cr107_bfiforun;
-
-/* CR108 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr108_bfifoframsw;
-
-/* CR109 - 7:0 */
-typedef t_uint8 t_ab8500_codec_cr109_bfifowakeup;
-
-typedef enum {
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT1,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT2,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT3,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT4,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT5,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT6,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT7,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_OUT8,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_ZEROS,
- AB8500_CODEC_CR31_TO_CR46_SLOT_IS_TRISTATE = 15,
- AB8500_CODEC_CR31_TO_CR46_SLOT_OUTPUTS_DATA_FROM_AD_UNDEFINED
-} t_ab8500_codec_cr31_to_cr46_ad_data_allocation;
-
-typedef enum {
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT00,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT01,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT02,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT03,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT04,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT05,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT06,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT07,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT08,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT09,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT10,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT11,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT12,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT13,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT14,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT15,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT16,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT17,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT18,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT19,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT20,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT21,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT22,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT23,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT24,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT25,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT26,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT27,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT28,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT29,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT30,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT31,
- AB8500_CODEC_CR51_TO_CR58_SLTODA_SLOT_UNDEFINED
-} t_ab8500_codec_cr51_to_cr58_sltoda;
-
-/*configuration structure for AB8500 Codec*/
-typedef struct {
- /* CR0 */
- t_ab8500_codec_cr0_powerup cr0_powerup;
- t_ab8500_codec_cr0_enaana cr0_enaana;
-
- /* CR1 */
- t_ab8500_codec_cr1_swreset cr1_swreset;
-
- /* CR2 */
- t_ab8500_codec_cr2_enad1 cr2_enad1;
- t_ab8500_codec_cr2_enad2 cr2_enad2;
- t_ab8500_codec_cr2_enad3 cr2_enad3;
- t_ab8500_codec_cr2_enad4 cr2_enad4;
- t_ab8500_codec_cr2_enad5 cr2_enad5;
- t_ab8500_codec_cr2_enad6 cr2_enad6;
-
- /* CR3 */
- t_ab8500_codec_cr3_enda1 cr3_enda1;
- t_ab8500_codec_cr3_enda2 cr3_enda2;
- t_ab8500_codec_cr3_enda3 cr3_enda3;
- t_ab8500_codec_cr3_enda4 cr3_enda4;
- t_ab8500_codec_cr3_enda5 cr3_enda5;
- t_ab8500_codec_cr3_enda6 cr3_enda6;
-
- /* CR4 */
- t_ab8500_codec_cr4_lowpowhs cr4_lowpowhs;
- t_ab8500_codec_cr4_lowpowdachs cr4_lowpowdachs;
- t_ab8500_codec_cr4_lowpowear cr4_lowpowear;
- t_ab8500_codec_cr4_ear_sel_cm cr4_ear_sel_cm;
- t_ab8500_codec_cr4_hs_hp_en cr4_hs_hp_en;
-
- /* CR5 */
- t_ab8500_codec_cr5_enmic1 cr5_enmic1;
- t_ab8500_codec_cr5_enmic2 cr5_enmic2;
- t_ab8500_codec_cr5_enlinl cr5_enlinl;
- t_ab8500_codec_cr5_enlinr cr5_enlinr;
- t_ab8500_codec_cr5_mutmic1 cr5_mutmic1;
- t_ab8500_codec_cr5_mutmic2 cr5_mutmic2;
- t_ab8500_codec_cr5_mutlinl cr5_mutlinl;
- t_ab8500_codec_cr5_mutlinr cr5_mutlinr;
-
- /* CR6 */
- t_ab8500_codec_cr6_endmic1 cr6_endmic1;
- t_ab8500_codec_cr6_endmic2 cr6_endmic2;
- t_ab8500_codec_cr6_endmic3 cr6_endmic3;
- t_ab8500_codec_cr6_endmic4 cr6_endmic4;
- t_ab8500_codec_cr6_endmic5 cr6_endmic5;
- t_ab8500_codec_cr6_endmic6 cr6_endmic6;
-
- /* CR7 */
- t_ab8500_codec_cr7_mic1sel cr7_mic1sel;
- t_ab8500_codec_cr7_linrsel cr7_linrsel;
- t_ab8500_codec_cr7_endrvhsl cr7_endrvhsl;
- t_ab8500_codec_cr7_endrvhsr cr7_endrvhsr;
- t_ab8500_codec_cr7_enadcmic cr7_enadcmic;
- t_ab8500_codec_cr7_enadclinl cr7_enadclinl;
- t_ab8500_codec_cr7_enadclinr cr7_enadclinr;
-
- /* CR8 */
- t_ab8500_codec_cr8_cp_dis_pldwn cr8_cp_dis_pldwn;
- t_ab8500_codec_cr8_enear cr8_enear;
- t_ab8500_codec_cr8_enhsl cr8_enhsl;
- t_ab8500_codec_cr8_enhsr cr8_enhsr;
- t_ab8500_codec_cr8_enhfl cr8_enhfl;
- t_ab8500_codec_cr8_enhfr cr8_enhfr;
- t_ab8500_codec_cr8_envibl cr8_envibl;
- t_ab8500_codec_cr8_envibr cr8_envibr;
-
- /* CR9 */
- t_ab8500_codec_cr9_endacear cr9_endacear;
- t_ab8500_codec_cr9_endachsl cr9_endachsl;
- t_ab8500_codec_cr9_endachsr cr9_endachsr;
- t_ab8500_codec_cr9_endachfl cr9_endachfl;
- t_ab8500_codec_cr9_endachfr cr9_endachfr;
- t_ab8500_codec_cr9_endacvibl cr9_endacvibl;
- t_ab8500_codec_cr9_endacvibr cr9_endacvibr;
-
- /* CR10 */
- t_ab8500_codec_cr10_muteear cr10_muteear;
- t_ab8500_codec_cr10_mutehsl cr10_mutehsl;
- t_ab8500_codec_cr10_mutehsr cr10_mutehsr;
-
- /* CR11 */
- t_ab8500_codec_cr11_enshortpwd cr11_enshortpwd;
- t_ab8500_codec_cr11_earshortdis cr11_earshortdis;
- t_ab8500_codec_cr11_hsshortdis cr11_hsshortdis;
- t_ab8500_codec_cr11_hspullden cr11_hspullden;
- t_ab8500_codec_cr11_hsoscen cr11_hsoscen;
- t_ab8500_codec_cr11_hsfaden cr11_hsfaden;
- t_ab8500_codec_cr11_hszcddis cr11_hszcddis;
-
- /* CR12 */
- t_ab8500_codec_cr12_encphs cr12_encphs;
- t_ab8500_codec_cr12_hsautoen cr12_hsautoen;
-
- /* CR13 */
- t_ab8500_codec_cr13_envdet_hthresh cr13_envdet_hthresh;
- t_ab8500_codec_cr13_envdet_lthresh cr13_envdet_lthresh;
-
- /* CR14 */
- t_ab8500_codec_cr14_smpslven cr14_smpslven;
- t_ab8500_codec_cr14_envdetsmpsen cr14_envdetsmpsen;
- t_ab8500_codec_cr14_cplven cr14_cplven;
- t_ab8500_codec_cr14_envdetcpen cr14_envdetcpen;
- t_ab8500_codec_cr14_envet_time cr14_envet_time;
-
- /* CR15 */
- t_ab8500_codec_cr15_pwmtovibl cr15_pwmtovibl;
- t_ab8500_codec_cr15_pwmtovibr cr15_pwmtovibr;
- t_ab8500_codec_cr15_pwmlctrl cr15_pwmlctrl;
- t_ab8500_codec_cr15_pwmrctrl cr15_pwmrctrl;
- t_ab8500_codec_cr15_pwmnlctrl cr15_pwmnlctrl;
- t_ab8500_codec_cr15_pwmplctrl cr15_pwmplctrl;
- t_ab8500_codec_cr15_pwmnrctrl cr15_pwmnrctrl;
- t_ab8500_codec_cr15_pwmprctrl cr15_pwmprctrl;
-
- /* CR16 */
- t_ab8500_codec_cr16_pwmnlpol cr16_pwmnlpol;
- t_ab8500_codec_cr16_pwmnldutycycle cr16_pwmnldutycycle;
-
- /* CR17 */
- t_ab8500_codec_cr17_pwmplpol cr17_pwmplpol;
- t_ab8500_codec_cr17_pwmpldutycycle cr17_pwmpldutycycle;
-
- /* CR18 */
- t_ab8500_codec_cr18_pwmnrpol cr18_pwmnrpol;
- t_ab8500_codec_cr18_pwmnrdutycycle cr18_pwmnrdutycycle;
-
- /* CR19 */
- t_ab8500_codec_cr19_pwmprpol cr19_pwmprpol;
- t_ab8500_codec_cr19_pwmprdutycycle cr19_pwmprdutycycle;
-
- /* CR20 */
- t_ab8500_codec_cr20_en_se_mic1 cr20_en_se_mic1;
- t_ab8500_codec_cr20_low_pow_mic1 cr20_low_pow_mic1;
- t_ab8500_codec_cr20_mic1_gain cr20_mic1_gain;
-
- /* CR21 */
- t_ab8500_codec_cr21_en_se_mic2 cr21_en_se_mic2;
- t_ab8500_codec_cr21_low_pow_mic2 cr21_low_pow_mic2;
- t_ab8500_codec_cr21_mic2_gain cr21_mic2_gain;
-
- /* CR22 */
- t_ab8500_codec_cr22_hsl_gain cr22_hsl_gain;
- t_ab8500_codec_cr22_hsr_gain cr22_hsr_gain;
-
- /* CR23 */
- t_ab8500_codec_cr23_linl_gain cr23_linl_gain;
- t_ab8500_codec_cr23_linr_gain cr23_linr_gain;
-
- /* CR24 */
- t_ab8500_codec_cr24_lintohsl_gain cr24_lintohsl_gain;
-
- /* CR25 */
- t_ab8500_codec_cr25_lintohsr_gain cr25_lintohsr_gain;
-
- /* CR26 */
- t_ab8500_codec_cr26_ad1nh cr26_ad1nh;
- t_ab8500_codec_cr26_ad2nh cr26_ad2nh;
- t_ab8500_codec_cr26_ad3nh cr26_ad3nh;
- t_ab8500_codec_cr26_ad4nh cr26_ad4nh;
- t_ab8500_codec_cr26_ad1_voice cr26_ad1_voice;
- t_ab8500_codec_cr26_ad2_voice cr26_ad2_voice;
- t_ab8500_codec_cr26_ad3_voice cr26_ad3_voice;
- t_ab8500_codec_cr26_ad4_voice cr26_ad4_voice;
-
- /* CR27 */
- t_ab8500_codec_cr27_en_mastgen cr27_en_mastgen;
- t_ab8500_codec_cr27_if1_bitclk_osr cr27_if1_bitclk_osr;
- t_ab8500_codec_cr27_enfs_bitclk1 cr27_enfs_bitclk1;
- t_ab8500_codec_cr27_if0_bitclk_osr cr27_if0_bitclk_osr;
- t_ab8500_codec_cr27_enfs_bitclk0 cr27_enfs_bitclk0;
-
- /* CR28 */
- t_ab8500_codec_cr28_fsync0p cr28_fsync0p;
- t_ab8500_codec_cr28_bitclk0p cr28_bitclk0p;
- t_ab8500_codec_cr28_if0del cr28_if0del;
- t_ab8500_codec_cr28_if0format cr28_if0format;
- t_ab8500_codec_cr28_if0wl cr28_if0wl;
-
- /* CR29 */
- t_ab8500_codec_cr29_if0datoif1ad cr29_if0datoif1ad;
- t_ab8500_codec_cr29_if0cktoif1ck cr29_if0cktoif1ck;
- t_ab8500_codec_cr29_if1master cr29_if1master;
- t_ab8500_codec_cr29_if1datoif0ad cr29_if1datoif0ad;
- t_ab8500_codec_cr29_if1cktoif0ck cr29_if1cktoif0ck;
- t_ab8500_codec_cr29_if0master cr29_if0master;
- t_ab8500_codec_cr29_if0bfifoen cr29_if0bfifoen;
-
- /* CR30 */
- t_ab8500_codec_cr30_fsync1p cr30_fsync1p;
- t_ab8500_codec_cr30_bitclk1p cr30_bitclk1p;
- t_ab8500_codec_cr30_if1del cr30_if1del;
- t_ab8500_codec_cr30_if1format cr30_if1format;
- t_ab8500_codec_cr30_if1wl cr30_if1wl;
-
- /* CR31 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr31_adotoslot1;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr31_adotoslot0;
-
- /* CR32 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr32_adotoslot3;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr32_adotoslot2;
-
- /* CR33 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr33_adotoslot5;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr33_adotoslot4;
-
- /* CR34 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr34_adotoslot7;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr34_adotoslot6;
-
- /* CR35 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr35_adotoslot9;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr35_adotoslot8;
-
- /* CR36 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr36_adotoslot11;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr36_adotoslot10;
-
- /* CR37 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr37_adotoslot13;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr37_adotoslot12;
-
- /* CR38 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr38_adotoslot15;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr38_adotoslot14;
-
- /* CR39 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr39_adotoslot17;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr39_adotoslot16;
-
- /* CR40 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr40_adotoslot19;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr40_adotoslot18;
-
- /* CR41 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr41_adotoslot21;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr41_adotoslot20;
-
- /* CR42 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr42_adotoslot23;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr42_adotoslot22;
-
- /* CR43 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr43_adotoslot25;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr43_adotoslot24;
-
- /* CR44 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr44_adotoslot27;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr44_adotoslot26;
-
- /* CR45 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr45_adotoslot29;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr45_adotoslot28;
-
- /* CR46 */
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr46_adotoslot31;
- t_ab8500_codec_cr31_to_cr46_ad_data_allocation cr46_adotoslot30;
-
- /* CR47 */
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl7;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl6;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl5;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl4;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl3;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl2;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl1;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr47_hiz_sl0;
-
- /* CR48 */
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl15;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl14;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl13;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl12;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl11;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl10;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl9;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr48_hiz_sl8;
-
- /* CR49 */
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl23;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl22;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl21;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl20;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl19;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl18;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl17;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr49_hiz_sl16;
-
- /* CR50 */
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl31;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl30;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl29;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl28;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl27;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl26;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl25;
- t_ab8500_codec_cr47_to_cr50_hiz_sl cr50_hiz_sl24;
-
- /* CR51 */
- t_ab8500_codec_cr51_da12_voice cr51_da12_voice;
- t_ab8500_codec_cr51_swapda12_34 cr51_swapda12_34;
- t_ab8500_codec_cr51_sldai7toslado1 cr51_sldai7toslado1;
- t_ab8500_codec_cr51_to_cr58_sltoda cr51_sltoda1;
-
- /* CR52 */
- t_ab8500_codec_cr52_sldai8toslado2 cr52_sldai8toslado2;
- t_ab8500_codec_cr51_to_cr58_sltoda cr52_sltoda2;
-
- /* CR53 */
- t_ab8500_codec_cr53_da34_voice cr53_da34_voice;
- t_ab8500_codec_cr53_sldai7toslado3 cr53_sldai7toslado3;
- t_ab8500_codec_cr51_to_cr58_sltoda cr53_sltoda3;
-
- /* CR54 */
- t_ab8500_codec_cr54_sldai8toslado4 cr54_sldai8toslado4;
- t_ab8500_codec_cr51_to_cr58_sltoda cr54_sltoda4;
-
- /* CR55 */
- t_ab8500_codec_cr55_da56_voice cr55_da56_voice;
- t_ab8500_codec_cr55_sldai7toslado5 cr55_sldai7toslado5;
- t_ab8500_codec_cr51_to_cr58_sltoda cr55_sltoda5;
-
- /* CR56 */
- t_ab8500_codec_cr56_sldai8toslado6 cr56_sldai8toslado6;
- t_ab8500_codec_cr51_to_cr58_sltoda cr56_sltoda6;
-
- /* CR57 */
- t_ab8500_codec_cr57_sldai8toslado7 cr57_sldai8toslado7;
- t_ab8500_codec_cr51_to_cr58_sltoda cr57_sltoda7;
-
- /* CR58 */
- t_ab8500_codec_cr58_sldai7toslado8 cr58_sldai7toslado8;
- t_ab8500_codec_cr51_to_cr58_sltoda cr58_sltoda8;
-
- /* CR59 */
- t_ab8500_codec_cr59_parlhf cr59_parlhf;
- t_ab8500_codec_cr59_parlvib cr59_parlvib;
- t_ab8500_codec_cr59_classdvib1_swapen cr59_classdvib1_swapen;
- t_ab8500_codec_cr59_classdvib2_swapen cr59_classdvib2_swapen;
- t_ab8500_codec_cr59_classdhfl_swapen cr59_classdhfl_swapen;
- t_ab8500_codec_cr59_classdhfr_swapen cr59_classdhfr_swapen;
-
- /* CR60 */
- t_ab8500_codec_cr60_classd_firbyp cr60_classd_firbyp;
- t_ab8500_codec_cr60_classd_highvolen cr60_classd_highvolen;
-
- /* CR61 */
- t_ab8500_codec_cr61_classddith_hpgain cr61_classddith_hpgain;
- t_ab8500_codec_cr61_classddith_wgain cr61_classddith_wgain;
-
- /* CR62 */
- t_ab8500_codec_cr62_dmic1sinc3 cr62_dmic1sinc3;
- t_ab8500_codec_cr62_dmic2sinc3 cr62_dmic2sinc3;
- t_ab8500_codec_cr62_dmic3sinc3 cr62_dmic3sinc3;
- t_ab8500_codec_cr62_dmic4sinc3 cr62_dmic4sinc3;
- t_ab8500_codec_cr62_dmic5sinc3 cr62_dmic5sinc3;
- t_ab8500_codec_cr62_dmic6sinc3 cr62_dmic6sinc3;
-
- /* CR63 */
- t_ab8500_codec_cr63_datohslen cr63_datohslen;
- t_ab8500_codec_cr63_datohsren cr63_datohsren;
- t_ab8500_codec_cr63_ad1sel cr63_ad1sel;
- t_ab8500_codec_cr63_ad2sel cr63_ad2sel;
- t_ab8500_codec_cr63_ad3sel cr63_ad3sel;
- t_ab8500_codec_cr63_ad5sel cr63_ad5sel;
- t_ab8500_codec_cr63_ad6sel cr63_ad6sel;
- t_ab8500_codec_cr63_ancsel cr63_ancsel;
-
- /* CR64 */
- t_ab8500_codec_cr64_datohfren cr64_datohfren;
- t_ab8500_codec_cr64_datohflen cr64_datohflen;
- t_ab8500_codec_cr64_hfrsel cr64_hfrsel;
- t_ab8500_codec_cr64_hflsel cr64_hflsel;
- t_ab8500_codec_cr64_stfir1sel cr64_stfir1sel;
- t_ab8500_codec_cr64_stfir2sel cr64_stfir2sel;
-
- /* CR65 */
- t_ab8500_codec_cr65_fadedis_ad1 cr65_fadedis_ad1;
- t_ab8500_codec_cr65_ad1gain cr65_ad1gain;
-
- /* CR66 */
- t_ab8500_codec_cr66_fadedis_ad2 cr66_fadedis_ad2;
- t_ab8500_codec_cr66_ad2gain cr66_ad2gain;
-
- /* CR67 */
- t_ab8500_codec_cr67_fadedis_ad3 cr67_fadedis_ad3;
- t_ab8500_codec_cr67_ad3gain cr67_ad3gain;
-
- /* CR68 */
- t_ab8500_codec_cr68_fadedis_ad4 cr68_fadedis_ad4;
- t_ab8500_codec_cr68_ad4gain cr68_ad4gain;
-
- /* CR69 */
- t_ab8500_codec_cr69_fadedis_ad5 cr69_fadedis_ad5;
- t_ab8500_codec_cr69_ad5gain cr69_ad5gain;
-
- /* CR70 */
- t_ab8500_codec_cr70_fadedis_ad6 cr70_fadedis_ad6;
- t_ab8500_codec_cr70_ad6gain cr70_ad6gain;
-
- /* CR71 */
- t_ab8500_codec_cr71_fadedis_da1 cr71_fadedis_da1;
- t_ab8500_codec_cr71_da1gain cr71_da1gain;
-
- /* CR72 */
- t_ab8500_codec_cr72_fadedis_da2 cr72_fadedis_da2;
- t_ab8500_codec_cr72_da2gain cr72_da2gain;
-
- /* CR73 */
- t_ab8500_codec_cr73_fadedis_da3 cr73_fadedis_da3;
- t_ab8500_codec_cr73_da3gain cr73_da3gain;
-
- /* CR74 */
- t_ab8500_codec_cr74_fadedis_da4 cr74_fadedis_da4;
- t_ab8500_codec_cr74_da4gain cr74_da4gain;
-
- /* CR75 */
- t_ab8500_codec_cr75_fadedis_da5 cr75_fadedis_da5;
- t_ab8500_codec_cr75_da5gain cr75_da5gain;
-
- /* CR76 */
- t_ab8500_codec_cr76_fadedis_da6 cr76_fadedis_da6;
- t_ab8500_codec_cr76_da6gain cr76_da6gain;
-
- /* CR77 */
- t_ab8500_codec_cr77_fadedis_ad1l cr77_fadedis_ad1l;
- t_ab8500_codec_cr77_ad1lbgain_to_hfl cr77_ad1lbgain_to_hfl;
-
- /* CR78 */
- t_ab8500_codec_cr78_fadedis_ad2l cr78_fadedis_ad2l;
- t_ab8500_codec_cr78_ad2lbgain_to_hfr cr78_ad2lbgain_to_hfr;
-
- /* CR79 */
- t_ab8500_codec_cr79_hssinc1 cr79_hssinc1;
- t_ab8500_codec_cr79_fadedis_hsl cr79_fadedis_hsl;
- t_ab8500_codec_cr79_hsldgain cr79_hsldgain;
-
- /* CR80 */
- t_ab8500_codec_cr80_fade_speed cr80_fade_speed;
- t_ab8500_codec_cr80_fadedis_hsr cr80_fadedis_hsr;
- t_ab8500_codec_cr80_hsrdgain cr80_hsrdgain;
-
- /* CR81 */
- t_ab8500_codec_cr81_stfir1gain cr81_stfir1gain;
-
- /* CR82 */
- t_ab8500_codec_cr82_stfir2gain cr82_stfir2gain;
-
- /* CR83 */
- t_ab8500_codec_cr83_enanc cr83_enanc;
- t_ab8500_codec_cr83_anciirinit cr83_anciirinit;
- t_ab8500_codec_cr83_ancfirupdate cr83_ancfirupdate;
-
- /* CR84 */
- t_ab8500_codec_cr84_ancinshift cr84_ancinshift;
-
- /* CR85 */
- t_ab8500_codec_cr85_ancfiroutshift cr85_ancfiroutshift;
-
- /* CR86 */
- t_ab8500_codec_cr86_ancshiftout cr86_ancshiftout;
-
- /* CR87 */
- t_ab8500_codec_cr87_ancfircoeff_msb cr87_ancfircoeff_msb;
-
- /* CR88 */
- t_ab8500_codec_cr88_ancfircoeff_lsb cr88_ancfircoeff_lsb;
-
- /* CR89 */
- t_ab8500_codec_cr89_anciircoeff_msb cr89_anciircoeff_msb;
-
- /* CR90 */
- t_ab8500_codec_cr90_anciircoeff_lsb cr90_anciircoeff_lsb;
-
- /* CR91 */
- t_ab8500_codec_cr91_ancwarpdel_msb cr91_ancwarpdel_msb;
-
- /* CR92 */
- t_ab8500_codec_cr92_ancwarpdel_lsb cr92_ancwarpdel_lsb;
-
- /* CR93 */
- t_ab8500_codec_cr93_ancfirpeak_msb cr93_ancfirpeak_msb;
-
- /* CR94 */
- t_ab8500_codec_cr94_ancfirpeak_lsb cr94_ancfirpeak_lsb;
-
- /* CR95 */
- t_ab8500_codec_cr95_anciirpeak_msb cr95_anciirpeak_msb;
-
- /* CR96 */
- t_ab8500_codec_cr96_anciirpeak_lsb cr96_anciirpeak_lsb;
-
- /* CR97 */
- t_ab8500_codec_cr97_stfir_set cr97_stfir_set;
- t_ab8500_codec_cr97_stfir_addr cr97_stfir_addr;
-
- /* CR98 */
- t_ab8500_codec_cr98_stfir_coeff_msb cr98_stfir_coeff_msb;
-
- /* CR99 */
- t_ab8500_codec_cr99_stfir_coeff_lsb cr99_stfir_coeff_lsb;
-
- /* CR100 */
- t_ab8500_codec_cr100_enstfirs cr100_enstfirs;
- t_ab8500_codec_cr100_stfirstoif1 cr100_stfirstoif1;
- t_ab8500_codec_cr100_stfir_busy cr100_stfir_busy;
-
- /* CR101 */
- t_ab8500_codec_cr101_hsoffst_mask cr101_hsoffst_mask;
- t_ab8500_codec_cr101_fifofull_mask cr101_fifofull_mask;
- t_ab8500_codec_cr101_fifoempty_mask cr101_fifoempty_mask;
- t_ab8500_codec_cr101_dasat_mask cr101_dasat_mask;
- t_ab8500_codec_cr101_adsat_mask cr101_adsat_mask;
- t_ab8500_codec_cr101_addsp_mask cr101_addsp_mask;
- t_ab8500_codec_cr101_dadsp_mask cr101_dadsp_mask;
- t_ab8500_codec_cr101_firsid_mask cr101_firsid_mask;
-
- /* CR102 */
- t_ab8500_codec_cr102_it_hsoffst cr102_it_hsoffst;
- t_ab8500_codec_cr102_it_fifofull cr102_it_fifofull;
- t_ab8500_codec_cr102_it_fifoempty cr102_it_fifoempty;
- t_ab8500_codec_cr102_it_dasat cr102_it_dasat;
- t_ab8500_codec_cr102_it_adsat cr102_it_adsat;
- t_ab8500_codec_cr102_it_addsp cr102_it_addsp;
- t_ab8500_codec_cr102_it_dadsp cr102_it_dadsp;
- t_ab8500_codec_cr102_it_firsid cr102_it_firsid;
-
- /* CR103 */
- t_ab8500_codec_cr103_vssready_mask cr103_vssready_mask;
- t_ab8500_codec_cr103_shorthsl_mask cr103_shorthsl_mask;
- t_ab8500_codec_cr103_shorthsr_mask cr103_shorthsr_mask;
- t_ab8500_codec_cr103_shortear_mask cr103_shortear_mask;
-
- /* CR104 */
- t_ab8500_codec_cr104_it_vssready cr104_it_vssready;
- t_ab8500_codec_cr104_it_shorthsl cr104_it_shorthsl;
- t_ab8500_codec_cr104_it_shorthsr cr104_it_shorthsr;
- t_ab8500_codec_cr104_it_shortear cr104_it_shortear;
-
- /* CR105 */
- t_ab8500_codec_cr105_bfifomsk cr105_bfifomsk;
- t_ab8500_codec_cr105_bfifoint cr105_bfifoint;
-
- /* CR106 */
- t_ab8500_codec_cr106_bfifotx cr106_bfifotx;
-
- /* CR107 */
- t_ab8500_codec_cr107_bfifoexsl cr107_bfifoexsl;
- t_ab8500_codec_cr107_prebitclk0 cr107_prebitclk0;
- t_ab8500_codec_cr107_bfifomast cr107_bfifomast;
- t_ab8500_codec_cr107_bfiforun cr107_bfiforun;
-
- /* CR108 */
- t_ab8500_codec_cr108_bfifoframsw cr108_bfifoframsw;
-
- /* CR109 */
- t_ab8500_codec_cr109_bfifowakeup cr109_bfifowakeup;
-
- /* CR110 */
- t_ab8500_codec_cr110_bfifosamples cr110_bfifosamples;
-
- /* CR111 */
- t_ab8500_codec_cr111_aud_ip_rev cr111_aud_ip_rev;
-
-} t_ab8500_codec_configuration;
-
-typedef enum {
- AB8500_CODEC_DIRECTION_IN,
- AB8500_CODEC_DIRECTION_OUT,
- AB8500_CODEC_DIRECTION_INOUT
-} t_ab8500_codec_direction;
-
-typedef enum {
- AB8500_CODEC_AUDIO_INTERFACE_0,
- AB8500_CODEC_AUDIO_INTERFACE_1
-} t_ab8500_codec_audio_interface;
-
-typedef enum {
- AB8500_CODEC_MODE_HIFI,
- AB8500_CODEC_MODE_VOICE,
- AB8500_CODEC_MODE_MANUAL_SETTING
-} t_ab8500_codec_mode;
-
-typedef enum {
- AB8500_CODEC_DEST_HEADSET,
- AB8500_CODEC_DEST_EARPIECE,
- AB8500_CODEC_DEST_HANDSFREE,
- AB8500_CODEC_DEST_VIBRATOR_L,
- AB8500_CODEC_DEST_VIBRATOR_R,
- AB8500_CODEC_DEST_FM_TX,
- AB8500_CODEC_DEST_ALL
-} t_ab8500_codec_dest;
-
-typedef enum {
- AB8500_CODEC_SRC_LINEIN,
- AB8500_CODEC_SRC_MICROPHONE_1A,
- AB8500_CODEC_SRC_MICROPHONE_1B,
- AB8500_CODEC_SRC_MICROPHONE_2,
- AB8500_CODEC_SRC_D_MICROPHONE_1,
- AB8500_CODEC_SRC_D_MICROPHONE_2,
- AB8500_CODEC_SRC_D_MICROPHONE_3,
- AB8500_CODEC_SRC_D_MICROPHONE_4,
- AB8500_CODEC_SRC_D_MICROPHONE_5,
- AB8500_CODEC_SRC_D_MICROPHONE_6,
- AB8500_CODEC_SRC_D_MICROPHONE_12,
- AB8500_CODEC_SRC_D_MICROPHONE_34,
- AB8500_CODEC_SRC_D_MICROPHONE_56,
- AB8500_CODEC_SRC_FM_RX,
- AB8500_CODEC_SRC_ALL
-} t_ab8500_codec_src;
-
-typedef struct {
- t_uint8 slave_address_of_ab8500_codec;
- t_ab8500_codec_direction ab8500_codec_direction;
- t_ab8500_codec_mode ab8500_codec_mode_in;
- t_ab8500_codec_mode ab8500_codec_mode_out;
- t_ab8500_codec_audio_interface audio_interface;
- t_ab8500_codec_src ab8500_codec_src;
- t_ab8500_codec_dest ab8500_codec_dest;
- t_uint8 in_left_volume;
- t_uint8 in_right_volume;
- t_uint8 out_left_volume;
- t_uint8 out_right_volume;
-
- t_ab8500_codec_configuration ab8500_codec_configuration;
-} t_ab8500_codec_system_context;
-
-#endif /* _AB8500_CODECP_H_ */
-
-/* End of file AB8500_CODECP.h */
diff --git a/arch/arm/mach-ux500/include/mach/ab8500_codec_v1_0.h b/arch/arm/mach-ux500/include/mach/ab8500_codec_v1_0.h
deleted file mode 100644
index a5b8a57f341..00000000000
--- a/arch/arm/mach-ux500/include/mach/ab8500_codec_v1_0.h
+++ /dev/null
@@ -1,329 +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 Public header file for AB8500 Codec
-* \author ST-Ericsson
-*/
-/*****************************************************************************/
-
-#ifndef _AB8500_CODEC_V1_0_H_
-#define _AB8500_CODEC_V1_0_H_
-
-/*---------------------------------------------------------------------
- * Includes
- *--------------------------------------------------------------------*/
-#include "hcl_defs.h"
-#include "debug.h"
-#include <mach/ab8500_codec_p_v1_0.h>
-/*---------------------------------------------------------------------
- * Define
- *--------------------------------------------------------------------*/
-#ifdef __cplusplus
-extern "C" {
-#endif
- typedef enum {
- AB8500_CODEC_OK,
- AB8500_CODEC_ERROR,
- AB8500_CODEC_UNSUPPORTED_FEATURE,
- AB8500_CODEC_INVALID_PARAMETER,
- AB8500_CODEC_CONFIG_NOT_COHERENT,
- AB8500_CODEC_TRANSACTION_FAILED
- } t_ab8500_codec_error;
-
- typedef enum {
- AB8500_CODEC_SRC_STATE_DISABLE,
- AB8500_CODEC_SRC_STATE_ENABLE
- } t_ab8500_codec_src_state;
-
- typedef enum {
- AB8500_CODEC_DEST_STATE_DISABLE,
- AB8500_CODEC_DEST_STATE_ENABLE
- } t_ab8500_codec_dest_state;
-
- typedef enum {
- AB8500_CODEC_MASTER_MODE_DISABLE,
- AB8500_CODEC_MASTER_MODE_ENABLE
- } t_ab8500_codec_master_mode;
-
- typedef enum {
- AB8500_CODEC_SLOT0,
- AB8500_CODEC_SLOT1,
- AB8500_CODEC_SLOT2,
- AB8500_CODEC_SLOT3,
- AB8500_CODEC_SLOT4,
- AB8500_CODEC_SLOT5,
- AB8500_CODEC_SLOT6,
- AB8500_CODEC_SLOT7,
- AB8500_CODEC_SLOT8,
- AB8500_CODEC_SLOT9,
- AB8500_CODEC_SLOT10,
- AB8500_CODEC_SLOT11,
- AB8500_CODEC_SLOT12,
- AB8500_CODEC_SLOT13,
- AB8500_CODEC_SLOT14,
- AB8500_CODEC_SLOT15,
- AB8500_CODEC_SLOT16,
- AB8500_CODEC_SLOT17,
- AB8500_CODEC_SLOT18,
- AB8500_CODEC_SLOT19,
- AB8500_CODEC_SLOT20,
- AB8500_CODEC_SLOT21,
- AB8500_CODEC_SLOT22,
- AB8500_CODEC_SLOT23,
- AB8500_CODEC_SLOT24,
- AB8500_CODEC_SLOT25,
- AB8500_CODEC_SLOT26,
- AB8500_CODEC_SLOT27,
- AB8500_CODEC_SLOT28,
- AB8500_CODEC_SLOT29,
- AB8500_CODEC_SLOT30,
- AB8500_CODEC_SLOT31,
- AB8500_CODEC_SLOT_UNDEFINED
- } t_ab8500_codec_slot;
-
- typedef enum {
- AB8500_CODEC_DA_CHANNEL_NUMBER_1,
- AB8500_CODEC_DA_CHANNEL_NUMBER_2,
- AB8500_CODEC_DA_CHANNEL_NUMBER_3,
- AB8500_CODEC_DA_CHANNEL_NUMBER_4,
- AB8500_CODEC_DA_CHANNEL_NUMBER_5,
- AB8500_CODEC_DA_CHANNEL_NUMBER_6,
- AB8500_CODEC_DA_CHANNEL_NUMBER_7,
- AB8500_CODEC_DA_CHANNEL_NUMBER_8,
- AB8500_CODEC_DA_CHANNEL_NUMBER_UNDEFINED
- } t_ab8500_codec_da_channel_number;
-
- typedef struct {
- t_ab8500_codec_cr105_bfifomsk cr105_bfifomsk;
- t_ab8500_codec_cr105_bfifoint cr105_bfifoint;
- t_ab8500_codec_cr106_bfifotx cr106_bfifotx;
- t_ab8500_codec_cr107_bfifoexsl cr107_bfifoexsl;
- t_ab8500_codec_cr107_prebitclk0 cr107_prebitclk0;
- t_ab8500_codec_cr107_bfifomast cr107_bfifomast;
- t_ab8500_codec_cr107_bfiforun cr107_bfiforun;
- t_ab8500_codec_cr108_bfifoframsw cr108_bfifoframsw;
- t_ab8500_codec_cr109_bfifowakeup cr109_bfifowakeup;
- } t_ab8500_codec_burst_fifo_config;
-
- typedef struct {
- t_ab8500_codec_cr27_if1_bitclk_osr cr27_if1_bitclk_osr;
- t_ab8500_codec_cr27_if0_bitclk_osr cr27_if0_bitclk_osr;
- t_ab8500_codec_cr28_if0wl cr28_if0wl;
- t_ab8500_codec_cr30_if1wl cr30_if1wl;
- t_ab8500_codec_cr28_bitclk0p cr28_bitclk0p;
- t_ab8500_codec_cr28_if0del cr28_if0del;
- } t_ab8500_codec_tdm_config;
-
-/************************************************************/
-/*---------------------------------------------------------------------
- * Exported APIs
- *--------------------------------------------------------------------*/
-/* Initialization */
- t_ab8500_codec_error AB8500_CODEC_Init(IN t_uint8
- slave_address_of_codec);
- t_ab8500_codec_error AB8500_CODEC_Reset(void);
-
-/* Audio Codec basic configuration */
- 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_SelectInput(IN t_ab8500_codec_src
- ab8500_codec_src);
- t_ab8500_codec_error AB8500_CODEC_SelectOutput(IN t_ab8500_codec_dest
- ab8500_codec_dest);
-
-/* Burst FIFO configuration */
- t_ab8500_codec_error AB8500_CODEC_ConfigureBurstFifo(IN
- t_ab8500_codec_burst_fifo_config
- const *const
- p_burst_fifo_config);
- t_ab8500_codec_error AB8500_CODEC_EnableBurstFifo(void);
- t_ab8500_codec_error AB8500_CODEC_DisableBurstFifo(void);
-
-/* Audio Codec Master mode configuration */
- t_ab8500_codec_error AB8500_CODEC_SetMasterMode(IN
- t_ab8500_codec_master_mode
- mode);
-
-/* APIs to be implemented by user */
- t_ab8500_codec_error AB8500_CODEC_Write(IN t_uint8 register_offset,
- IN t_uint8 count,
- IN t_uint8 * p_data);
- t_ab8500_codec_error AB8500_CODEC_Read(IN t_uint8 register_offset,
- IN t_uint8 count,
- IN t_uint8 * p_dummy_data,
- IN t_uint8 * p_data);
-
-/* Volume Management */
- 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_SetDestVolume(IN t_ab8500_codec_dest
- dest_device,
- IN t_uint8
- out_left_volume,
- IN t_uint8
- out_right_volume);
-
-/* Power management */
- t_ab8500_codec_error AB8500_CODEC_PowerDown(void);
- t_ab8500_codec_error AB8500_CODEC_PowerUp(void);
-
-/* Interface Management */
- t_ab8500_codec_error AB8500_CODEC_SelectInterface(IN
- t_ab8500_codec_audio_interface
- audio_interface);
- t_ab8500_codec_error AB8500_CODEC_GetInterface(OUT
- t_ab8500_codec_audio_interface
- * p_audio_interface);
-
-/* Slot Allocation */
- 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_DASlotAllocation(IN
- t_ab8500_codec_da_channel_number
- channel_number,
- IN
- t_ab8500_codec_cr51_to_cr58_sltoda
- slot);
-
-/* Loopback Management */
- 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_RemoveAnalogLoopback(void);
-
-/* Bypass Management */
- t_ab8500_codec_error AB8500_CODEC_EnableBypassMode(void);
- t_ab8500_codec_error AB8500_CODEC_DisableBypassMode(void);
-
-/* Power Control Management */
- 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_DestPowerControl(IN
- t_ab8500_codec_dest
- dest_device,
- t_ab8500_codec_dest_state
- state);
-
-/* Version Management */
- t_ab8500_codec_error AB8500_CODEC_GetVersion(OUT t_version * p_version);
-
-#if 0
-/* Debug management */
- t_ab8500_codec_error AB8500_CODEC_SetDbgLevel(IN t_dbg_level dbg_level);
- t_ab8500_codec_error AB8500_CODEC_GetDbgLevel(OUT t_dbg_level *
- p_dbg_level);
-#endif
-
-/*
-** following is added by $kardad$
-*/
-
-/* duplicate copy of enum from msp.h */
-/* for MSPConfiguration.in_clock_freq parameter to select msp clock freq */
- typedef enum {
- CODEC_MSP_INPUT_FREQ_1MHZ = 1024,
- CODEC_MSP_INPUT_FREQ_2MHZ = 2048,
- CODEC_MSP_INPUT_FREQ_3MHZ = 3072,
- CODEC_MSP_INPUT_FREQ_4MHZ = 4096,
- CODEC_MSP_INPUT_FREQ_5MHZ = 5760,
- CODEC_MSP_INPUT_FREQ_6MHZ = 6144,
- CODEC_MSP_INPUT_FREQ_8MHZ = 8192,
- CODEC_MSP_INPUT_FREQ_11MHZ = 11264,
- CODEC_MSP_INPUT_FREQ_12MHZ = 12288,
- CODEC_MSP_INPUT_FREQ_16MHZ = 16384,
- CODEC_MSP_INPUT_FREQ_22MHZ = 22579,
- CODEC_MSP_INPUT_FREQ_24MHZ = 24576,
- CODEC_MSP_INPUT_FREQ_48MHZ = 49152
- } codec_msp_in_clock_freq_type;
-
-/* msp clock source internal/external for srg_clock_sel */
- typedef enum {
- CODEC_MSP_APB_CLOCK = 0,
- CODEC_MSP_SCK_CLOCK = 2,
- CODEC_MSP_SCK_SYNC_CLOCK = 3
- } codec_msp_srg_clock_sel_type;
-
-/* Sample rate supported by Codec */
-
- typedef enum {
- CODEC_FREQUENCY_DONT_CHANGE = -100,
- CODEC_SAMPLING_FREQ_RESET = -1,
- CODEC_SAMPLING_FREQ_MINLIMIT = 7,
- CODEC_SAMPLING_FREQ_8KHZ = 8, /*default */
- CODEC_SAMPLING_FREQ_11KHZ = 11,
- CODEC_SAMPLING_FREQ_12KHZ = 12,
- CODEC_SAMPLING_FREQ_16KHZ = 16,
- CODEC_SAMPLING_FREQ_22KHZ = 22,
- CODEC_SAMPLING_FREQ_24KHZ = 24,
- CODEC_SAMPLING_FREQ_32KHZ = 32,
- CODEC_SAMPLING_FREQ_44KHZ = 44,
- CODEC_SAMPLING_FREQ_48KHZ = 48,
- CODEC_SAMPLING_FREQ_64KHZ = 64, /*the frequencies below this line are not supported in stw5094A */
- CODEC_SAMPLING_FREQ_88KHZ = 88,
- CODEC_SAMPLING_FREQ_96KHZ = 96,
- CODEC_SAMPLING_FREQ_128KHZ = 128,
- CODEC_SAMPLING_FREQ_176KHZ = 176,
- CODEC_SAMPLING_FREQ_192KHZ = 192,
- CODEC_SAMPLING_FREQ_MAXLIMIT = 193
- } t_codec_sample_frequency;
-
-#define RESET -1
-#define DEFAULT -100
-/***********************************************************/
-/*
-** following stuff is added to compile code without debug print support $kardad$
-*/
-
-#define DBGEXIT(cr)
-#define DBGEXIT0(cr)
-#define DBGEXIT1(cr,ch,p1)
-#define DBGEXIT2(cr,ch,p1,p2)
-#define DBGEXIT3(cr,ch,p1,p2,p3)
-#define DBGEXIT4(cr,ch,p1,p2,p3,p4)
-#define DBGEXIT5(cr,ch,p1,p2,p3,p4,p5)
-#define DBGEXIT6(cr,ch,p1,p2,p3,p4,p5,p6)
-
-#define DBGENTER()
-#define DBGENTER0()
-#define DBGENTER1(ch,p1)
-#define DBGENTER2(ch,p1,p2)
-#define DBGENTER3(ch,p1,p2,p3)
-#define DBGENTER4(ch,p1,p2,p3,p4)
-#define DBGENTER5(ch,p1,p2,p3,p4,p5)
-#define DBGENTER6(ch,p1,p2,p3,p4,p5,p6)
-
-#define DBGPRINT(dbg_level,dbg_string)
-#define DBGPRINTHEX(dbg_level,dbg_string,uint32)
-#define DBGPRINTDEC(dbg_level,dbg_string,uint32)
-/***********************************************************/
-
-#ifdef __cplusplus
-} /* allow C++ to use these headers */
-#endif /* __cplusplus */
-#endif /* _AB8500_CODEC_H_ */
-/* End of file ab8500_codec.h*/
diff --git a/arch/arm/mach-ux500/include/mach/ste_audio_io_ioctl.h b/arch/arm/mach-ux500/include/mach/ste_audio_io_ioctl.h
deleted file mode 100644
index e04734d65a5..00000000000
--- a/arch/arm/mach-ux500/include/mach/ste_audio_io_ioctl.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-#ifndef _AUDIOIO_IOCTL_H_
-#define _AUDIOIO_IOCTL_H_
-
-
-#define AUDIOIO_IOC_MAGIC 'N'
-#define AUDIOIO_READ_REGISTER _IOWR(AUDIOIO_IOC_MAGIC, 1,\
- struct audioio_data_t)
-#define AUDIOIO_WRITE_REGISTER _IOW(AUDIOIO_IOC_MAGIC, 2,\
- struct audioio_data_t)
-#define AUDIOIO_PWR_CTRL_TRNSDR _IOW(AUDIOIO_IOC_MAGIC, 3,\
- struct audioio_pwr_ctrl_t)
-#define AUDIOIO_PWR_STS_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 4,\
- struct audioio_pwr_ctrl_t)
-#define AUDIOIO_LOOP_CTRL _IOW(AUDIOIO_IOC_MAGIC, 5,\
- struct audioio_loop_ctrl_t)
-#define AUDIOIO_LOOP_STS _IOR(AUDIOIO_IOC_MAGIC, 6,\
- struct audioio_loop_ctrl_t)
-#define AUDIOIO_GET_TRNSDR_GAIN_CAPABILITY _IOR(AUDIOIO_IOC_MAGIC, 7,\
- struct audioio_get_gain_t)
-#define AUDIOIO_GAIN_CAP_LOOP _IOR(AUDIOIO_IOC_MAGIC, 8,\
- struct audioio_gain_loop_t)
-#define AUDIOIO_SUPPORT_LOOP _IOR(AUDIOIO_IOC_MAGIC, 9,\
- struct audioio_support_loop_t)
-#define AUDIOIO_GAIN_DESC_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 10,\
- struct audioio_gain_desc_trnsdr_t)
-#define AUDIOIO_GAIN_CTRL_TRNSDR _IOW(AUDIOIO_IOC_MAGIC, 11,\
- struct audioio_gain_ctrl_trnsdr_t)
-#define AUDIOIO_GAIN_QUERY_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 12,\
- struct audioio_gain_ctrl_trnsdr_t)
-#define AUDIOIO_MUTE_CTRL_TRNSDR _IOW(AUDIOIO_IOC_MAGIC, 13,\
- struct audioio_mute_trnsdr_t)
-#define AUDIOIO_MUTE_STS_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 14,\
- struct audioio_mute_trnsdr_t)
-#define AUDIOIO_FADE_CTRL _IOW(AUDIOIO_IOC_MAGIC, 15,\
- struct audioio_fade_ctrl_t)
-#define AUDIOIO_BURST_CTRL _IOW(AUDIOIO_IOC_MAGIC, 16,\
- struct audioio_burst_ctrl_t)
-#define AUDIOIO_READ_ALL_ACODEC_REGS_CTRL _IOW(AUDIOIO_IOC_MAGIC, 17,\
- struct audioio_read_all_acodec_reg_ctrl_t)
-#define AUDIOIO_FSBITCLK_CTRL _IOW(AUDIOIO_IOC_MAGIC, 18,\
- struct audioio_fsbitclk_ctrl_t)
-#define AUDIOIO_PSEUDOBURST_CTRL _IOW(AUDIOIO_IOC_MAGIC, 19,\
- struct audioio_pseudoburst_ctrl_t)
-#define AUDIOIO_AUDIOCODEC_PWR_CTRL _IOW(AUDIOIO_IOC_MAGIC, 20, \
- struct audioio_acodec_pwr_ctrl_t)
-#define AUDIOIO_FIR_COEFFS_CTRL _IOW(AUDIOIO_IOC_MAGIC, 21, \
- struct audioio_fir_coefficients_t)
-#define AUDIOIO_LOOP_GAIN_DESC_TRNSDR _IOR(AUDIOIO_IOC_MAGIC, 22,\
- struct audioio_gain_desc_trnsdr_t)
-#define AUDIOIO_CLK_SELECT_CTRL _IOR(AUDIOIO_IOC_MAGIC, 23,\
- struct audioio_clk_select_t)
-/* audio codec channel ids */
-#define EAR_CH 0
-#define HS_CH 1
-#define IHF_CH 2
-#define VIBL_CH 3
-#define VIBR_CH 4
-#define MIC1A_CH 5
-#define MIC1B_CH 6
-#define MIC2_CH 7
-#define LIN_CH 8
-#define DMIC12_CH 9
-#define DMIC34_CH 10
-#define DMIC56_CH 11
-#define MULTI_MIC_CH 12
-#define FMRX_CH 13
-#define FMTX_CH 14
-#define BLUETOOTH_CH 15
-
-#define FIRST_CH EAR_CH
-#define LAST_CH BLUETOOTH_CH
-
-#define MAX_NO_TRANSDUCERS 16
-#define STE_AUDIOIO_MAX_COEFFICIENTS 128
-#define MAX_NO_OF_LOOPS 19
-
-#define AUDIOIO_TRUE 1
-#define AUDIOIO_FALSE 0
-
-enum AUDIOIO_CLK_TYPE {
- AUDIOIO_ULP_CLK,
- AUDIOIO_SYS_CLK
-};
-
-enum AUDIOIO_COMMON_SWITCH {
- AUDIOIO_COMMON_OFF = 0,
- AUDIOIO_COMMON_ON,
- AUDIOIO_COMMON_ALLCHANNEL_UNSUPPORTED = 0xFFFF
-};
-
-enum AUDIOIO_HAL_HW_LOOPS {
- AUDIOIO_NO_LOOP = 0x0,
- AUDIOIO_SIDETONE_LOOP = 0x01,
- AUDIOIO_MIC1B_TO_HFL = 0x02,
- AUDIOIO_MIC1B_TO_HFR = 0x04,
- AUDIOIO_MIC1B_TO_EAR = 0x08,
- AUDIOIO_MIC1A_TO_HSL = 0x10,
- AUDIOIO_MIC1A_TO_HSR = 0x20,
- AUDIOIO_MIC1A_TO_HSR_HSL = 0x40,
- AUDIOIO_LINEIN_TO_HF = 0x80,
- AUDIOIO_DMIC12_TO_HSR_HSL = 0x100,
- AUDIOIO_DIC34_TO_HSR_HSL = 0x200,
- AUDIOIO_DIC56_TO_HSR_HSL = 0x400,
- AUDIOIO_DMIC12_TO_ST = 0x800,
- AUDIOIO_DMIC34_TO_ST = 0x1000,
- AUDIOIO_DMIC56_TO_ST = 0x2000,
- AUDIOIO_ANC_LOOP = 0x4000,
- AUDIOIO_LININ_HS = 0x8000,
- AUDIOIO_LININL_HSL = 0x10000,
- AUDIOIO_LININ_HSR = 0x20000
-};
-
-
-enum AUDIOIO_FADE_PERIOD {
- e_FADE_00,
- e_FADE_01,
- e_FADE_10,
- e_FADE_11
-};
-
-enum AUDIOIO_CH_INDEX {
- e_CHANNEL_1 = 0x01,
- e_CHANNEL_2 = 0x02,
- e_CHANNEL_3 = 0x04,
- e_CHANNEL_4 = 0x08,
- e_CHANNEL_ALL = 0x0f
-};
-
-struct audioio_data_t {
- unsigned char block;
- unsigned char addr;
- unsigned char data;
-};
-
-struct audioio_pwr_ctrl_t {
- enum AUDIOIO_COMMON_SWITCH ctrl_switch;
- int channel_type;
- enum AUDIOIO_CH_INDEX channel_index;
-};
-
-struct audioio_acodec_pwr_ctrl_t {
- enum AUDIOIO_COMMON_SWITCH ctrl_switch;
-};
-
-struct audioio_loop_ctrl_t {
- enum AUDIOIO_HAL_HW_LOOPS hw_loop;
- enum AUDIOIO_COMMON_SWITCH ctrl_switch;
- int channel_type;
- enum AUDIOIO_CH_INDEX channel_index;
- int loop_gain;
-};
-
-struct audioio_get_gain_t {
- unsigned int num_channels;
- unsigned short max_num_gain;
-};
-
-struct audioio_gain_loop_t {
- int channel_type;
- unsigned short num_loop;
- unsigned short max_gains;
-};
-
-struct audioio_support_loop_t {
- int channel_type;
- unsigned short spprtd_loop_index;
-};
-
-struct audioio_gain_desc_trnsdr_t {
- enum AUDIOIO_CH_INDEX channel_index;
- int channel_type;
- unsigned short gain_index;
- int min_gain;
- int max_gain;
- unsigned int gain_step;
-};
-
-struct audioio_gain_ctrl_trnsdr_t {
- enum AUDIOIO_CH_INDEX channel_index;
- int channel_type;
- unsigned short gain_index;
- int gain_value;
- unsigned int linear;
-};
-
-struct audioio_mute_trnsdr_t {
- int channel_type;
- enum AUDIOIO_CH_INDEX channel_index;
- enum AUDIOIO_COMMON_SWITCH ctrl_switch;
-};
-
-struct audioio_fade_ctrl_t {
- enum AUDIOIO_COMMON_SWITCH ctrl_switch;
- enum AUDIOIO_FADE_PERIOD fade_period;
- int channel_type;
- enum AUDIOIO_CH_INDEX channel_index;
-};
-
-struct audioio_burst_ctrl_t {
- enum AUDIOIO_COMMON_SWITCH ctrl_switch;
- int channel_type;
- int burst_fifo_interrupt_sample_count;
- int burst_fifo_length;/* BFIFOTx */
- int burst_fifo_switch_frame;
- int burst_fifo_sample_number;
-};
-
-struct audioio_read_all_acodec_reg_ctrl_t {
- unsigned char data[200];
-};
-
-struct audioio_fsbitclk_ctrl_t {
- enum AUDIOIO_COMMON_SWITCH ctrl_switch;
-};
-
-struct audioio_pseudoburst_ctrl_t {
- enum AUDIOIO_COMMON_SWITCH ctrl_switch;
-};
-
-struct audioio_fir_coefficients_t {
- unsigned char start_addr;
- unsigned short coefficients[STE_AUDIOIO_MAX_COEFFICIENTS];
-};
-
-struct audioio_clk_select_t {
- enum AUDIOIO_CLK_TYPE required_clk;
-};
-#endif
diff --git a/arch/arm/mach-ux500/include/mach/ste_audio_io_vibrator.h b/arch/arm/mach-ux500/include/mach/ste_audio_io_vibrator.h
deleted file mode 100644
index 6b6a558e90a..00000000000
--- a/arch/arm/mach-ux500/include/mach/ste_audio_io_vibrator.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-* Overview:
-* Header File defining vibrator kernel space interface
-*
-* Copyright (C) 2010 ST Ericsson
-*
-* 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.
-*/
-
-#ifndef _STE_AUDIO_IO_VIBRATOR_H_
-#define _STE_AUDIO_IO_VIBRATOR_H_
-
-/* Client definitions which can use vibrator, defined as bitmask */
-#define STE_AUDIOIO_CLIENT_AUDIO_L 1
-#define STE_AUDIOIO_CLIENT_AUDIO_R 2
-#define STE_AUDIOIO_CLIENT_FF_VIBRA 4
-#define STE_AUDIOIO_CLIENT_TIMED_VIBRA 8
-
-/*
- * Define vibrator's maximum speed allowed
- * Duty cycle supported by vibrator's PWM is 0-100
- */
-#define STE_AUDIOIO_VIBRATOR_MAX_SPEED 100
-
-/* Vibrator speed structure */
-struct ste_vibra_speed {
- unsigned char positive;
- unsigned char negative;
-};
-
-/* Vibrator control function - uses PWM source */
-int ste_audioio_vibrator_pwm_control(int client,
- struct ste_vibra_speed left_speed, struct ste_vibra_speed right_speed);
-
-#endif
diff --git a/arch/arm/mach-ux500/include/mach/u8500_acodec_ab8500.h b/arch/arm/mach-ux500/include/mach/u8500_acodec_ab8500.h
deleted file mode 100644
index 0575bbdb730..00000000000
--- a/arch/arm/mach-ux500/include/mach/u8500_acodec_ab8500.h
+++ /dev/null
@@ -1,284 +0,0 @@
-/* Header file for u8500 audiocodec specific data structures, enums
- * and private & public functions.
- * Author: Deepak Karda
- * Copyright (C) 2009 ST-Ericsson Pvt. Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#ifndef _U8500_ACODEC_AB8500_H_
-#define _U8500_ACODEC_AB8500_H_
-
-#include <mach/ab8500.h>
-#include <linux/i2s/i2s.h>
-
-#ifdef CONFIG_U8500_AB8500_CUT10
-#include <mach/ab8500_codec_v1_0.h>
-//#include <mach/ab8500_codec_p_v1_0.h>
-#else /*CONFIG_U8500_4500_ED */
-#include <mach/ab8500_codec.h>
-#include <mach/ab8500_codec_p.h>
-#endif
-
-#define NUMBER_OUTPUT_DEVICE 5
-#define NUMBER_INPUT_DEVICE 13
-#define NUMBER_LOOPBACK_STATE 2
-#define NUMBER_SWITCH_STATE 2
-#define NUMBER_POWER_STATE 2
-#define NUMBER_TDM_MODE_STATE 2
-#define NUMBER_DIRECT_RENDERING_STATE 2
-#define NUMBER_PCM_RENDERING_STATE 3
-
-#define CODEC_MUTE 0x20
-#define DEFAULT_VOLUME 0x64
-#define DEFAULT_GAIN 0x32
-#define VOL_MAX 0x64
-#define VOL_MIN 0x00
-#define DEFAULT_OUTPUT_DEVICE AB8500_CODEC_DEST_HEADSET
-#define DEFAULT_INPUT_DEVICE AB8500_CODEC_SRC_D_MICROPHONE_1
-#define DEFAULT_LOOPBACK_STATE DISABLE
-#define DEFAULT_SWITCH_STATE DISABLE
-#define DEFAULT_TDM8_CH_MODE_STATE DISABLE
-#define DEFAULT_DIRECT_RENDERING_STATE DISABLE
-#define DEFAULT_BURST_FIFO_STATE RENDERING_DISABLE
-#define DEFAULT_FM_PLAYBACK_STATE RENDERING_DISABLE
-#define DEFAULT_FM_TX_STATE RENDERING_DISABLE
-
-#define MIN_RATE_PLAYBACK 48000
-#define MAX_RATE_PLAYBACK 48000
-#define MIN_RATE_CAPTURE 48000
-#define MAX_RATE_CAPTURE 48000
-#define MAX_NO_OF_RATES 1
-
-#define ALSA_MSP_BT_NUM 0
-#define ALSA_MSP_PCM_NUM 1
-#define ALSA_MSP_HDMI_NUM 2
-
-#define I2S_CLIENT_MSP0 0
-#define I2S_CLIENT_MSP1 1
-#define I2S_CLIENT_MSP2 2
-
-typedef enum {
- DISABLE,
- ENABLE
-} t_u8500_bool_state;
-
-typedef enum {
- RENDERING_DISABLE,
- RENDERING_ENABLE,
- RENDERING_PENDING
-} t_u8500_pmc_rendering_state;
-
-typedef enum {
- ACODEC_CONFIG_REQUIRED,
- ACODEC_CONFIG_NOT_REQUIRED
-} t_u8500_acodec_config_need;
-
-typedef enum {
- CLASSICAL_MODE,
- TDM_8_CH_MODE
-} t_u8500_mode;
-
-typedef struct {
- unsigned int left_volume;
- unsigned int right_volume;
- unsigned int mute_state;
- t_u8500_bool_state power_state;
-} u8500_io_dev_config_t;
-
-typedef enum {
- NO_USER = 0,
- USER_ALSA = 2, /*To make it equivalent to user id for MSP */
- USER_SAA,
-} t_acodec_user;
-
-typedef struct {
- u8500_io_dev_config_t output_config[NUMBER_OUTPUT_DEVICE];
- u8500_io_dev_config_t input_config[NUMBER_INPUT_DEVICE];
- //t_acodec_user user;
- t_acodec_user cur_user;
-} t_u8500_codec_system_context;
-
-typedef enum {
- T_CODEC_SAMPLING_FREQ_48KHZ = 48,
-} acodec_sample_frequency;
-
-struct acodec_configuration {
- t_ab8500_codec_direction direction;
- acodec_sample_frequency input_frequency;
- acodec_sample_frequency output_frequency;
- codec_msp_srg_clock_sel_type mspClockSel;
- codec_msp_in_clock_freq_type mspInClockFreq;
- u32 channels;
- t_acodec_user user;
- t_u8500_acodec_config_need acodec_config_need;
- t_u8500_bool_state direct_rendering_mode;
- t_u8500_bool_state tdm8_ch_mode;
- t_u8500_bool_state digital_loopback;
- void (*handler) (void *data);
- void *tx_callback_data;
- void *rx_callback_data;
-};
-
-typedef enum {
- ACODEC_DISABLE_ALL,
- ACODEC_DISABLE_TRANSMIT,
- ACODEC_DISABLE_RECEIVE,
-} t_acodec_disable;
-
-struct i2sdrv_data {
- struct i2s_device *i2s;
- spinlock_t i2s_lock;
- /* buffer is NULL unless this device is open (users > 0) */
- int flag;
- u32 tx_status;
- u32 rx_status;
-};
-
-#define MAX_I2S_CLIENTS 3 //0=BT, 1=ACODEC, 2=HDMI
-
-/*extern t_ab8500_codec_error u8500_acodec_set_volume(int input_vol_left,
- int input_vol_right,
- int output_vol_left,
- int output_vol_right, t_acodec_user user);*/
-
-extern t_ab8500_codec_error u8500_acodec_open(int client_id, int stream_id);
-//extern t_ab8500_codec_error u8500_acodec_pause_transfer(void);
-//extern t_ab8500_codec_error u8500_acodec_unpause_transfer(void);
-extern t_ab8500_codec_error u8500_acodec_send_data(int client_id, void *data,
- size_t bytes, int dma_flag);
-extern t_ab8500_codec_error u8500_acodec_receive_data(int client_id, void *data,
- size_t bytes,
- int dma_flag);
-extern t_ab8500_codec_error u8500_acodec_close(int client_id,
- t_acodec_disable flag);
-extern t_ab8500_codec_error u8500_acodec_tx_rx_data(int client_id,
- void *tx_data,
- size_t tx_bytes,
- void *rx_data,
- size_t rx_bytes,
- int dma_flag);
-
-extern 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);
-
-extern 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);
-
-extern 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);
-
-extern 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);
-
-extern t_ab8500_codec_error u8500_acodec_toggle_analog_lpbk(t_u8500_bool_state
- lpbk_state,
- t_acodec_user user);
-
-extern 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);
-
-extern 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);
-extern 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);
-
-extern t_ab8500_codec_error u8500_acodec_enable_audio_mode(struct
- acodec_configuration
- *acodec_config);
-/*extern t_ab8500_codec_error u8500_acodec_enable_voice_mode(struct acodec_configuration *acodec_config);*/
-
-extern t_ab8500_codec_error u8500_acodec_select_input(t_ab8500_codec_src
- input_device,
- t_acodec_user user,
- t_u8500_mode mode);
-extern t_ab8500_codec_error u8500_acodec_select_output(t_ab8500_codec_dest
- output_device,
- t_acodec_user user,
- t_u8500_mode mode);
-
-extern t_ab8500_codec_error u8500_acodec_allocate_ad_slot(t_ab8500_codec_src
- input_device,
- t_u8500_mode mode);
-extern t_ab8500_codec_error u8500_acodec_unallocate_ad_slot(t_ab8500_codec_src
- input_device,
- t_u8500_mode mode);
-extern t_ab8500_codec_error u8500_acodec_allocate_da_slot(t_ab8500_codec_dest
- output_device,
- t_u8500_mode mode);
-extern t_ab8500_codec_error u8500_acodec_unallocate_da_slot(t_ab8500_codec_dest
- output_device,
- t_u8500_mode mode);
-
-extern t_ab8500_codec_error u8500_acodec_set_src_power_cntrl(t_ab8500_codec_src
- input_device,
- t_u8500_bool_state
- pwr_state);
-extern t_ab8500_codec_error
-u8500_acodec_set_dest_power_cntrl(t_ab8500_codec_dest output_device,
- t_u8500_bool_state pwr_state);
-
-extern t_u8500_bool_state u8500_acodec_get_src_power_state(t_ab8500_codec_src
- input_device);
-extern t_u8500_bool_state u8500_acodec_get_dest_power_state(t_ab8500_codec_dest
- output_device);
-extern t_ab8500_codec_error
-u8500_acodec_set_burst_mode_fifo(t_u8500_pmc_rendering_state fifo_state);
-
-extern t_ab8500_codec_error u8500_acodec_unsetuser(t_acodec_user user);
-extern t_ab8500_codec_error u8500_acodec_setuser(t_acodec_user user);
-
-extern void codec_power_init(void);
-extern void u8500_acodec_powerdown(void);
-
-//t_ab8500_codec_error acodec_msp_enable(t_touareg_codec_sample_frequency freq,int channels, t_acodec_user user);
-
-#define TRG_CODEC_ADDRESS_ON_SPI_BUS (0x0D)
-
-extern int ab8500_write(u8 block, u32 adr, u8 data);
-extern int ab8500_read(u8 block, u32 adr);
-
-#if 0
-#define FUNC_ENTER() printk("\n -Enter : %s",__FUNCTION__)
-#define FUNC_EXIT() printk("\n -Exit : %s",__FUNCTION__)
-#else
-#define FUNC_ENTER()
-#define FUNC_EXIT()
-#endif
-#endif /*END OF HEADSER FILE */
diff --git a/drivers/misc/audio_io_dev/Kconfig b/drivers/misc/audio_io_dev/Kconfig
deleted file mode 100644
index 57bb77172f7..00000000000
--- a/drivers/misc/audio_io_dev/Kconfig
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# AB8500 Audio IO Device Driver configuration
-#
-config STE_AUDIO_IO_DEV
- bool "AB8500 Audio IO device driver"
- depends on ARCH_U8500 && AB8500_CORE && STM_MSP_I2S
- default y
- ---help---
- If you say Y here, you will enable the AB8500 Audio IO device driver.
-
- If unsure, say N.
diff --git a/drivers/misc/audio_io_dev/Makefile b/drivers/misc/audio_io_dev/Makefile
deleted file mode 100644
index 44b21fcc573..00000000000
--- a/drivers/misc/audio_io_dev/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# Makefile for AB8500 device drivers
-#
-obj-$(CONFIG_STE_AUDIO_IO_DEV) += ste_audio_io.o
-ste_audio_io-objs := ste_audio_io_dev.o\
- ste_audio_io_core.o\
- ste_audio_io_func.o\
- ste_audio_io_hwctrl_common.o
-
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_ab8500_reg_defs.h b/drivers/misc/audio_io_dev/ste_audio_io_ab8500_reg_defs.h
deleted file mode 100644
index 1436430f7de..00000000000
--- a/drivers/misc/audio_io_dev/ste_audio_io_ab8500_reg_defs.h
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-
-#ifndef _AUDIOIO_REG_DEFS_H_
-#define _AUDIOIO_REG_DEFS_H_
-
-
- /* Registers */
-#define POWER_UP_CONTROL_REG 0x0D00
-#define SOFTWARE_RESET_REG 0x0D01
-#define DIGITAL_AD_CHANNELS_ENABLE_REG 0x0D02
-#define DIGITAL_DA_CHANNELS_ENABLE_REG 0x0D03
-#define LOW_POWER_HS_EAR_CONF_REG 0x0D04
-#define LINE_IN_MIC_CONF_REG 0x0D05
-#define DMIC_ENABLE_REG 0x0D06
-#define ADC_DAC_ENABLE_REG 0x0D07
-#define ANALOG_OUTPUT_ENABLE_REG 0x0D08
-#define DIGITAL_OUTPUT_ENABLE_REG 0x0D09
-#define MUTE_HS_EAR_REG 0x0D0A
-#define SHORT_CIRCUIT_DISABLE_REG 0x0D0B
-#define NCP_ENABLE_HS_AUTOSTART_REG 0x0D0C
-#define ENVELOPE_THRESHOLD_REG 0x0D0D
-#define ENVELOPE_DECAY_TIME_REG 0x0D0E
-#define VIB_DRIVER_CONF_REG 0x0D0F
-#define PWM_VIBNL_CONF_REG 0x0D10
-#define PWM_VIBPL_CONF_REG 0x0D11
-#define PWM_VIBNR_CONF_REG 0x0D12
-#define PWM_VIBPR_CONF_REG 0x0D13
-#define ANALOG_MIC1_GAIN_REG 0x0D14
-#define ANALOG_MIC2_GAIN_REG 0x0D15
-#define ANALOG_HS_GAIN_REG 0x0D16
-#define ANALOG_LINE_IN_GAIN_REG 0x0D17
-#define LINE_IN_TO_HSL_GAIN_REG 0x0D18
-#define LINE_IN_TO_HSR_GAIN_REG 0x0D19
-#define AD_FILTER_CONF_REG 0x0D1A
-#define IF0_IF1_MASTER_CONF_REG 0x0D1B
-#define IF0_CONF_REG 0x0D1C
-#define TDM_IF_BYPASS_B_FIFO_REG 0x0D1D
-#define IF1_CONF_REG 0x0D1E
-#define AD_ALLOCATION_TO_SLOT0_1_REG 0x0D1F
-#define AD_ALLOCATION_TO_SLOT2_3_REG 0x0D20
-#define AD_ALLOCATION_TO_SLOT4_5_REG 0x0D21
-#define AD_ALLOCATION_TO_SLOT6_7_REG 0x0D22
-#define AD_ALLOCATION_TO_SLOT8_9_REG 0x0D23
-#define AD_ALLOCATION_TO_SLOT10_11_REG 0x0D24
-#define AD_ALLOCATION_TO_SLOT12_13_REG 0x0D25
-#define AD_ALLOCATION_TO_SLOT14_15_REG 0x0D26
-#define AD_ALLOCATION_TO_SLOT16_17_REG 0x0D27
-#define AD_ALLOCATION_TO_SLOT18_19_REG 0x0D28
-#define AD_ALLOCATION_TO_SLOT20_21_REG 0x0D29
-#define AD_ALLOCATION_TO_SLOT22_23_REG 0x0D2A
-#define AD_ALLOCATION_TO_SLOT24_25_REG 0x0D2B
-#define AD_ALLOCATION_TO_SLOT26_27_REG 0x0D2C
-#define AD_ALLOCATION_TO_SLOT28_29_REG 0x0D2D
-#define AD_ALLOCATION_TO_SLOT30_31_REG 0x0D2E
-#define AD_SLOT_0_TO_7_TRISTATE_REG 0x0D2F
-#define AD_SLOT_8_TO_15_TRISTATE_REG 0x0D30
-#define AD_SLOT_16_TO_23_TRISTATE_REG 0x0D31
-#define AD_SLOT_24_TO_31_TRISTATE_REG 0x0D32
-#define SLOT_SELECTION_TO_DA1_REG 0x0D33
-#define SLOT_SELECTION_TO_DA2_REG 0x0D34
-#define SLOT_SELECTION_TO_DA3_REG 0x0D35
-#define SLOT_SELECTION_TO_DA4_REG 0x0D36
-#define SLOT_SELECTION_TO_DA5_REG 0x0D37
-#define SLOT_SELECTION_TO_DA6_REG 0x0D38
-#define SLOT_SELECTION_TO_DA7_REG 0x0D39
-#define SLOT_SELECTION_TO_DA8_REG 0x0D3A
-#define CLASS_D_EMI_PARALLEL_CONF_REG 0x0D3B
-#define CLASS_D_PATH_CONTROL_REG 0x0D3C
-#define CLASS_D_DITHER_CONTROL_REG 0x0D3D
-#define DMIC_DECIMATOR_FILTER_REG 0x0D3E
-#define DIGITAL_MUXES_REG1 0x0D3F
-#define DIGITAL_MUXES_REG2 0x0D40
-#define AD1_DIGITAL_GAIN_REG 0x0D41
-#define AD2_DIGITAL_GAIN_REG 0x0D42
-#define AD3_DIGITAL_GAIN_REG 0x0D43
-#define AD4_DIGITAL_GAIN_REG 0x0D44
-#define AD5_DIGITAL_GAIN_REG 0x0D45
-#define AD6_DIGITAL_GAIN_REG 0x0D46
-#define DA1_DIGITAL_GAIN_REG 0x0D47
-#define DA2_DIGITAL_GAIN_REG 0x0D48
-#define DA3_DIGITAL_GAIN_REG 0x0D49
-#define DA4_DIGITAL_GAIN_REG 0x0D4A
-#define DA5_DIGITAL_GAIN_REG 0x0D4B
-#define DA6_DIGITAL_GAIN_REG 0x0D4C
-#define AD1_TO_HFL_DIGITAL_GAIN_REG 0x0D4D
-#define AD2_TO_HFR_DIGITAL_GAIN_REG 0x0D4E
-#define HSL_EAR_DIGITAL_GAIN_REG 0x0D4F
-#define HSR_DIGITAL_GAIN_REG 0x0D50
-#define SIDETONE_FIR1_GAIN_REG 0x0D51
-#define SIDETONE_FIR2_GAIN_REG 0x0D52
-#define ANC_FILTER_CONTROL_REG 0x0D53
-#define ANC_WARPED_GAIN_REG 0x0D54
-#define ANC_FIR_OUTPUT_GAIN_REG 0x0D55
-#define ANC_IIR_OUTPUT_GAIN_REG 0x0D56
-#define ANC_FIR_COEFF_MSB_REG 0x0D57
-#define ANC_FIR_COEFF_LSB_REG 0x0D58
-#define ANC_IIR_COEFF_MSB_REG 0x0D59
-#define ANC_IIR_COEFF_LSB_REG 0x0D5A
-#define ANC_WARP_DELAY_MSB_REG 0x0D5B
-#define ANC_WARP_DELAY_LSB_REG 0x0D5C
-#define ANC_FIR_PEAK_MSB_REG 0x0D5D
-#define ANC_FIR_PEAK_LSB_REG 0x0D5E
-#define ANC_IIR_PEAK_MSB_REG 0x0D5F
-#define ANC_IIR_PEAK_LSB_REG 0x0D60
-#define SIDETONE_FIR_ADDR_REG 0x0D61
-#define SIDETONE_FIR_COEFF_MSB_REG 0x0D62
-#define SIDETONE_FIR_COEFF_LSB_REG 0x0D63
-#define FILTERS_CONTROL_REG 0x0D64
-#define IRQ_MASK_LSB_REG 0x0D65
-#define IRQ_STATUS_LSB_REG 0x0D66
-#define IRQ_MASK_MSB_REG 0x0D67
-#define IRQ_STATUS_MSB_REG 0x0D68
-#define BURST_FIFO_INT_CONTROL_REG 0x0D69
-#define BURST_FIFO_LENGTH_REG 0x0D6A
-#define BURST_FIFO_CONTROL_REG 0x0D6B
-#define BURST_FIFO_SWITCH_FRAME_REG 0x0D6C
-#define BURST_FIFO_WAKE_UP_DELAY_REG 0x0D6D
-#define BURST_FIFO_SAMPLES_REG 0x0D6E
-#define REVISION_REG 0x0D6F
-
-/* POWER_UP_CONTROL_REG Masks */
-#define DEVICE_POWER_UP 0x80
-#define ANALOG_PARTS_POWER_UP 0x08
-
-/* SOFTWARE_RESET_REG Masks */
-#define SW_RESET 0x80
-
-/* DIGITAL_AD_CHANNELS_ENABLE_REG Masks */
-#define EN_AD1 0x80
-#define EN_AD2 0x80
-#define EN_AD3 0x20
-#define EN_AD4 0x20
-#define EN_AD5 0x08
-#define EN_AD6 0x04
-
-/* DIGITAL_DA_CHANNELS_ENABLE_REG Masks */
-#define EN_DA1 0x80
-#define EN_DA2 0x40
-#define EN_DA3 0x20
-#define EN_DA4 0x10
-#define EN_DA5 0x08
-#define EN_DA6 0x04
-
-/* LOW_POWER_HS_EAR_CONF_REG Masks */
-#define LOW_POWER_HS 0x80
-#define HS_DAC_DRIVER_LP 0x40
-#define HS_DAC_LP 0x20
-#define EAR_DAC_LP 0x10
-
-/* LINE_IN_MIC_CONF_REG Masks */
-#define EN_MIC1 0x80
-#define EN_MIC2 0x40
-#define EN_LIN_IN_L 0x20
-#define EN_LIN_IN_R 0x10
-#define MUT_MIC1 0x08
-#define MUT_MIC2 0x04
-#define MUT_LIN_IN_L 0x02
-#define MUT_LIN_IN_R 0x01
-
-/* DMIC_ENABLE_REG Masks */
-#define EN_DMIC1 0x80
-#define EN_DMIC2 0x40
-#define EN_DMIC3 0x20
-#define EN_DMIC4 0x10
-#define EN_DMIC5 0x08
-#define EN_DMIC6 0x04
-
-/* ADC_DAC_ENABLE_REG Masks */
-#define SEL_MIC1B_CLR_MIC1A 0x80
-#define SEL_LINR_CLR_MIC2 0x40
-#define POWER_UP_HSL_DAC 0x20
-#define POWER_UP_HSR_DAC 0x10
-#define POWER_UP_ADC1 0x04
-#define POWER_UP_ADC3 0x02
-#define POWER_UP_ADC2 0x01
-
-/* ANALOG_OUTPUT_ENABLE_REG and DIGITAL_OUTPUT_ENABLE_REG and
- MUTE_HS_EAR_REG Masks */
-#define EN_EAR_DAC_MASK 0x04
-#define EN_HSL_DAC_MASK 0x02
-#define EN_HSR_DAC_MASK 0x01
-#define EN_EAR_MASK 0x40
-#define EN_HSL_MASK 0x20
-#define EN_HSR_MASK 0x10
-#define EN_HFL_MASK 0x08
-#define EN_HFR_MASK 0x04
-#define EN_VIBL_MASK 0x02
-#define EN_VIBR_MASK 0x01
-
-/* SHORT_CIRCUIT_DISABLE_REG Masks */
-#define HS_SHORT_DIS 0x20
-#define HS_PULL_DOWN_EN 0x10
-#define HS_OSC_EN 0x04
-#define DIS_HS_FAD 0x02
-#define HS_ZCD_DIS 0x01
-
-/* NCP_ENABLE_HS_AUTOSTART_REG Masks */
-#define EN_NEG_CP 0x80
-#define HS_AUTO_EN 0x01
-
-/* ANALOG_MIC1_GAIN_REG and ANALOG_MIC1_GAIN_REG Masks */
-#define MIC_ANALOG_GAIN_MASK 0x1F
-
-/*ANALOG_HS_GAIN_REG and ANALOG_LINE_IN_GAIN_REG Masks*/
-#define L_ANALOG_GAIN_MASK 0xF0
-#define R_ANALOG_GAIN_MASK 0x0F
-
-/* IF0_IF1_MASTER_CONF_REG Masks */
-#define EN_MASTGEN 0x80
-#define BITCLK_OSR_N_64 0x02
-#define BITCLK_OSR_N_128 0x04
-#define BITCLK_OSR_N_256 0x06
-#define EN_FSYNC_BITCLK 0x01
-#define EN_FSYNC_BITCLK1 0x10
-
-/* IF0_CONF_REG and IF1_CONF_REG Masks */
-#define FSYNC_FALLING_EDGE 0x40
-#define BITCLK_FALLING_EDGE 0x20
-#define IF_DELAYED 0x10
-#define I2S_LEFT_ALIGNED_FORMAT 0x08
-#define TDM_FORMAT 0x04
-#define WORD_LENGTH_32 0x03
-#define WORD_LENGTH_24 0x02
-#define WORD_LENGTH_20 0x01
-#define WORD_LENGTH_16 0x00
-
-/* TDM_IF_BYPASS_B_FIFO_REG Masks */
-#define IF0_BFifoEn 0x01
-#define IF0_MASTER 0x02
-
-#define IF1_MASTER 0x20
-/*
- * AD_ALLOCATION_TO_SLOT0_1_REG and AD_ALLOCATION_TO_SLOT2_3_REG and
- * AD_ALLOCATION_TO_SLOT4_5_REG and AD_ALLOCATION_TO_SLOT6_7_REG Masks
- */
-#define DATA_FROM_AD_OUT1 0x00
-#define DATA_FROM_AD_OUT2 0x01
-#define DATA_FROM_AD_OUT3 0x02
-#define DATA_FROM_AD_OUT4 0x03
-#define DATA_FROM_AD_OUT5 0x04
-#define DATA_FROM_AD_OUT6 0x05
-#define DATA_FROM_AD_OUT7 0x06
-#define DATA_FROM_AD_OUT8 0x07
-#define TRISTATE 0x0C
-
-/*
- * SLOT_SELECTION_TO_DA1_REG and SLOT_SELECTION_TO_DA2_REG and
- * SLOT_SELECTION_TO_DA3_REG and SLOT_SELECTION_TO_DA4_REG Masks
- * SLOT_SELECTION_TO_DA5_REG and SLOT_SELECTION_TO_DA6_REG Masks
- */
-#define SLOT08_FOR_DA_PATH 0x08
-#define SLOT09_FOR_DA_PATH 0x09
-#define SLOT10_FOR_DA_PATH 0x0A
-#define SLOT11_FOR_DA_PATH 0x0B
-#define SLOT12_FOR_DA_PATH 0x0C
-#define SLOT13_FOR_DA_PATH 0x0D
-#define SLOT14_FOR_DA_PATH 0x0E
-#define SLOT15_FOR_DA_PATH 0x0F
-
-/* DIGITAL_MUXES_REG1 Masks */
-#define DA1_TO_HSL 0x80
-#define DA2_TO_HSR 0x40
-#define SEL_DMIC1_FOR_AD_OUT1 0x20
-#define SEL_DMIC2_FOR_AD_OUT2 0x10
-#define SEL_DMIC3_FOR_AD_OUT3 0x08
-/*#define SEL_DMIC5_FOR_AD_OUT5 0x04*/
-/*#define SEL_DMIC6_FOR_AD_OUT6 0x02*/
-/*#define SEL_DMIC1_FOR_AD_OUT1 0x01*/
-
-/*
- * AD1_DIGITAL_GAIN_REG and AD2_DIGITAL_GAIN_REG & AD3_DIGITAL_GAIN_REG Masks
- * AD4_DIGITAL_GAIN_REG and AD5_DIGITAL_GAIN_REG & AD6_DIGITAL_GAIN_REG Masks
- * DA1_DIGITAL_GAIN_REG and DA2_DIGITAL_GAIN_REG & DA3_DIGITAL_GAIN_REG Masks
- * DA4_DIGITAL_GAIN_REG and DA5_DIGITAL_GAIN_REG & DA6_DIGITAL_GAIN_REG Masks
- */
-#define DIS_FADING 0x40
-#define DIGITAL_GAIN_MASK 0x3F
-
-/*
- * HSL_EAR_DIGITAL_GAIN_REG and HSR_DIGITAL_GAIN_REG Masks
- */
-#define FADE_SPEED_MASK 0xC0
-#define DIS_DIG_GAIN_FADING 0x10
-#define HS_DIGITAL_GAIN_MASK 0x0F
-
-/* FMRx/FMTx Masks */
-#define SLOT24_FOR_DA_PATH 0x18
-#define SEL_AD_OUT8_FROM_DAIN7 0x20
-#define SLOT25_FOR_DA_PATH 0x19
-#define SEL_AD_OUT6_FROM_DAIN8 0x20
-#define SEL_IF8_FROM_AD_OUT7 0x60
-#define SEL_IF17_FROM_AD_OUT7 0x60
-#define SEL_IF16_FROM_AD_OUT8 0x07
-
-#define SEL_IF6_FROM_AD_OUT5 0x04
-#define SEL_IF7_FROM_AD_OUT6 0x50
-#define SEL_IF17_FROM_AD_OUT6 0x50
-#define SEL_AD_OUT5_FROM_DAIN7 0x20
-
-/* Burst FIFO Control Masks */
-#define WAKEUP_SIGNAL_SAMPLE_COUNT 0x1B
-#define BURST_FIFO_TRANSFER_LENGTH 0xC0
-#define BURST_FIFO_INF_RUNNING 0x01
-#define BURST_FIFO_INF_IN_MASTER_MODE 0x02
-#define PRE_BIT_CLK0_COUNT 0x1C
-#define BURST_FIFO_WAKUP_DEALAY 0x70
-
-/* Filter Control Masks */
-/* SideTone Masks */
-#define SIDETONE_DIGITAL_GAIN_MASK 0x1F
-#define FIR1_FROMAD1 0x0C
-#define FIR1_FROMAD2 0x03
-#define FIR1_FROMAD3 0x08
-#define FIR1_DAIN1 0x0C
-
-#define FIR2_FROMAD2 0x00
-#define FIR2_FROMAD3 0x01
-#define FIR2_FROMAD4 0x02
-#define FIR2_DAIN2 0x03
-
-#define FIR2_ANDFIR1AD3 0x09
-#define FIR_FILTERCONTROL 0x04
-#define APPLY_FIR_COEFFS_MASK 0x80
-
-/* IRQ status masks */
-#define NCP_READY_MASK 0x80
-
-/* AB8500 power control Masks */
-#define AB8500_VER_1_0 0x10
-#define AB8500_VER_1_1 0x11
-#define CLK_32K_OUT2_DISABLE 0x01
-#define INACTIVE_RESET_AUDIO 0x02
-#define AB8500_REQ_SYS_CLK 0x08
-#define ENABLE_AUDIO_CLK_TO_AUDIO_BLK 0x10
-#define ENABLE_VINTCORE12_SUPPLY 0x04
-#define VAMIC2_ENABLE 0x10
-#define VAMIC1_ENABLE 0x08
-#define VDMIC_ENABLE 0x04
-#define VAUDIO_ENABLE 0x02
-#define GPIO27_DIR_OUTPUT 0x04
-#define GPIO29_DIR_OUTPUT 0x10
-#define GPIO31_DIR_OUTPUT 0x40
-#define GPIO35_DIR_OUTPUT 0X04
-#endif
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_core.c b/drivers/misc/audio_io_dev/ste_audio_io_core.c
deleted file mode 100644
index 7f3636b9291..00000000000
--- a/drivers/misc/audio_io_dev/ste_audio_io_core.c
+++ /dev/null
@@ -1,1589 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/slab.h>
-#include <linux/regulator/consumer.h>
-#include <mach/ste_audio_io_vibrator.h>
-#include <mach/ste_audio.h>
-
-#include "ste_audio_io_core.h"
-#include "ste_audio_io_hwctrl_common.h"
-#include "ste_audio_io_ab8500_reg_defs.h"
-
-static struct audiocodec_context_t *ptr_audio_codec_cnxt;
-
-static struct clk *clk_ptr_msp1;
-static struct clk *clk_ptr_msp3;
-static struct clk *clk_ptr_audioclk;
-static struct clk *clk_ptr_sysclk;
-static struct clk *clk_ptr_ulpclk;
-
-static struct regulator *regulator_vdmic;
-static struct regulator *regulator_vaudio;
-static struct regulator *regulator_vamic1;
-static struct regulator *regulator_vamic2;
-struct regulator *regulator_avsource;
-
-static void ste_audio_io_init_transducer_cnxt(void);
-static int ste_audio_io_core_init_regulators(void);
-static int ste_audio_io_core_init_clocks(void);
-static int ste_audio_io_core_free_regulators(void);
-static int ste_audio_io_core_free_clocks(void);
-static int ste_audio_io_enable_audio_clock(void);
-static int ste_audio_io_disable_audio_clock(void);
-
-static struct transducer_context_t transducer_headset = {
- .pwr_up_func = ste_audio_io_power_up_headset,
- .pwr_down_func = ste_audio_io_power_down_headset,
- .set_gain_func = ste_audio_io_set_headset_gain,
- .get_gain_func = ste_audio_io_get_headset_gain,
- .mute_func = ste_audio_io_mute_headset,
- .unmute_func = ste_audio_io_unmute_headset,
- .enable_fade_func = ste_audio_io_enable_fade_headset,
- .disable_fade_func = ste_audio_io_disable_fade_headset,
- .switch_to_burst_func = ste_audio_io_switch_to_burst_mode_headset,
- .switch_to_normal_func = ste_audio_io_switch_to_normal_mode_headset
-};
-
-static struct transducer_context_t transducer_earpiece = {
- .pwr_up_func = ste_audio_io_power_up_earpiece,
- .pwr_down_func = ste_audio_io_power_down_earpiece,
- .set_gain_func = ste_audio_io_set_earpiece_gain,
- .get_gain_func = ste_audio_io_get_earpiece_gain,
- .mute_func = ste_audio_io_mute_earpiece,
- .unmute_func = ste_audio_io_unmute_earpiece,
- .enable_fade_func = ste_audio_io_enable_fade_earpiece,
- .disable_fade_func = ste_audio_io_disable_fade_earpiece
-};
-
-static struct transducer_context_t transducer_ihf = {
- .pwr_up_func = ste_audio_io_power_up_ihf,
- .pwr_down_func = ste_audio_io_power_down_ihf,
- .set_gain_func = ste_audio_io_set_ihf_gain,
- .get_gain_func = ste_audio_io_get_ihf_gain,
- .mute_func = ste_audio_io_mute_ihf,
- .unmute_func = ste_audio_io_unmute_ihf,
- .enable_fade_func = ste_audio_io_enable_fade_ihf,
- .disable_fade_func = ste_audio_io_disable_fade_ihf
-
-};
-
-static struct transducer_context_t transducer_vibl = {
- .pwr_up_func = ste_audio_io_power_up_vibl,
- .pwr_down_func = ste_audio_io_power_down_vibl,
- .set_gain_func = ste_audio_io_set_vibl_gain,
- .get_gain_func = ste_audio_io_get_vibl_gain,
- .mute_func = ste_audio_io_mute_vibl,
- .unmute_func = ste_audio_io_unmute_vibl,
- .enable_fade_func = ste_audio_io_enable_fade_vibl,
- .disable_fade_func = ste_audio_io_disable_fade_vibl
-};
-
-static struct transducer_context_t transducer_vibr = {
- .pwr_up_func = ste_audio_io_power_up_vibr,
- .pwr_down_func = ste_audio_io_power_down_vibr,
- .set_gain_func = ste_audio_io_set_vibr_gain,
- .get_gain_func = ste_audio_io_get_vibr_gain,
- .mute_func = ste_audio_io_mute_vibr,
- .unmute_func = ste_audio_io_unmute_vibr,
- .enable_fade_func = ste_audio_io_enable_fade_vibr,
- .disable_fade_func = ste_audio_io_disable_fade_vibr
-};
-
-static struct transducer_context_t transducer_mic1a = {
- .pwr_up_func = ste_audio_io_power_up_mic1a,
- .pwr_down_func = ste_audio_io_power_down_mic1a,
- .set_gain_func = ste_audio_io_set_mic1a_gain,
- .get_gain_func = ste_audio_io_get_mic1a_gain,
- .mute_func = ste_audio_io_mute_mic1a,
- .unmute_func = ste_audio_io_unmute_mic1a,
- .enable_fade_func = ste_audio_io_enable_fade_mic1a,
- .disable_fade_func = ste_audio_io_disable_fade_mic1a
-};
-
-static struct transducer_context_t transducer_mic1b = {
- .pwr_up_func = ste_audio_io_power_up_mic1b,
- .pwr_down_func = ste_audio_io_power_down_mic1b,
- .set_gain_func = ste_audio_io_set_mic1a_gain,
- .get_gain_func = ste_audio_io_get_mic1a_gain,
- .mute_func = ste_audio_io_mute_mic1a,
- .unmute_func = ste_audio_io_unmute_mic1a,
- .enable_fade_func = ste_audio_io_enable_fade_mic1a,
- .disable_fade_func = ste_audio_io_disable_fade_mic1a,
- .enable_loop = ste_audio_io_enable_loop_mic1b,
- .disable_loop = ste_audio_io_disable_loop_mic1b
-};
-
-static struct transducer_context_t transducer_mic2 = {
- .pwr_up_func = ste_audio_io_power_up_mic2,
- .pwr_down_func = ste_audio_io_power_down_mic2,
- .set_gain_func = ste_audio_io_set_mic2_gain,
- .get_gain_func = ste_audio_io_get_mic2_gain,
- .mute_func = ste_audio_io_mute_mic2,
- .unmute_func = ste_audio_io_unmute_mic2,
- .enable_fade_func = ste_audio_io_enable_fade_mic2,
- .disable_fade_func = ste_audio_io_disable_fade_mic2
-};
-
-static struct transducer_context_t transducer_lin = {
- .pwr_up_func = ste_audio_io_power_up_lin,
- .pwr_down_func = ste_audio_io_power_down_lin,
- .set_gain_func = ste_audio_io_set_lin_gain,
- .get_gain_func = ste_audio_io_get_lin_gain,
- .mute_func = ste_audio_io_mute_lin,
- .unmute_func = ste_audio_io_unmute_lin,
- .enable_fade_func = ste_audio_io_enable_fade_lin,
- .disable_fade_func = ste_audio_io_disable_fade_lin
-};
-
-static struct transducer_context_t transducer_dmic12 = {
- .pwr_up_func = ste_audio_io_power_up_dmic12,
- .pwr_down_func = ste_audio_io_power_down_dmic12,
- .set_gain_func = ste_audio_io_set_dmic12_gain,
- .get_gain_func = ste_audio_io_get_dmic12_gain,
- .mute_func = ste_audio_io_mute_dmic12,
- .unmute_func = ste_audio_io_unmute_dmic12,
- .enable_fade_func = ste_audio_io_enable_fade_dmic12,
- .disable_fade_func = ste_audio_io_disable_fade_dmic12,
- .enable_loop = ste_audio_io_enable_loop_dmic12,
- .disable_loop = ste_audio_io_disable_loop_dmic12
-};
-
-static struct transducer_context_t transducer_dmic34 = {
- .pwr_up_func = ste_audio_io_power_up_dmic34,
- .pwr_down_func = ste_audio_io_power_down_dmic34,
- .set_gain_func = ste_audio_io_set_dmic34_gain,
- .get_gain_func = ste_audio_io_get_dmic34_gain,
- .mute_func = ste_audio_io_mute_dmic34,
- .unmute_func = ste_audio_io_unmute_dmic34,
- .enable_fade_func = ste_audio_io_enable_fade_dmic34,
- .disable_fade_func = ste_audio_io_disable_fade_dmic34
-};
-
-static struct transducer_context_t transducer_dmic56 = {
- .pwr_up_func = ste_audio_io_power_up_dmic56,
- .pwr_down_func = ste_audio_io_power_down_dmic56,
- .set_gain_func = ste_audio_io_set_dmic56_gain,
- .get_gain_func = ste_audio_io_get_dmic56_gain,
- .mute_func = ste_audio_io_mute_dmic56,
- .unmute_func = ste_audio_io_unmute_dmic56,
- .enable_fade_func = ste_audio_io_enable_fade_dmic56,
- .disable_fade_func = ste_audio_io_disable_fade_dmic56,
-};
-
-static struct transducer_context_t transducer_fmrx = {
- .pwr_up_func = ste_audio_io_power_up_fmrx,
- .pwr_down_func = ste_audio_io_power_down_fmrx,
-};
-
-static struct transducer_context_t transducer_fmtx = {
- .pwr_up_func = ste_audio_io_power_up_fmtx,
- .pwr_down_func = ste_audio_io_power_down_fmtx,
-};
-
-static struct transducer_context_t transducer_bluetooth = {
- .pwr_up_func = ste_audio_io_power_up_bluetooth,
- .pwr_down_func = ste_audio_io_power_down_bluetooth,
-};
-
-bool ste_audio_io_core_is_ready_for_suspend()
-{
- bool err = false;
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- if ((!ptr_audio_codec_cnxt->power_client) &&
- (!ptr_audio_codec_cnxt->audio_codec_powerup))
- err = true;
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- return err;
-}
-
-static int ste_audio_io_core_init_regulators()
-{
- int error = 0;
- regulator_vdmic = regulator_get(NULL, "v-dmic");
- if (IS_ERR(regulator_vdmic)) {
- error = PTR_ERR(regulator_vdmic);
- dev_err(ptr_audio_codec_cnxt->dev,
- "Register error for v-dmic=%d", error);
- return error;
- }
- regulator_vamic1 = regulator_get(NULL, "v-amic1");
- if (IS_ERR(regulator_vamic1)) {
- error = PTR_ERR(regulator_vamic1);
- dev_err(ptr_audio_codec_cnxt->dev,
- "Register error for v-amic1=%d", error);
- goto free_regulator_vdmic;
- }
- regulator_vamic2 = regulator_get(NULL, "v-amic2");
- if (IS_ERR(regulator_vamic2)) {
- error = PTR_ERR(regulator_vamic2);
- dev_err(ptr_audio_codec_cnxt->dev,
- "Register error for v-amic2=%d", error);
- goto free_regulator_vdmic_vamic1;
- }
- regulator_vaudio = regulator_get(NULL, "v-audio");
- if (IS_ERR(regulator_vaudio)) {
- error = PTR_ERR(regulator_vaudio);
- dev_err(ptr_audio_codec_cnxt->dev,
- "Register error for v-audio=%d", error);
- goto free_regulator_vdmic_vamic1_vamic2;
- }
- regulator_avsource = regulator_get(ptr_audio_codec_cnxt->dev,
- "vcc-avswitch");
- if (IS_ERR(regulator_avsource)) {
- error = PTR_ERR(regulator_avsource);
- dev_err(ptr_audio_codec_cnxt->dev,
- "Register error for vcc-avswitch =%d", error);
- goto free_regulator_vdmic_vamic1_vamic2_vaudio;
- }
- return error;
-free_regulator_vdmic_vamic1_vamic2_vaudio:
- regulator_put(regulator_vaudio);
-free_regulator_vdmic_vamic1_vamic2:
- regulator_put(regulator_vamic2);
-free_regulator_vdmic_vamic1:
- regulator_put(regulator_vamic1);
-free_regulator_vdmic:
- regulator_put(regulator_vdmic);
- return error;
-}
-
-static int ste_audio_io_core_free_regulators()
-{
- regulator_put(regulator_vdmic);
- regulator_put(regulator_vamic1);
- regulator_put(regulator_vamic2);
- regulator_put(regulator_vaudio);
- regulator_put(regulator_avsource);
- return 0;
-}
-
-static int ste_audio_io_core_init_clocks()
-{
- int error = 0;
- clk_ptr_sysclk = clk_get(ptr_audio_codec_cnxt->dev, "sysclk");
- if (IS_ERR(clk_ptr_sysclk)) {
- error = -EFAULT;
- dev_err(ptr_audio_codec_cnxt->dev,
- "Sysclk get failed error = %d", error);
- return error;
- }
- clk_ptr_ulpclk = clk_get(ptr_audio_codec_cnxt->dev, "ulpclk");
- if (IS_ERR(clk_ptr_ulpclk)) {
- error = -EFAULT;
- dev_err(ptr_audio_codec_cnxt->dev,
- "Ulpclk get failed error = %d", error);
- goto free_sysclk;
- }
- clk_ptr_audioclk = clk_get(ptr_audio_codec_cnxt->dev, "audioclk");
- if (IS_ERR(clk_ptr_audioclk)) {
- error = -EFAULT;
- dev_err(ptr_audio_codec_cnxt->dev,
- "Audioclk get failed error = %d", error);
- goto free_ulpclk;
- }
- return error;
-free_ulpclk:
- clk_put(clk_ptr_ulpclk);
-free_sysclk:
- clk_put(clk_ptr_sysclk);
- return error;
-}
-
-static int ste_audio_io_core_free_clocks()
-{
- clk_put(clk_ptr_audioclk);
- clk_put(clk_ptr_ulpclk);
- clk_put(clk_ptr_sysclk);
- return 0;
-}
-
-int ste_audio_io_core_api_init_data(struct platform_device *pdev)
-{
- struct ab8500 *ab8500 = dev_get_drvdata(pdev->dev.parent);
- struct ab8500_platform_data *pdata = dev_get_platdata(ab8500->dev);
- int error = 0;
- ptr_audio_codec_cnxt = kmalloc(sizeof(struct audiocodec_context_t),
- GFP_KERNEL);
- if (!ptr_audio_codec_cnxt)
- return -ENOMEM;
-
- memset(ptr_audio_codec_cnxt, 0, sizeof(*ptr_audio_codec_cnxt));
- ptr_audio_codec_cnxt->dev = &pdev->dev;
- ptr_audio_codec_cnxt->clk_type = AUDIOIO_ULP_CLK;
- mutex_init(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- if (pdata) {
- if (pdata->audio) {
- ptr_audio_codec_cnxt->gpio_altf_init =
- pdata->audio->ste_gpio_altf_init;
- ptr_audio_codec_cnxt->gpio_altf_exit =
- pdata->audio->ste_gpio_altf_exit;
- }
- }
-
- error = ste_audio_io_core_init_regulators();
- if (error)
- goto free_audio_codec_cnxt;
- error = ste_audio_io_core_init_clocks();
- if (error)
- goto free_audio_codec_cnxt_regulators;
- ste_audio_io_init_transducer_cnxt();
- return error;
-
-free_audio_codec_cnxt_regulators:
- ste_audio_io_core_free_regulators();
-free_audio_codec_cnxt:
- kfree(ptr_audio_codec_cnxt);
- return error;
-}
-
-static int ste_audio_io_enable_audio_clock()
-{
- int error = 0;
- if (ptr_audio_codec_cnxt->is_audio_clk_enabled)
- return 0;
-
- if (AUDIOIO_ULP_CLK == ptr_audio_codec_cnxt->clk_type) {
- error = clk_set_parent(clk_ptr_audioclk, clk_ptr_ulpclk);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Setting Ulpclk as parent failed error = %d", error);
- return error;
- }
- } else {
- error = clk_set_parent(clk_ptr_audioclk, clk_ptr_sysclk);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Setting Sysclk as parent failed error = %d", error);
- return error;
- }
- }
- error = clk_enable(clk_ptr_audioclk);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Audioclk enable failed error = %d", error);
- return error;
- }
- ptr_audio_codec_cnxt->is_audio_clk_enabled = 1;
- return error;
-}
-
-static int ste_audio_io_disable_audio_clock()
-{
- if (!ptr_audio_codec_cnxt->is_audio_clk_enabled)
- return 0;
- clk_disable(clk_ptr_audioclk);
- ptr_audio_codec_cnxt->is_audio_clk_enabled = 0;
- return 0;
-}
-
-static void ste_audio_io_init_transducer_cnxt(void)
-{
- ptr_audio_codec_cnxt->transducer[HS_CH] = &transducer_headset;
- ptr_audio_codec_cnxt->transducer[EAR_CH] = &transducer_earpiece;
- ptr_audio_codec_cnxt->transducer[IHF_CH] = &transducer_ihf;
- ptr_audio_codec_cnxt->transducer[VIBL_CH] = &transducer_vibl;
- ptr_audio_codec_cnxt->transducer[VIBR_CH] = &transducer_vibr;
- ptr_audio_codec_cnxt->transducer[MIC1A_CH] = &transducer_mic1a;
- ptr_audio_codec_cnxt->transducer[MIC1B_CH] = &transducer_mic1b;
- ptr_audio_codec_cnxt->transducer[MIC2_CH] = &transducer_mic2;
- ptr_audio_codec_cnxt->transducer[LIN_CH] = &transducer_lin;
- ptr_audio_codec_cnxt->transducer[DMIC12_CH] = &transducer_dmic12;
- ptr_audio_codec_cnxt->transducer[DMIC34_CH] = &transducer_dmic34;
- ptr_audio_codec_cnxt->transducer[DMIC56_CH] = &transducer_dmic56;
- ptr_audio_codec_cnxt->transducer[FMRX_CH] = &transducer_fmrx;
- ptr_audio_codec_cnxt->transducer[FMTX_CH] = &transducer_fmtx;
- ptr_audio_codec_cnxt->transducer[BLUETOOTH_CH] = &transducer_bluetooth;
-}
-
-void ste_audio_io_core_api_free_data(void)
-{
- ste_audio_io_core_free_regulators();
- ste_audio_io_core_free_clocks();
- kfree(ptr_audio_codec_cnxt);
-}
-
-static int ste_audio_io_core_api_enable_regulators(int channel_type)
-{
- int error = 0;
-
- switch (channel_type) {
- case EAR_CH:
- case HS_CH:
- case IHF_CH:
- case VIBL_CH:
- case VIBR_CH:
- case LIN_CH:
- case FMRX_CH:
- case FMTX_CH:
- case BLUETOOTH_CH:
- /* vaduio already enabled
- no additional regualtor required */
- break;
-
- case MIC1A_CH:
- case MIC1B_CH:
- error = regulator_enable(regulator_vamic1);
- if (error)
- dev_err(ptr_audio_codec_cnxt->dev,
- "unable to enable regulator vamic1 error = %d", error);
- break;
-
- case MIC2_CH:
- error = regulator_enable(regulator_vamic2);
- if (error)
- dev_err(ptr_audio_codec_cnxt->dev,
- "unable to enable regulator vamic2 error = %d", error);
- break;
-
- case DMIC12_CH:
- case DMIC34_CH:
- case DMIC56_CH:
- case MULTI_MIC_CH:
- error = regulator_enable(regulator_vdmic);
- if (error)
- dev_err(ptr_audio_codec_cnxt->dev,
- "unable to enable regulator vdmic error = %d", error);
- }
- return error;
-}
-
-static int ste_audio_io_core_api_disable_regulators(int channel_type)
-{
- int error = 0;
-
- switch (channel_type) {
- case EAR_CH:
- case HS_CH:
- case IHF_CH:
- case VIBL_CH:
- case VIBR_CH:
- case LIN_CH:
- case FMRX_CH:
- case FMTX_CH:
- case BLUETOOTH_CH:
- /* no need to disable separately*/
- break;
-
- case MIC1A_CH:
- case MIC1B_CH:
- error = regulator_disable(regulator_vamic1);
- if (error)
- dev_err(ptr_audio_codec_cnxt->dev,
- "unable to disable regulator vamic1 error = %d", error);
- break;
-
- case MIC2_CH:
- error = regulator_disable(regulator_vamic2);
- if (error)
- dev_err(ptr_audio_codec_cnxt->dev,
- "unable to disable regulator vamic2 error = %d", error);
- break;
-
- case DMIC12_CH:
- case DMIC34_CH:
- case DMIC56_CH:
- case MULTI_MIC_CH:
- error = regulator_disable(regulator_vdmic);
- if (error)
- dev_err(ptr_audio_codec_cnxt->dev,
- "unable to disable regulator vdmic error = %d", error);
- }
- return error;
-}
-
-int ste_audio_io_core_api_powerup_audiocodec(int power_client)
-{
- int error = 0;
- int acodec_device_id;
- __u8 data, old_data;
- /* aquire mutex */
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- acodec_device_id = abx500_get_chip_id(&ste_audio_io_device->dev);
-
- /*
- * If there is no power client registered, power up
- * common audio blocks for audio and vibrator
- */
- if (!ptr_audio_codec_cnxt->power_client) {
- error = ste_audio_io_enable_audio_clock();
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Unable to enable audio clock = %d", error);
- goto err_cleanup;
- }
- old_data = HW_REG_READ(AB8500_CTRL3_REG);
-
- /* Enable 32 Khz clock signal on Clk32KOut2 ball */
- data = (~CLK_32K_OUT2_DISABLE) & old_data;
- error = HW_REG_WRITE(AB8500_CTRL3_REG, data);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "enabling 32KHz clock error = %d", error);
- goto err_cleanup;
- }
- data = INACTIVE_RESET_AUDIO | old_data;
- error = HW_REG_WRITE(AB8500_CTRL3_REG, data);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "deactivate audio codec reset error = %d", error);
- goto err_cleanup;
- }
- regulator_enable(regulator_vaudio);
-
- old_data = HW_REG_READ(AB8500_GPIO_DIR4_REG);
- data = (GPIO27_DIR_OUTPUT | GPIO29_DIR_OUTPUT |
- GPIO31_DIR_OUTPUT) | old_data;
- error = HW_REG_WRITE(AB8500_GPIO_DIR4_REG, data);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "setting gpio dir4 error = %d", error);
- goto err_cleanup;
- }
- error = HW_REG_WRITE(SOFTWARE_RESET_REG, SW_RESET);
- if (error != 0) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Software reset error=%d", error);
- goto err_cleanup;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(POWER_UP_CONTROL_REG,
- (DEVICE_POWER_UP|ANALOG_PARTS_POWER_UP), 0);
- if (error != 0) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Device Power Up, error=%d", error);
- goto err_cleanup;
- }
- }
- /* Save information that given client already powered up audio block */
- ptr_audio_codec_cnxt->power_client |= power_client;
-
- /* If audio block requested power up, turn on additional audio blocks */
- if (power_client == STE_AUDIOIO_POWER_AUDIO) {
- if (!ptr_audio_codec_cnxt->audio_codec_powerup) {
- clk_ptr_msp1 = clk_get_sys("msp1", NULL);
- if (!IS_ERR(clk_ptr_msp1)) {
- error = clk_enable(clk_ptr_msp1);
- if (error)
- goto err_cleanup;
- } else {
- error = -EFAULT;
- goto err_cleanup;
- }
-
- if (AB8500_REV_20 <= acodec_device_id) {
- clk_ptr_msp3 = clk_get_sys("msp3", NULL);
- if (!IS_ERR(clk_ptr_msp3)) {
- error = clk_enable(clk_ptr_msp3);
- if (error)
- goto err_cleanup;
- } else {
- error = -EFAULT;
- goto err_cleanup;
- }
- }
-
- if (ptr_audio_codec_cnxt->gpio_altf_init) {
- error = ptr_audio_codec_cnxt->gpio_altf_init();
- if (error)
- goto err_cleanup;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(IF0_IF1_MASTER_CONF_REG,
- EN_MASTGEN, 0);
- if (error != 0) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Enable Master Generator, error=%d", error);
- goto err_cleanup;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(TDM_IF_BYPASS_B_FIFO_REG,
- IF0_MASTER, 0);
- if (error != 0) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "IF0: Master Mode, error=%d", error);
- goto err_cleanup;
- }
-
- /* Configuring IF0 */
-
- error = HW_ACODEC_MODIFY_WRITE(IF0_IF1_MASTER_CONF_REG,
- BITCLK_OSR_N_256, 0);
- if (error != 0) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "IF0: Enable FsBitClk & FSync error=%d", error);
- goto err_cleanup;
- }
-
- error = HW_REG_WRITE(IF0_CONF_REG, IF_DELAYED
- | TDM_FORMAT | WORD_LENGTH_20);
- if (error != 0) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "IF0: TDM Format 16 Bits word length, error=%d",
- error);
- goto err_cleanup;
- }
- }
- ptr_audio_codec_cnxt->audio_codec_powerup++;
- }
-err_cleanup:
- /* release mutex */
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- return error;
-}
-
-int ste_audio_io_core_api_powerdown_audiocodec(int power_client)
-{
- int error = 0;
- /* aquire mutex */
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- /* Update power client status */
- if (power_client == STE_AUDIOIO_POWER_AUDIO) {
- ptr_audio_codec_cnxt->audio_codec_powerup--;
- if (!ptr_audio_codec_cnxt->audio_codec_powerup) {
- ptr_audio_codec_cnxt->power_client &= ~power_client;
- ste_audio_io_disable_audio_clock();
- clk_disable(clk_ptr_msp1);
- clk_put(clk_ptr_msp1);
- if (AB8500_REV_20 <=
- abx500_get_chip_id(&ste_audio_io_device->dev)) {
- clk_disable(clk_ptr_msp3);
- clk_put(clk_ptr_msp3);
- }
-
- if (ptr_audio_codec_cnxt->gpio_altf_exit) {
- error = ptr_audio_codec_cnxt->gpio_altf_exit();
- if (error)
- goto err_cleanup;
- }
- }
- } else
- ptr_audio_codec_cnxt->power_client &= ~power_client;
-
- /* If no power client registered, power down audio block */
- if (!ptr_audio_codec_cnxt->power_client) {
- regulator_disable(regulator_vaudio);
- ste_audio_io_disable_audio_clock();
- if (error != 0) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Device Power Down and Analog Parts Power Down error = %d ",
- error);
- goto err_cleanup;
- }
- }
-
-err_cleanup:
- /* release mutex */
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- return error;
-}
-/**
- * @brief Read from AB8500 device
- * @dev_data Pointer to the structure __audioio_data
- * @return 0
- */
-
-int ste_audio_io_core_api_access_read(struct audioio_data_t *dev_data)
-{
- int reg;
- if (NULL == dev_data)
- return -EFAULT;
- reg = (dev_data->block<<8)|(dev_data->addr&0xff);
- dev_data->data = HW_REG_READ(reg);
- return 0;
-}
-/**
- * @brief Write on AB8500 device
- * @dev_data Pointer to the structure __audioio_data
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_core_api_access_write(struct audioio_data_t *dev_data)
-{
- int retval, reg;
- if (NULL == dev_data)
- return -EFAULT;
-
- reg = (dev_data->block<<8)|(dev_data->addr&0xff);
- retval = HW_REG_WRITE(reg, dev_data->data);
-
- return retval;
-}
-/**
- * @brief Store the power and mute status of transducer
- * @channel_index Channel-index of transducer
- * @ptr Array storing the status
- * @value status being stored
- * @return 0 on success otherwise negative error code
- */
-
-void ste_audio_io_core_api_store_data(enum AUDIOIO_CH_INDEX channel_index,
- int *ptr, int value)
-{
- if (channel_index & e_CHANNEL_1)
- ptr[0] = value;
-
- if (channel_index & e_CHANNEL_2)
- ptr[1] = value;
-
- if (channel_index & e_CHANNEL_3)
- ptr[2] = value;
-
- if (channel_index & e_CHANNEL_4)
- ptr[3] = value;
-}
-/**
- * @brief Get power or mute status on a specific channel
- * @channel_index Channel-index of the transducer
- * @ptr Pointer to is_power_up array or is_muted array
- * @return status of control switch
- */
-enum AUDIOIO_COMMON_SWITCH ste_audio_io_core_api_get_status(
- enum AUDIOIO_CH_INDEX channel_index, int *ptr)
-{
- if (channel_index & e_CHANNEL_1) {
- if (AUDIOIO_TRUE == ptr[0])
- return AUDIOIO_COMMON_ON;
- else
- return AUDIOIO_COMMON_OFF;
- }
-
- if (channel_index & e_CHANNEL_2) {
- if (AUDIOIO_TRUE == ptr[1])
- return AUDIOIO_COMMON_ON;
- else
- return AUDIOIO_COMMON_OFF;
- }
-
- if (channel_index & e_CHANNEL_3) {
- if (AUDIOIO_TRUE == ptr[2])
- return AUDIOIO_COMMON_ON;
- else
- return AUDIOIO_COMMON_OFF;
- }
-
- if (channel_index & e_CHANNEL_4) {
- if (AUDIOIO_TRUE == ptr[3])
- return AUDIOIO_COMMON_ON;
- else
- return AUDIOIO_COMMON_OFF;
- }
- return 0;
-}
-
-int ste_audio_io_core_api_acodec_power_control(struct audioio_acodec_pwr_ctrl_t
- *audio_acodec_pwr_ctrl)
-{
- int error = 0;
- if (audio_acodec_pwr_ctrl->ctrl_switch == AUDIOIO_COMMON_ON)
- error = ste_audio_io_core_api_powerup_audiocodec(
- STE_AUDIOIO_POWER_AUDIO);
- else
- error = ste_audio_io_core_api_powerdown_audiocodec(
- STE_AUDIOIO_POWER_AUDIO);
-
- return error;
-}
-/**
- * @brief Control for powering on/off HW components on a specific channel
- * @pwr_ctrl Pointer to the structure __audioio_pwr_ctrl
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_core_api_power_control_transducer(
- struct audioio_pwr_ctrl_t *pwr_ctrl)
-{
- int error = 0;
- struct transducer_context_t *ptr = NULL;
- enum AUDIOIO_CH_INDEX channel_index;
-
- channel_index = pwr_ctrl->channel_index;
-
- if ((pwr_ctrl->channel_type < FIRST_CH)
- || (pwr_ctrl->channel_type > LAST_CH))
- return -EINVAL;
-
- ptr = ptr_audio_codec_cnxt->transducer[pwr_ctrl->channel_type];
-
- /* aquire mutex */
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- if (AUDIOIO_COMMON_ON == pwr_ctrl->ctrl_switch) {
- if (ptr->pwr_up_func) {
- error = ste_audio_io_core_api_enable_regulators(
- pwr_ctrl->channel_type);
- if (error)
- goto free_mutex;
-
- error = ptr->pwr_up_func(pwr_ctrl->channel_index,
- ptr_audio_codec_cnxt->dev);
- if (0 == error) {
- ste_audio_io_core_api_store_data(channel_index,
- ptr->is_power_up, AUDIOIO_TRUE);
- }
- }
- } else {
- if (ptr->pwr_down_func) {
- error = ptr->pwr_down_func(pwr_ctrl->channel_index,
- ptr_audio_codec_cnxt->dev);
- if (0 == error) {
- ste_audio_io_core_api_store_data(channel_index,
- ptr->is_power_up, AUDIOIO_FALSE);
- }
- error = ste_audio_io_core_api_disable_regulators(
- pwr_ctrl->channel_type);
- }
- }
-
-free_mutex:
- /* release mutex */
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- return error;
-}
-/**
- * @brief Query power state of HW path on specified channel
- * @pwr_ctrl Pointer to the structure __audioio_pwr_ctrl
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_core_api_power_status_transducer(
- struct audioio_pwr_ctrl_t *pwr_ctrl)
-{
-
- struct transducer_context_t *ptr = NULL;
- enum AUDIOIO_CH_INDEX channel_index;
-
- channel_index = pwr_ctrl->channel_index;
-
- if ((pwr_ctrl->channel_type < FIRST_CH)
- || (pwr_ctrl->channel_type > LAST_CH))
- return -EINVAL;
-
- ptr = ptr_audio_codec_cnxt->transducer[pwr_ctrl->channel_type];
-
-
- /* aquire mutex */
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
-
- pwr_ctrl->ctrl_switch = ste_audio_io_core_api_get_status(channel_index,
- ptr->is_power_up);
-
- /* release mutex */
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- return 0;
-
-}
-
-int ste_audio_io_core_api_loop_control(struct audioio_loop_ctrl_t *loop_ctrl)
-{
- int error = 0;
- struct transducer_context_t *ptr = NULL;
-
- if ((loop_ctrl->channel_type < FIRST_CH)
- || (loop_ctrl->channel_type > LAST_CH))
- return -EINVAL;
-
- ptr = ptr_audio_codec_cnxt->transducer[loop_ctrl->channel_type];
-
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- if (AUDIOIO_COMMON_ON == loop_ctrl->ctrl_switch) {
- if (ptr->enable_loop) {
- error = ptr->enable_loop(loop_ctrl->channel_index,
- loop_ctrl->hw_loop,
- loop_ctrl->loop_gain,
- ptr_audio_codec_cnxt->dev,
- ptr_audio_codec_cnxt->transducer);
- if (error)
- dev_err(ptr_audio_codec_cnxt->dev,
- "Loop enable failed for hw loop = %d, error = %d ",
- (int)loop_ctrl->hw_loop, error);
- } else {
- error = -EFAULT;
- dev_err(ptr_audio_codec_cnxt->dev,
- "Hw Loop enable does not exist for channel= %d, error = %d ",
- (int)loop_ctrl->channel_type, error);
- }
- } else {
- if (ptr->disable_loop) {
- error = ptr->disable_loop(loop_ctrl->channel_index,
- loop_ctrl->hw_loop,
- ptr_audio_codec_cnxt->dev,
- ptr_audio_codec_cnxt->transducer);
- if (error)
- dev_err(ptr_audio_codec_cnxt->dev,
- "Loop disable failed for hw loop = %d, error = %d ",
- (int)loop_ctrl->hw_loop, error);
- } else {
- error = -EFAULT;
- dev_err(ptr_audio_codec_cnxt->dev,
- "Hw Loop disable does not exist for channel= %d, error = %d ",
- (int)loop_ctrl->channel_type, error);
- }
- }
-
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- return error;
-}
-
-int ste_audio_io_core_api_loop_status(struct audioio_loop_ctrl_t *loop_ctrl)
-{
- return 0;
-}
-
-int ste_audio_io_core_api_get_transducer_gain_capability(
- struct audioio_get_gain_t *get_gain)
-{
- return 0;
-}
-
-int ste_audio_io_core_api_gain_capabilities_loop(
- struct audioio_gain_loop_t *gain_loop)
-{
- if ((gain_loop->channel_type < FIRST_CH)
- || (gain_loop->channel_type > LAST_CH))
- return -EINVAL;
-
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- gain_loop->num_loop =
- transducer_max_no_Of_supported_loops[gain_loop->channel_type];
- gain_loop->max_gains = max_no_of_loop_gains[gain_loop->channel_type];
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- return 0;
-}
-
-int ste_audio_io_core_api_supported_loops(
- struct audioio_support_loop_t *support_loop)
-{
- if ((support_loop->channel_type < FIRST_CH)
- || (support_loop->channel_type > LAST_CH))
- return -EINVAL;
-
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- support_loop->spprtd_loop_index =
- transducer_no_Of_supported_loop_indexes[support_loop->channel_type];
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- return 0;
-}
-
-int ste_audio_io_core_api_gain_descriptor_transducer(
- struct audioio_gain_desc_trnsdr_t *gdesc_trnsdr)
-{
- return 0;
-}
-/**
- * @brief Control for muting a specific channel in HW
- * @mute_trnsdr Pointer to the structure __audioio_mute_trnsdr
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_core_api_mute_control_transducer(
- struct audioio_mute_trnsdr_t *mute_trnsdr)
-{
- int error = 0;
- struct transducer_context_t *ptr = NULL;
- enum AUDIOIO_CH_INDEX channel_index;
-
- channel_index = mute_trnsdr->channel_index;
-
- if ((mute_trnsdr->channel_type < FIRST_CH)
- || (mute_trnsdr->channel_type > LAST_CH))
- return -EINVAL;
-
- ptr = ptr_audio_codec_cnxt->transducer[mute_trnsdr->channel_type];
-
- /* aquire mutex */
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- if (AUDIOIO_COMMON_ON == mute_trnsdr->ctrl_switch) {
- if (ptr->mute_func) {
- error = ptr->mute_func(mute_trnsdr->channel_index,
- ptr_audio_codec_cnxt->dev);
- if (0 == error) {
- ste_audio_io_core_api_store_data(channel_index ,
- ptr->is_muted, AUDIOIO_TRUE);
- }
- }
- } else {
- if (ptr->unmute_func) {
- if (0 == ptr->unmute_func(channel_index, ptr->gain,
- ptr_audio_codec_cnxt->dev)) {
- ste_audio_io_core_api_store_data(channel_index,
- ptr->is_muted, AUDIOIO_FALSE);
- }
- }
- }
-
- /* release mutex */
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- return error;
-}
-/**
- * @brief Query state of mute on specified channel
- * @mute_trnsdr Pointer to the structure __audioio_mute_trnsdr
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_core_api_mute_status_transducer(
- struct audioio_mute_trnsdr_t *mute_trnsdr)
-{
- struct transducer_context_t *ptr = NULL;
- enum AUDIOIO_CH_INDEX channel_index;
-
- channel_index = mute_trnsdr->channel_index;
-
- if ((mute_trnsdr->channel_type < FIRST_CH)
- || (mute_trnsdr->channel_type > LAST_CH))
- return -EINVAL;
-
- ptr = ptr_audio_codec_cnxt->transducer[mute_trnsdr->channel_type];
-
- /* aquire mutex */
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- mute_trnsdr->ctrl_switch = ste_audio_io_core_api_get_status(
- channel_index, ptr->is_muted);
- /* release mutex */
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- return 0;
-}
-/**
- * @brief control the fading on the transducer called on.
- * @fade_ctrl Pointer to the structure __audioio_fade_ctrl
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_core_api_fading_control(struct audioio_fade_ctrl_t *fade_ctrl)
-{
- int error = 0;
- struct transducer_context_t *ptr = NULL;
-
- if ((fade_ctrl->channel_type < FIRST_CH)
- || (fade_ctrl->channel_type > LAST_CH))
- return -EINVAL;
- ptr = ptr_audio_codec_cnxt->transducer[fade_ctrl->channel_type];
-
- /* aquire mutex */
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- if (AUDIOIO_COMMON_ON == fade_ctrl->ctrl_switch)
- error = ptr->enable_fade_func(ptr_audio_codec_cnxt->dev);
-
- else
- error = ptr->disable_fade_func(ptr_audio_codec_cnxt->dev);
-
-
- /* release mutex */
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- return error;
-}
-/**
- * @brief control the low power mode of headset.
- * @burst_ctrl Pointer to the structure __audioio_burst_ctrl
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_core_api_burstmode_control(
- struct audioio_burst_ctrl_t *burst_ctrl)
-{
- int error = 0;
- struct transducer_context_t *ptr = NULL;
- int burst_fifo_switch_frame;
-
- burst_fifo_switch_frame = burst_ctrl->burst_fifo_switch_frame;
-
- if ((burst_ctrl->channel_type < FIRST_CH)
- || (burst_ctrl->channel_type > LAST_CH))
- return -EINVAL;
- ptr = ptr_audio_codec_cnxt->transducer[burst_ctrl->channel_type];
-
- /* aquire mutex */
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- if (AUDIOIO_COMMON_ON == burst_ctrl->ctrl_switch) {
- if (ptr->switch_to_burst_func)
- error = ptr->switch_to_burst_func(
- burst_fifo_switch_frame,
- ptr_audio_codec_cnxt->dev);
- } else
- if (ptr->switch_to_normal_func)
- error = ptr->switch_to_normal_func(
- ptr_audio_codec_cnxt->dev);
- /* release mutex */
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- return error;
-}
-/**
- * @brief Convert channel index to array index
- * @channel_index Channel Index of transducer
- * @return Array index corresponding to the specified channel index
- */
-
-int convert_channel_index_to_array_index(enum AUDIOIO_CH_INDEX channel_index)
-{
- if (channel_index & e_CHANNEL_1)
- return 0;
- else if (channel_index & e_CHANNEL_2)
- return 1;
- else if (channel_index & e_CHANNEL_3)
- return 2;
- else
- return 3;
-}
-
-/**
- * @brief Set individual gain along the HW path of a specified channel
- * @gctrl_trnsdr Pointer to the structure __audioio_gain_ctrl_trnsdr
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_core_api_gain_control_transducer(
- struct audioio_gain_ctrl_trnsdr_t *gctrl_trnsdr)
-{
- struct transducer_context_t *ptr = NULL;
- enum AUDIOIO_CH_INDEX channel_index;
- int ch_array_index;
- u16 gain_index;
- int gain_value;
- u32 linear;
- int channel_type;
- int error;
- int min_gain, max_gain, gain;
-
- if ((gctrl_trnsdr->channel_type < FIRST_CH)
- || (gctrl_trnsdr->channel_type > LAST_CH))
- return -EINVAL;
-
- if (gctrl_trnsdr->gain_index >= MAX_NO_GAINS)
- return -EINVAL;
-
- ptr = ptr_audio_codec_cnxt->transducer[gctrl_trnsdr->channel_type];
- channel_index = gctrl_trnsdr->channel_index;
- gain_index = gctrl_trnsdr->gain_index;
- gain_value = gctrl_trnsdr->gain_value;
- linear = gctrl_trnsdr->linear;
- channel_type = gctrl_trnsdr->channel_type;
-
- ch_array_index = convert_channel_index_to_array_index(channel_index);
- if (linear) { /* Gain is in the range 0 to 100 */
- min_gain = gain_descriptor[channel_type]\
- [ch_array_index][gain_index].min_gain;
- max_gain = gain_descriptor[channel_type]\
- [ch_array_index][gain_index].max_gain;
-
- gain = ((gain_value * (max_gain - min_gain))/100) + min_gain;
- } else
- /* Convert to db */
- gain = gain_value/100;
-
- gain_value = gain;
-
-#if 1
- if (gain_index >= transducer_no_of_gains[channel_type])
- return -EINVAL;
-
- if (gain_value < gain_descriptor[channel_type]\
- [ch_array_index][gain_index].min_gain)
- return -EINVAL;
-
- if (gain_value > gain_descriptor[channel_type]\
- [ch_array_index][gain_index].max_gain)
- return -EINVAL;
-
-#endif
-
- /* aquire mutex */
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- error = ptr->set_gain_func(channel_index,
- gain_index, gain_value, linear,
- ptr_audio_codec_cnxt->dev);
- if (0 == error)
- ste_audio_io_core_api_store_data(channel_index ,
- ptr->gain, gain_value);
-
-
- /* release mutex */
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- return error;
-}
-/**
- * @brief Get individual gain along the HW path of a specified channel
- * @gctrl_trnsdr Pointer to the structure __audioio_gain_ctrl_trnsdr
- * @return 0 on success otherwise negative error code
- */
-
-
-int ste_audio_io_core_api_gain_query_transducer(
- struct audioio_gain_ctrl_trnsdr_t *gctrl_trnsdr)
-{
- struct transducer_context_t *ptr = NULL;
- enum AUDIOIO_CH_INDEX channel_index;
- u16 gain_index;
- u32 linear;
- int left_volume, right_volume;
- int max_gain, min_gain;
- int ch_array_index;
-
- if ((gctrl_trnsdr->channel_type < FIRST_CH)
- || (gctrl_trnsdr->channel_type > LAST_CH))
- return -EINVAL;
-
- if (gctrl_trnsdr->gain_index >= MAX_NO_GAINS)
- return -EINVAL;
-
- ptr = ptr_audio_codec_cnxt->transducer[gctrl_trnsdr->channel_type];
-
- channel_index = gctrl_trnsdr->channel_index;
- gain_index = gctrl_trnsdr->gain_index;
- linear = gctrl_trnsdr->linear;
-
- ptr->get_gain_func(&left_volume, &right_volume, gain_index,
- ptr_audio_codec_cnxt->dev);
-
- ch_array_index = convert_channel_index_to_array_index(channel_index);
- max_gain = gain_descriptor[gctrl_trnsdr->channel_type]\
- [ch_array_index][gain_index].max_gain;
- min_gain = gain_descriptor[gctrl_trnsdr->channel_type]\
- [ch_array_index][gain_index].min_gain;
-
- switch (channel_index) {
- case e_CHANNEL_1:
- gctrl_trnsdr->gain_value = linear ? \
- min_gain+left_volume*(max_gain-min_gain)/100 : left_volume;
- break;
- case e_CHANNEL_2:
- gctrl_trnsdr->gain_value = linear ? \
- min_gain+right_volume*(max_gain-min_gain)/100 : right_volume;
- break;
- case e_CHANNEL_3:
- break;
- case e_CHANNEL_4:
- break;
- case e_CHANNEL_ALL:
- if (left_volume == right_volume) {
- if (linear)
- gctrl_trnsdr->gain_value =
- min_gain+right_volume*(max_gain-min_gain)/100;
- else
- gctrl_trnsdr->gain_value = right_volume;
- }
- }
-
- return 0;
-}
-
-
-int ste_audio_io_core_api_fsbitclk_control(
- struct audioio_fsbitclk_ctrl_t *fsbitclk_ctrl)
-{
- int error = 0;
-
- if (AUDIOIO_COMMON_ON == fsbitclk_ctrl->ctrl_switch)
- error = HW_ACODEC_MODIFY_WRITE(IF0_IF1_MASTER_CONF_REG,
- EN_FSYNC_BITCLK, 0);
- else
- error = HW_ACODEC_MODIFY_WRITE(IF0_IF1_MASTER_CONF_REG, 0,
- EN_FSYNC_BITCLK);
-
- return error;
-}
-int ste_audio_io_core_api_pseudoburst_control(
- struct audioio_pseudoburst_ctrl_t *pseudoburst_ctrl)
-{
- int error = 0;
-
- return error;
-}
-int ste_audio_io_core_debug(int x)
-{
- debug_audioio(x);
-
-return 0;
-}
-
-/**
- * ste_audioio_vibrator_alloc()
- * @client: Client id which allocates vibrator
- * @mask: Mask against which vibrator usage is checked
- *
- * This function allocates vibrator.
- * Mask is added here as audioio driver controls left and right vibrator
- * separately (can work independently). In case when audioio has allocated
- * one of its channels (left or right) it should be still able to allocate
- * the other channel.
- *
- * Returns:
- * 0 - Success
- * -EBUSY - other client already registered
- **/
-int ste_audioio_vibrator_alloc(int client, int mask)
-{
- int error = 0;
-
- /* Check if other client is already using vibrator */
- if (ptr_audio_codec_cnxt->vibra_client & ~mask)
- error = -EBUSY;
- else
- ptr_audio_codec_cnxt->vibra_client |= client;
-
- return error;
-}
-
-/**
- * ste_audioio_vibrator_release()
- * @client: Client id which releases vibrator
- *
- * This function releases vibrator
- **/
-void ste_audioio_vibrator_release(int client)
-{
- ptr_audio_codec_cnxt->vibra_client &= ~client;
-}
-
-/**
- * ste_audioio_vibrator_pwm_control()
- * @client: Client id which will use vibrator
- * @left_speed: Left vibrator speed
- * @right_speed: Right vibrator speed
- *
- * This function controls vibrator using PWM source
- *
- * Returns:
- * 0 - success
- * -EBUSY - Vibrator already used
- **/
-int ste_audioio_vibrator_pwm_control(
- int client,
- struct ste_vibra_speed left_speed,
- struct ste_vibra_speed right_speed)
-{
- int error = 0;
-
- mutex_lock(&ptr_audio_codec_cnxt->audio_io_mutex);
-
- /* Try to allocate vibrator for given client */
- error = ste_audioio_vibrator_alloc(client, client);
-
- mutex_unlock(&ptr_audio_codec_cnxt->audio_io_mutex);
-
- if (error)
- return error;
-
- /* Duty cycle supported by vibrator's PWM is 0-100 */
- if (left_speed.positive > STE_AUDIOIO_VIBRATOR_MAX_SPEED)
- left_speed.positive = STE_AUDIOIO_VIBRATOR_MAX_SPEED;
-
- if (right_speed.positive > STE_AUDIOIO_VIBRATOR_MAX_SPEED)
- right_speed.positive = STE_AUDIOIO_VIBRATOR_MAX_SPEED;
-
- if (left_speed.negative > STE_AUDIOIO_VIBRATOR_MAX_SPEED)
- left_speed.negative = STE_AUDIOIO_VIBRATOR_MAX_SPEED;
-
- if (right_speed.negative > STE_AUDIOIO_VIBRATOR_MAX_SPEED)
- right_speed.negative = STE_AUDIOIO_VIBRATOR_MAX_SPEED;
-
- if (left_speed.negative || right_speed.negative ||
- left_speed.positive || right_speed.positive) {
- /* Power up audio block for vibrator */
- error = ste_audio_io_core_api_powerup_audiocodec(
- STE_AUDIOIO_POWER_VIBRA);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Audio power up failed %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG,
- (EN_VIBL_MASK|EN_VIBR_MASK), 0);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Powerup Vibrator Class-D driver %d",
- error);
- return error;
- }
-
- error = HW_REG_WRITE(VIB_DRIVER_CONF_REG, 0xff);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Enable Vibrator PWM generator %d",
- error);
- return error;
- }
- }
-
- error = HW_REG_WRITE(PWM_VIBNL_CONF_REG, left_speed.negative);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Write Left Vibrator negative PWM %d", error);
- goto err_cleanup;
- }
-
- error = HW_REG_WRITE(PWM_VIBPL_CONF_REG, left_speed.positive);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Write Left Vibrator positive PWM %d", error);
- goto err_cleanup;
- }
-
- error = HW_REG_WRITE(PWM_VIBNR_CONF_REG, right_speed.negative);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Write Right Vibrator negative PWM %d", error);
- goto err_cleanup;
- }
-
- error = HW_REG_WRITE(PWM_VIBPR_CONF_REG, right_speed.positive);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Write Right Vibrator positive PWM %d", error);
- goto err_cleanup;
- }
-
- if (!left_speed.negative && !right_speed.negative &&
- !left_speed.positive && !right_speed.positive) {
- error = HW_REG_WRITE(VIB_DRIVER_CONF_REG, 0);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Disable PWM Vibrator generator %d",
- error);
- goto err_cleanup;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG,
- 0, (EN_VIBL_MASK|EN_VIBR_MASK));
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Power down Vibrator Class-D driver %d",
- error);
- goto err_cleanup;
- }
-
- /* Power down audio block */
- error = ste_audio_io_core_api_powerdown_audiocodec(
- STE_AUDIOIO_POWER_VIBRA);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Audio power down failed %d", error);
- goto err_cleanup;
- }
- }
-
-err_cleanup:
- /* Release client */
- if (!left_speed.negative && !right_speed.negative &&
- !left_speed.positive && !right_speed.positive) {
- mutex_lock(&ptr_audio_codec_cnxt->audio_io_mutex);
- ste_audioio_vibrator_release(client);
- mutex_unlock(&ptr_audio_codec_cnxt->audio_io_mutex);
- }
- return error;
-}
-EXPORT_SYMBOL(ste_audioio_vibrator_pwm_control);
-
-/**
- * @brief This function sets FIR coefficients
- * @fir_coeffs: pointer to structure audioio_fir_coefficients_t
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_core_api_fir_coeffs_control(struct audioio_fir_coefficients_t
- *fir_coeffs)
-{
- unsigned char coefficient;
- int i, error;
-
- if (fir_coeffs->start_addr >= STE_AUDIOIO_MAX_COEFFICIENTS)
- return -EINVAL;
-
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
-
- error = HW_REG_WRITE(SIDETONE_FIR_ADDR_REG, fir_coeffs->start_addr);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "FIR start address write failed %d", error);
- goto err_cleanup;
- }
-
- for (i = fir_coeffs->start_addr;
- i < STE_AUDIOIO_MAX_COEFFICIENTS; i++) {
-
- coefficient = (fir_coeffs->coefficients[i]>>8) & 0xff;
- error = HW_REG_WRITE(SIDETONE_FIR_COEFF_MSB_REG, coefficient);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "FIR coefficient [%d] msb write failed %d", i, error);
- goto err_cleanup;
- }
-
- coefficient = fir_coeffs->coefficients[i] & 0xff;
- error = HW_REG_WRITE(SIDETONE_FIR_COEFF_LSB_REG, coefficient);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "FIR coefficient [%d] lsb write failed %d", i, error);
- goto err_cleanup;
- }
- }
-
- error = HW_ACODEC_MODIFY_WRITE(SIDETONE_FIR_ADDR_REG,
- APPLY_FIR_COEFFS_MASK, 0);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "FIR coefficients activation failed %d", error);
- goto err_cleanup;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(FILTERS_CONTROL_REG,
- FIR_FILTERCONTROL, 0);
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "ST FIR Filters enable failed %d", error);
- goto err_cleanup;
- }
-
-err_cleanup:
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- return error;
-}
-
-/**
- * @brief This function sets and enable clock
- * @clk_type: pointer to structure audioio_clk_select_t
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_core_clk_select_control(struct audioio_clk_select_t
- *clk_type)
-{
- int error = 0;
- mutex_lock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- if (ptr_audio_codec_cnxt->clk_type != clk_type->required_clk) {
- /* disable running clk*/
- ste_audio_io_disable_audio_clock();
- /* assign required clk*/
- ptr_audio_codec_cnxt->clk_type = clk_type->required_clk;
- /* enable required clk*/
- error = ste_audio_io_enable_audio_clock();
- if (error) {
- dev_err(ptr_audio_codec_cnxt->dev,
- "Clock enabled failed = %d", error);
- goto err_cleanup;
- }
- }
-err_cleanup:
- mutex_unlock(&(ptr_audio_codec_cnxt->audio_io_mutex));
- return error;
-}
-
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_core.h b/drivers/misc/audio_io_dev/ste_audio_io_core.h
deleted file mode 100644
index 44849f1d5e8..00000000000
--- a/drivers/misc/audio_io_dev/ste_audio_io_core.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-#ifndef _AUDIOIO_CORE_H_
-#define _AUDIOIO_CORE_H_
-
-#include <mach/ste_audio_io_ioctl.h>
-#include "ste_audio_io_func.h"
-#include "ste_audio_io_hwctrl_common.h"
-
-#define MAX_NO_CHANNELS 4
-
-#define STE_AUDIOIO_POWER_AUDIO 1
-#define STE_AUDIOIO_POWER_VIBRA 2
-
-struct transducer_context_t {
- /* public variables */
- int gain[MAX_NO_CHANNELS];
- int is_muted[MAX_NO_CHANNELS];
- int is_power_up[MAX_NO_CHANNELS];
- /* public funcs */
- int (*pwr_up_func)(enum AUDIOIO_CH_INDEX, struct device *);
- int (*pwr_down_func)(enum AUDIOIO_CH_INDEX, struct device *);
- int (*pwr_state_func)(struct device *);
- int (*set_gain_func)(enum AUDIOIO_CH_INDEX, u16, int, u32,
- struct device *);
- int (*get_gain_func)(int *, int *, u16, struct device *);
- int (*mute_func)(enum AUDIOIO_CH_INDEX, struct device *);
- int (*unmute_func)(enum AUDIOIO_CH_INDEX, int *, struct device *);
- int (*mute_state_func)(struct device *);
- int (*enable_fade_func)(struct device *);
- int (*disable_fade_func)(struct device *);
- int (*switch_to_burst_func)(int, struct device *);
- int (*switch_to_normal_func)(struct device *);
- int (*enable_loop)(enum AUDIOIO_CH_INDEX, enum AUDIOIO_HAL_HW_LOOPS,
- int, struct device *, void *);
- int (*disable_loop)(enum AUDIOIO_CH_INDEX, enum AUDIOIO_HAL_HW_LOOPS,
- struct device *, void *);
-};
-
-struct audiocodec_context_t {
- int audio_codec_powerup;
- int is_audio_clk_enabled;
- enum AUDIOIO_CLK_TYPE clk_type;
- int power_client;
- int vibra_client;
- struct mutex audio_io_mutex;
- struct mutex vibrator_mutex;
- struct transducer_context_t *transducer[MAX_NO_TRANSDUCERS];
- struct device *dev;
- int (*gpio_altf_init) (void);
- int (*gpio_altf_exit) (void);
-};
-
-
-int ste_audio_io_core_api_access_read(struct audioio_data_t *dev_data);
-
-int ste_audio_io_core_api_access_write(struct audioio_data_t *dev_data);
-
-int ste_audio_io_core_api_power_control_transducer(
- struct audioio_pwr_ctrl_t *pwr_ctrl);
-
-int ste_audio_io_core_api_power_status_transducer(
- struct audioio_pwr_ctrl_t *pwr_ctrl);
-
-int ste_audio_io_core_api_loop_control(struct audioio_loop_ctrl_t *loop_ctrl);
-
-int ste_audio_io_core_api_loop_status(struct audioio_loop_ctrl_t *loop_ctrl);
-
-int ste_audio_io_core_api_get_transducer_gain_capability(
- struct audioio_get_gain_t *get_gain);
-
-int ste_audio_io_core_api_gain_capabilities_loop(
- struct audioio_gain_loop_t *gain_loop);
-
-int ste_audio_io_core_api_supported_loops(
- struct audioio_support_loop_t *support_loop);
-
-int ste_audio_io_core_api_gain_descriptor_transducer(
- struct audioio_gain_desc_trnsdr_t *gdesc_trnsdr);
-
-int ste_audio_io_core_api_gain_control_transducer(
- struct audioio_gain_ctrl_trnsdr_t *gctrl_trnsdr);
-
-int ste_audio_io_core_api_gain_query_transducer(
- struct audioio_gain_ctrl_trnsdr_t *gctrl_trnsdr);
-
-int ste_audio_io_core_api_mute_control_transducer(
- struct audioio_mute_trnsdr_t *mute_trnsdr);
-
-int ste_audio_io_core_api_mute_status_transducer(
- struct audioio_mute_trnsdr_t *mute_trnsdr);
-
-int ste_audio_io_core_api_fading_control(struct audioio_fade_ctrl_t *fade_ctrl);
-
-int ste_audio_io_core_api_burstmode_control(
- struct audioio_burst_ctrl_t *burst_ctrl);
-
-int ste_audio_io_core_api_powerup_audiocodec(int power_client);
-
-int ste_audio_io_core_api_powerdown_audiocodec(int power_client);
-
-int ste_audio_io_core_api_init_data(struct platform_device *pdev);
-
-bool ste_audio_io_core_is_ready_for_suspend(void);
-void ste_audio_io_core_api_free_data(void);
-
-int ste_audio_io_core_api_fsbitclk_control(
- struct audioio_fsbitclk_ctrl_t *fsbitclk_ctrl);
-int ste_audio_io_core_api_pseudoburst_control(
- struct audioio_pseudoburst_ctrl_t *pseudoburst_ctrl);
-
-void ste_audio_io_core_api_store_data(enum AUDIOIO_CH_INDEX channel_index,
- int *ptr, int value);
-
-int ste_audioio_vibrator_alloc(int client, int mask);
-
-void ste_audioio_vibrator_release(int client);
-
-enum AUDIOIO_COMMON_SWITCH ste_audio_io_core_api_get_status(
- enum AUDIOIO_CH_INDEX channel_index, int *ptr);
-
-int ste_audio_io_core_api_acodec_power_control(struct audioio_acodec_pwr_ctrl_t
- *audio_acodec_pwr_ctrl);
-
-int ste_audio_io_core_api_fir_coeffs_control(struct audioio_fir_coefficients_t
- *fir_coeffs);
-
-int ste_audio_io_core_clk_select_control(struct audioio_clk_select_t
- *clk_type);
-
-int ste_audio_io_core_debug(int x);
-
-#endif /* _AUDIOIO_CORE_H_ */
-
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_dev.c b/drivers/misc/audio_io_dev/ste_audio_io_dev.c
deleted file mode 100644
index edea31e4315..00000000000
--- a/drivers/misc/audio_io_dev/ste_audio_io_dev.c
+++ /dev/null
@@ -1,759 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/ioctl.h>
-#include <linux/fs.h>
-#include <linux/device.h>
-#include <linux/err.h>
-#include <linux/errno.h>
-#include <linux/cdev.h>
-#include <linux/uaccess.h>
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/gpio.h>
-#include <linux/clk.h>
-#include <linux/platform_device.h>
-#include <linux/miscdevice.h>
-#include "ste_audio_io_dev.h"
-
-#define STR_DEBUG_ON "debug on"
-#define AUDIOIO_DEVNAME "ab8500-codec"
-
-static int ste_audio_io_open(struct inode *inode, struct file *filp);
-static int ste_audio_io_release(struct inode *inode, struct file *filp);
-static long ste_audio_io_ioctl(struct file *file, unsigned int cmd,
- unsigned long arg);
-static int ste_audio_io_cmd_parser(unsigned int cmd, unsigned long arg);
-static ssize_t ste_audio_io_write(struct file *filp,
- const char __user *buf, size_t count, loff_t *f_pos);
-
-
-/**
- * @brief Check IOCTL type, command no and access direction
- * @ inode value corresponding to the file descriptor
- * @file value corresponding to the file descriptor
- * @cmd IOCTL command code
- * @arg Command argument
- * @return 0 on success otherwise negative error code
- */
-static long ste_audio_io_ioctl(struct file *file, unsigned int cmd,
- unsigned long arg)
-{
- int retval = 0;
- int err = 0;
-
- /* Check type and command number */
- if (_IOC_TYPE(cmd) != AUDIOIO_IOC_MAGIC)
- return -ENOTTY;
-
- /* IOC_DIR is from the user perspective, while access_ok is
- * from the kernel perspective; so they look reversed.
- */
- if (_IOC_DIR(cmd) & _IOC_READ)
- err = !access_ok(VERIFY_WRITE, (void __user *)arg,
- _IOC_SIZE(cmd));
- if (err == 0 && _IOC_DIR(cmd) & _IOC_WRITE)
- err = !access_ok(VERIFY_READ, (void __user *)arg,
- _IOC_SIZE(cmd));
- if (err)
- return -EFAULT;
-
- retval = ste_audio_io_cmd_parser(cmd, arg);
-
- return retval;
-}
-/**
- * @brief IOCTL call to read the value from AB8500 device
- * @cmd IOCTL command code
- * @arg Command argument
- * @return 0 on success otherwise negative error code
- */
-
-static int process_read_register_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_data_t *audio_dev_data;
-
- audio_dev_data = (struct audioio_data_t *)&cmd_data;
-
- if (copy_from_user(audio_dev_data, (void __user *)arg,
- sizeof(struct audioio_data_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_access_read(audio_dev_data);
- if (0 != retval)
- return retval;
-
- if (copy_to_user((void __user *)arg, audio_dev_data,
- sizeof(struct audioio_data_t)))
- return -EFAULT;
- return 0;
-}
-/**
- * @brief IOCTL call to write the given value to the AB8500 device
- * @cmd IOCTL command code
- * @arg Command argument
- * @return 0 on success otherwise negative error code
- */
-
-static int process_write_register_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_data_t *audio_dev_data;
-
- audio_dev_data = (struct audioio_data_t *)&cmd_data;
-
- if (copy_from_user(audio_dev_data, (void __user *)arg,
- sizeof(struct audioio_data_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_access_write(audio_dev_data);
-
- return retval;
-}
-/**
- * @brief IOCTL call to control the power on/off of hardware components
- * @cmd IOCTL command code
- * @arg Command argument
- * @return 0 on success otherwise negative error code
- */
-
-static int process_pwr_ctrl_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_pwr_ctrl_t *audio_pwr_ctrl;
-
- audio_pwr_ctrl = (struct audioio_pwr_ctrl_t *)&cmd_data;
-
- if (copy_from_user(audio_pwr_ctrl, (void __user *)arg,
- sizeof(struct audioio_pwr_ctrl_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_power_control_transducer(audio_pwr_ctrl);
-
- return retval;
-}
-
-static int process_pwr_sts_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_pwr_ctrl_t *audio_pwr_sts;
-
- audio_pwr_sts = (struct audioio_pwr_ctrl_t *)&cmd_data;
-
- if (copy_from_user(audio_pwr_sts, (void __user *)arg,
- sizeof(struct audioio_pwr_ctrl_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_power_status_transducer(audio_pwr_sts);
- if (0 != retval)
- return retval;
-
- if (copy_to_user((void __user *)arg, audio_pwr_sts,
- sizeof(struct audioio_pwr_ctrl_t)))
- return -EFAULT;
-
- return 0;
-}
-
-static int process_lp_ctrl_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_loop_ctrl_t *audio_lp_ctrl;
-
- audio_lp_ctrl = (struct audioio_loop_ctrl_t *)&cmd_data;
-
- if (copy_from_user(audio_lp_ctrl, (void __user *)arg,
- sizeof(struct audioio_loop_ctrl_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_loop_control(audio_lp_ctrl);
-
- return retval;
-}
-
-static int process_lp_sts_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_loop_ctrl_t *audio_lp_sts;
-
- audio_lp_sts = (struct audioio_loop_ctrl_t *)&cmd_data;
-
-
- if (copy_from_user(audio_lp_sts, (void __user *)arg,
- sizeof(struct audioio_loop_ctrl_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_loop_status(audio_lp_sts);
- if (0 != retval)
- return retval;
-
- if (copy_to_user((void __user *)arg, audio_lp_sts,
- sizeof(struct audioio_loop_ctrl_t)))
- return -EFAULT;
- return 0;
-}
-
-static int process_get_trnsdr_gain_capability_cmd(unsigned int cmd,
- unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_get_gain_t *audio_trnsdr_gain;
-
- audio_trnsdr_gain = (struct audioio_get_gain_t *)&cmd_data;
-
- if (copy_from_user(audio_trnsdr_gain, (void __user *)arg,
- sizeof(struct audioio_get_gain_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_get_transducer_gain_capability(
- audio_trnsdr_gain);
- if (0 != retval)
- return retval;
-
- if (copy_to_user((void __user *)arg, audio_trnsdr_gain,
- sizeof(struct audioio_get_gain_t)))
- return -EFAULT;
- return 0;
-}
-
-static int process_gain_cap_loop_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_gain_loop_t *audio_gain_loop;
-
- audio_gain_loop = (struct audioio_gain_loop_t *)&cmd_data;
-
- if (copy_from_user(audio_gain_loop, (void __user *)arg,
- sizeof(struct audioio_gain_loop_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_gain_capabilities_loop(audio_gain_loop);
- if (0 != retval)
- return retval;
-
- if (copy_to_user((void __user *)arg, audio_gain_loop,
- sizeof(struct audioio_gain_loop_t)))
- return -EFAULT;
- return 0;
-}
-
-
-static int process_support_loop_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_support_loop_t *audio_spprt_loop;
-
- audio_spprt_loop = (struct audioio_support_loop_t *)&cmd_data;
-
- if (copy_from_user(audio_spprt_loop, (void __user *)arg,
- sizeof(struct audioio_support_loop_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_supported_loops(audio_spprt_loop);
- if (0 != retval)
- return retval;
-
- if (copy_to_user((void __user *)arg, audio_spprt_loop,
- sizeof(struct audioio_support_loop_t)))
- return -EFAULT;
- return 0;
-}
-
-
-static int process_gain_desc_trnsdr_cmd(unsigned int cmd, unsigned long arg)
-
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_gain_desc_trnsdr_t *audio_gain_desc;
-
- audio_gain_desc = (struct audioio_gain_desc_trnsdr_t *)&cmd_data;
-
- if (copy_from_user(audio_gain_desc, (void __user *)arg,
- sizeof(struct audioio_gain_desc_trnsdr_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_gain_descriptor_transducer(
- audio_gain_desc);
- if (0 != retval)
- return retval;
-
- if (copy_to_user((void __user *)arg, audio_gain_desc,
- sizeof(struct audioio_gain_desc_trnsdr_t)))
- return -EFAULT;
- return 0;
-}
-
-
-static int process_gain_ctrl_trnsdr_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_gain_ctrl_trnsdr_t *audio_gain_ctrl;
-
- audio_gain_ctrl = (struct audioio_gain_ctrl_trnsdr_t *)&cmd_data;
-
- if (copy_from_user(audio_gain_ctrl, (void __user *)arg,
- sizeof(struct audioio_gain_ctrl_trnsdr_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_gain_control_transducer(
- audio_gain_ctrl);
-
- return retval;
-}
-
-static int process_gain_query_trnsdr_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_gain_ctrl_trnsdr_t *audio_gain_query;
-
- audio_gain_query = (struct audioio_gain_ctrl_trnsdr_t *)&cmd_data;
-
- if (copy_from_user(audio_gain_query, (void __user *)arg,
- sizeof(struct audioio_gain_ctrl_trnsdr_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_gain_query_transducer(audio_gain_query);
- if (0 != retval)
- return retval;
-
- if (copy_to_user((void __user *)arg, audio_gain_query,
- sizeof(struct audioio_gain_ctrl_trnsdr_t)))
- return -EFAULT;
- return 0;
-}
-
-static int process_mute_ctrl_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_mute_trnsdr_t *audio_mute_ctrl;
-
- audio_mute_ctrl = (struct audioio_mute_trnsdr_t *)&cmd_data;
- if (copy_from_user(audio_mute_ctrl , (void __user *)arg,
- sizeof(struct audioio_mute_trnsdr_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_mute_control_transducer(
- audio_mute_ctrl);
-
- return retval;
-}
-
-static int process_mute_sts_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_mute_trnsdr_t *audio_mute_sts;
-
- audio_mute_sts = (struct audioio_mute_trnsdr_t *)&cmd_data;
-
- if (copy_from_user(audio_mute_sts, (void __user *)arg,
- sizeof(struct audioio_mute_trnsdr_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_mute_status_transducer(audio_mute_sts);
- if (0 != retval)
- return retval;
-
- if (copy_to_user((void __user *)arg, audio_mute_sts,
- sizeof(struct audioio_mute_trnsdr_t)))
- return -EFAULT;
- return 0;
-}
-
-static int process_fade_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_fade_ctrl_t *audio_fade;
- audio_fade = (struct audioio_fade_ctrl_t *)&cmd_data;
-
- if (copy_from_user(audio_fade , (void __user *)arg,
- sizeof(struct audioio_fade_ctrl_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_fading_control(audio_fade);
-
- return retval;
-}
-
-static int process_burst_ctrl_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_burst_ctrl_t *audio_burst;
-
- audio_burst = (struct audioio_burst_ctrl_t *)&cmd_data;
- if (copy_from_user(audio_burst , (void __user *)arg,
- sizeof(struct audioio_burst_ctrl_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_burstmode_control(audio_burst);
-
- return retval;
-
- return 0;
-}
-
-static int process_fsbitclk_ctrl_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_fsbitclk_ctrl_t *audio_fsbitclk;
-
- audio_fsbitclk = (struct audioio_fsbitclk_ctrl_t *)&cmd_data;
-
- if (copy_from_user(audio_fsbitclk , (void __user *)arg,
- sizeof(struct audioio_fsbitclk_ctrl_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_fsbitclk_control(audio_fsbitclk);
-
- return retval;
-
- return 0;
-
-}
-
-static int process_pseudoburst_ctrl_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_pseudoburst_ctrl_t *audio_pseudoburst;
-
- audio_pseudoburst = (struct audioio_pseudoburst_ctrl_t *)&cmd_data;
-
- if (copy_from_user(audio_pseudoburst , (void __user *)arg,
- sizeof(struct audioio_pseudoburst_ctrl_t)))
- return -EFAULT;
-
- retval = ste_audio_io_core_api_pseudoburst_control(audio_pseudoburst);
-
- return retval;
-
- return 0;
-
-}
-static int process_audiocodec_pwr_ctrl_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
- union audioio_cmd_data_t cmd_data;
- struct audioio_acodec_pwr_ctrl_t *audio_acodec_pwr_ctrl;
- audio_acodec_pwr_ctrl = (struct audioio_acodec_pwr_ctrl_t *)&cmd_data;
- if (copy_from_user(audio_acodec_pwr_ctrl, (void __user *)arg,
- sizeof(struct audioio_acodec_pwr_ctrl_t)))
- return -EFAULT;
- retval = ste_audio_io_core_api_acodec_power_control(
- audio_acodec_pwr_ctrl);
- return retval;
-}
-
-static int process_fir_coeffs_ctrl_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval;
- struct audioio_fir_coefficients_t *cmd_data;
- cmd_data = kmalloc(sizeof(struct audioio_fir_coefficients_t),
- GFP_KERNEL);
- if (!cmd_data)
- return -ENOMEM;
- if (copy_from_user(cmd_data, (void __user *)arg,
- sizeof(struct audioio_fir_coefficients_t))) {
- kfree(cmd_data);
- return -EFAULT;
- }
- retval = ste_audio_io_core_api_fir_coeffs_control(cmd_data);
- kfree(cmd_data);
- return retval;
-}
-
-static int process_clk_select_cmd(unsigned int cmd, unsigned long arg)
-{
- int retval;
- struct audioio_clk_select_t *cmd_data;
- cmd_data = kmalloc(sizeof(struct audioio_clk_select_t),
- GFP_KERNEL);
- if (!cmd_data)
- return -ENOMEM;
- if (copy_from_user(cmd_data, (void __user *)arg,
- sizeof(struct audioio_clk_select_t))) {
- kfree(cmd_data);
- return -EFAULT;
- }
- retval = ste_audio_io_core_clk_select_control(cmd_data);
- kfree(cmd_data);
- return retval;
-}
-
-static int ste_audio_io_cmd_parser(unsigned int cmd, unsigned long arg)
-{
- int retval = 0;
-
- switch (cmd) {
- case AUDIOIO_READ_REGISTER:
- retval = process_read_register_cmd(cmd, arg);
- break;
-
- case AUDIOIO_WRITE_REGISTER:
- retval = process_write_register_cmd(cmd, arg);
- break;
-
- case AUDIOIO_PWR_CTRL_TRNSDR:
- retval = process_pwr_ctrl_cmd(cmd, arg);
- break;
-
- case AUDIOIO_PWR_STS_TRNSDR:
- retval = process_pwr_sts_cmd(cmd, arg);
- break;
-
- case AUDIOIO_LOOP_CTRL:
- retval = process_lp_ctrl_cmd(cmd, arg);
- break;
-
- case AUDIOIO_LOOP_STS:
- retval = process_lp_sts_cmd(cmd, arg);
- break;
-
- case AUDIOIO_GET_TRNSDR_GAIN_CAPABILITY:
- retval = process_get_trnsdr_gain_capability_cmd(cmd, arg);
- break;
-
- case AUDIOIO_GAIN_CAP_LOOP:
- retval = process_gain_cap_loop_cmd(cmd, arg);
- break;
-
- case AUDIOIO_SUPPORT_LOOP:
- retval = process_support_loop_cmd(cmd, arg);
- break;
-
- case AUDIOIO_GAIN_DESC_TRNSDR:
- retval = process_gain_desc_trnsdr_cmd(cmd, arg);
- break;
-
- case AUDIOIO_GAIN_CTRL_TRNSDR:
- retval = process_gain_ctrl_trnsdr_cmd(cmd, arg);
- break;
-
- case AUDIOIO_GAIN_QUERY_TRNSDR:
- retval = process_gain_query_trnsdr_cmd(cmd, arg);
- break;
-
- case AUDIOIO_MUTE_CTRL_TRNSDR:
- retval = process_mute_ctrl_cmd(cmd, arg);
- break;
-
- case AUDIOIO_MUTE_STS_TRNSDR:
- retval = process_mute_sts_cmd(cmd, arg);
- break;
-
- case AUDIOIO_FADE_CTRL:
- retval = process_fade_cmd(cmd, arg);
- break;
-
- case AUDIOIO_BURST_CTRL:
- retval = process_burst_ctrl_cmd(cmd, arg);
- break;
-
- case AUDIOIO_FSBITCLK_CTRL:
- retval = process_fsbitclk_ctrl_cmd(cmd, arg);
- break;
-
- case AUDIOIO_PSEUDOBURST_CTRL:
- retval = process_pseudoburst_ctrl_cmd(cmd, arg);
- break;
-
- case AUDIOIO_AUDIOCODEC_PWR_CTRL:
- retval = process_audiocodec_pwr_ctrl_cmd(cmd, arg);
- break;
-
- case AUDIOIO_FIR_COEFFS_CTRL:
- retval = process_fir_coeffs_ctrl_cmd(cmd, arg);
- break;
- case AUDIOIO_CLK_SELECT_CTRL:
- retval = process_clk_select_cmd(cmd, arg);
- break;
- }
- return retval;
-}
-
-static int ste_audio_io_open(struct inode *inode, struct file *filp)
-{
- if (!try_module_get(THIS_MODULE))
- return -ENODEV;
- return 0;
-}
-
-static int ste_audio_io_release(struct inode *inode, struct file *filp)
-{
- module_put(THIS_MODULE);
- return 0;
-}
-
-static ssize_t ste_audio_io_write(struct file *filp,
- const char __user *buf, size_t count, loff_t *f_pos)
-{
- char *x = kmalloc(count, GFP_KERNEL);
- int debug_flag = 0;
-
- if (copy_from_user(x, buf, count))
- return -EFAULT;
-
- if (count >= strlen(STR_DEBUG_ON)) {
-
- if (!strncmp(STR_DEBUG_ON, x, strlen(STR_DEBUG_ON)))
- debug_flag = 1;
- else
- debug_flag = 0;
- }
-
- ste_audio_io_core_debug(debug_flag);
-
- kfree(x);
-
- return count;
-}
-
-static const struct file_operations ste_audio_io_fops = {
- .owner = THIS_MODULE,
- .unlocked_ioctl = ste_audio_io_ioctl,
- .open = ste_audio_io_open,
- .release = ste_audio_io_release,
- .write = ste_audio_io_write,
-};
-
-/**
- * audio_io_misc_dev - Misc device config for audio_io
- */
-static struct miscdevice audio_io_misc_dev = {
- MISC_DYNAMIC_MINOR,
- "audioio",
- &ste_audio_io_fops
-};
-
-/**
- * ste_audio_io_probe() - probe the device
- * @pdev: pointer to the platform device structure
- *
- * This funtion is called after the driver is registered to platform
- * device framework. It does allocate the memory for the internal
- * data structure and intialized core APIs.
- */
-static int ste_audio_io_drv_probe(struct platform_device *pdev)
-{
- int error;
-
- ste_audio_io_device = pdev;
-
- dev_dbg(&ste_audio_io_device->dev, "ste_audio_io device probe\n");
-
- error = misc_register(&audio_io_misc_dev);
- if (error) {
- printk(KERN_WARNING "%s: registering misc device failed\n",
- __func__);
- return error;
- }
-
- error = ste_audio_io_core_api_init_data(ste_audio_io_device);
- if (error < 0) {
- dev_err(&ste_audio_io_device->dev,
- "ste_audioio_core_api_init_data failed err = %d",
- error);
- goto ste_audio_io_misc_deregister;
- }
- return 0;
-
-ste_audio_io_misc_deregister:
- misc_deregister(&audio_io_misc_dev);
- return error;
-}
-
-/**
- * ste_audio_io_remove() - Removes the device
- * @pdev: pointer to the platform_device structure
- *
- * This function is called when this mnodule is removed using rmmod
- */
-static int ste_audio_io_drv_remove(struct platform_device *pdev)
-{
- ste_audio_io_core_api_free_data();
- misc_deregister(&audio_io_misc_dev);
- return 0;
-}
-
-/**
- * ste_audio_io_drv_suspend - suspend audio_io
- * @pdev: platform data
- * @state: power down level
- */
-static int ste_audio_io_drv_suspend(struct platform_device *pdev,
- pm_message_t state)
-{
- if (ste_audio_io_core_is_ready_for_suspend())
- return 0;
- else
- return -EINVAL;
-}
-
-/**
- * ste_audio_io_drv_resume - put back audio_io in the normal state
- * @pdev: platform data
- */
-static int ste_audio_io_drv_resume(struct platform_device *pdev)
-{
- return 0;
-}
-
-/**
- * struct audio_io_driver: audio_io platform structure
- * @probe: The probe funtion to be called
- * @remove: The remove funtion to be called
- * @resume: The resume function to be called
- * @suspend: The suspend function to be called
- * @driver: The driver data
- */
-static struct platform_driver ste_audio_io_driver = {
- .probe = ste_audio_io_drv_probe,
- .remove = ste_audio_io_drv_remove,
- .driver = {
- .name = AUDIOIO_DEVNAME,
- .owner = THIS_MODULE,
- },
- .suspend = ste_audio_io_drv_suspend,
- .resume = ste_audio_io_drv_resume,
-};
-
-/** Pointer to platform device needed to access abx500 core functions */
-struct platform_device *ste_audio_io_device;
-
-static int __init ste_audio_io_init(void)
-{
- return platform_driver_register(&ste_audio_io_driver);
-}
-module_init(ste_audio_io_init);
-
-static void __exit ste_audio_io_exit(void)
-{
- platform_driver_unregister(&ste_audio_io_driver);
-}
-module_exit(ste_audio_io_exit);
-
-MODULE_AUTHOR("Deepak KARDA <deepak.karda@stericsson.com>");
-MODULE_DESCRIPTION("STE_AUDIO_IO");
-MODULE_LICENSE("GPL v2");
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_dev.h b/drivers/misc/audio_io_dev/ste_audio_io_dev.h
deleted file mode 100644
index bcb9dce3ad2..00000000000
--- a/drivers/misc/audio_io_dev/ste_audio_io_dev.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-#ifndef _AUDIOIO_DEV_H_
-#define _AUDIOIO_DEV_H_
-
-#include <mach/ste_audio_io_ioctl.h>
-#include "ste_audio_io_core.h"
-
-union audioio_cmd_data_t {
- struct audioio_burst_ctrl_t audioio_burst_ctrl;
- struct audioio_fade_ctrl_t audioio_fade_ctrl;
- struct audioio_mute_trnsdr_t audioio_mute_trnsdr;
- struct audioio_gain_ctrl_trnsdr_t audioio_gain_ctrl_trnsdr;
- struct audioio_gain_desc_trnsdr_t audioio_gain_desc_trnsdr;
- struct audioio_support_loop_t audioio_support_loop;
- struct audioio_gain_loop_t audioio_gain_loop;
- struct audioio_get_gain_t audioio_get_gain;
- struct audioio_loop_ctrl_t audioio_loop_ctrl;
- struct audioio_pwr_ctrl_t audioio_pwr_ctrl;
- struct audioio_data_t audioio_data;
- struct audioio_fsbitclk_ctrl_t audioio_fsbitclk_ctrl;
- struct audioio_acodec_pwr_ctrl_t audioio_acodec_pwr_ctrl;
- struct audioio_pseudoburst_ctrl_t audioio_pseudoburst_ctrl;
-};
-
-
-#endif /* _AUDIOIO_DEV_H_ */
-
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_func.c b/drivers/misc/audio_io_dev/ste_audio_io_func.c
deleted file mode 100644
index 7238085938e..00000000000
--- a/drivers/misc/audio_io_dev/ste_audio_io_func.c
+++ /dev/null
@@ -1,4371 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-#include <linux/gpio.h>
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/delay.h>
-#include <linux/jiffies.h>
-#include <mach/ste_audio_io_vibrator.h>
-#include <mach/ste_audio.h>
-#include "ste_audio_io_func.h"
-#include "ste_audio_io_core.h"
-#include "ste_audio_io_ab8500_reg_defs.h"
-#include "ste_audio_io_hwctrl_common.h"
-
-static struct clk *clk_ptr_msp0;
-static int bluetooth_power_up_count;
-static int acodec_reg_dump;
-
-#define NCP_TIMEOUT 200 /* 200 ms */
-/*
- * TODO: Use proper register defines instead of home-made generic ones.
- */
-#define SHIFT_QUARTET0 0
-#define SHIFT_QUARTET1 4
-#define MASK_QUARTET (0xFUL)
-#define MASK_QUARTET1 (MASK_QUARTET << SHIFT_QUARTET1)
-#define MASK_QUARTET0 (MASK_QUARTET << SHIFT_QUARTET0)
-
-/**
- * @brief Modify the specified register
- * @reg Register
- * @mask_set Bit to be set
- * @mask_clear Bit to be cleared
- * @return 0 on success otherwise negative error code
- */
-
-unsigned int ab8500_acodec_modify_write(unsigned int reg, u8 mask_set,
- u8 mask_clear)
-{
- u8 value8, retval = 0;
- value8 = HW_REG_READ(reg);
- /* clear the specified bit */
- value8 &= ~mask_clear;
- /* set the asked bit */
- value8 |= mask_set;
- retval = HW_REG_WRITE(reg, value8);
- return retval;
-}
-
-/**
- * @brief Power up headset on a specific channel
- * @channel_index Channel-index of headset
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_power_up_headset(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
- unsigned long end_time;
-
- /* Check if HS PowerUp request is mono or Stereo channel */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "HS should have mono or stereo channels");
- return -EINVAL;
- }
-
- ste_audio_io_mute_headset(channel_index, dev);
-
- error = HW_ACODEC_MODIFY_WRITE(NCP_ENABLE_HS_AUTOSTART_REG,
- HS_AUTO_EN, 0);
- if (0 != error) {
- dev_err(dev, "NCP fully controlled with EnCpHs bit %d", error);
- return error;
- }
- error = HW_ACODEC_MODIFY_WRITE(NCP_ENABLE_HS_AUTOSTART_REG,
- (EN_NEG_CP|HS_AUTO_EN), 0);
- if (0 != error) {
- dev_err(dev, "Enable Negative Charge Pump %d", error);
- return error;
- }
-
- /* Wait for negative charge pump to start */
- end_time = jiffies + msecs_to_jiffies(NCP_TIMEOUT);
- while (!(HW_REG_READ(IRQ_STATUS_MSB_REG) & NCP_READY_MASK)
- && time_after_eq(end_time, jiffies)) {
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(1);
- }
-
- if (!(HW_REG_READ(IRQ_STATUS_MSB_REG) & NCP_READY_MASK)) {
- error = -EFAULT;
- dev_err(dev, "Negative Charge Pump start error % d", error);
- return error;
- }
-
- /* Enable DA1 for HSL */
- if (channel_index & e_CHANNEL_1) {
-
- /* Power Up HSL driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG,
- EN_HSL_MASK, 0);
- if (0 != error) {
- dev_err(dev, "Power Up HSL Driver %d", error);
- return error;
- }
-
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- if (EN_DA1 & initialVal_DA)
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA1_REG,
- SLOT08_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to DA1 from Slot 08 %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1,
- DA1_TO_HSL, 0);
- if (0 != error) {
- dev_err(dev,
- "DA_IN1 path mixed with sidetone FIR %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- EN_DA1, 0);
- if (0 != error) {
- dev_err(dev, "Power up HSL %d ", error);
- return error;
- }
-
- /* Power Up HSL DAC driver */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG,
- POWER_UP_HSL_DAC, 0);
- if (0 != error) {
- dev_err(dev, "Power Up HSL DAC driver %d", error);
- return error;
- }
-
- /* Power up HSL DAC and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG,
- EN_HSL_MASK, 0);
- if (0 != error) {
- dev_err(dev,
- "Power up HSL DAC and digital path %d",
- error);
- return error;
- }
-
- /*
- * Disable short detection. Pull Down output to ground,
- * Use local oscillator, Gain change without zero cross control
- */
- error = HW_ACODEC_MODIFY_WRITE(SHORT_CIRCUIT_DISABLE_REG,
- HS_SHORT_DIS|HS_PULL_DOWN_EN|HS_OSC_EN|HS_ZCD_DIS, 0);
- if (0 != error) {
- dev_err(dev, "Disable short detection."
- "Pull Down output to ground,Use local oscillator,Gain"
- "change without zero cross control %d", error);
- return error;
- }
- }
-
- /* Enable DA2 for HSR */
- if (channel_index & e_CHANNEL_2) {
-
- /* Power Up HSR driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG,
- EN_HSR_MASK, 0);
- if (0 != error) {
- dev_err(dev, "Power Up HSR Driver %d", error);
- return error;
- }
-
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (EN_DA2 & initialVal_DA)
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA2_REG,
- SLOT09_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev,
- "Data sent to DA2 from Slot 09 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1, DA2_TO_HSR,
- 0);
- if (0 != error) {
- dev_err(dev,
- "DA_IN2 path mixed with sidetone FIR %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- EN_DA2, 0);
- if (0 != error) {
- dev_err(dev, "Power up HSR %d ", error);
- return error;
- }
-
- /* Power Up HSR DAC driver */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG,
- POWER_UP_HSR_DAC, 0);
- if (0 != error) {
- dev_err(dev, "Power Up HSR DAC driver %d", error);
- return error;
- }
-
- /* Power up HSR DAC and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG,
- EN_HSR_MASK, 0);
- if (0 != error) {
- dev_err(dev,
- "Power up HSR DAC and digital path %d",
- error);
- return error;
- }
-
- /*
- * TEST START .havent cleared the bits in power down.Disable short
- * detection. Pull Down output to ground, Use local oscillator,
- * Gain change without zero cross control
- */
-
- error = HW_ACODEC_MODIFY_WRITE(SHORT_CIRCUIT_DISABLE_REG,
- HS_SHORT_DIS|HS_PULL_DOWN_EN|HS_OSC_EN|HS_ZCD_DIS, 0);
- if (0 != error) {
- dev_err(dev, "Disable short detection."
- "Pull Down output to ground, Use local oscillator,"
- "Gain change without zero cross control %d", error);
- return error;
- }
- /* TEST END */
- }
- ste_audio_io_unmute_headset(channel_index, 0, dev);
- dump_acodec_registers(__func__, dev);
- return error;
-}
-
-/**
- * @brief Power down headset on a specific channel
- * @channel_index Channel-index of headset
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_down_headset(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
- unsigned long end_time;
-
- /* Check if HS Power Down request is mono or Stereo channel */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "HS should have mono or stereo channels");
- return -EINVAL;
- }
-
- /* Disable Negative Charge Pump */
- error = HW_ACODEC_MODIFY_WRITE(NCP_ENABLE_HS_AUTOSTART_REG,
- (EN_NEG_CP|HS_AUTO_EN), 0);
- if (0 != error) {
- dev_err(dev, "NCP not fully controlled with EnCpHs bit %d",
- error);
- return error;
- }
- error = HW_ACODEC_MODIFY_WRITE(NCP_ENABLE_HS_AUTOSTART_REG, 0,
- EN_NEG_CP);
- if (0 != error) {
- dev_err(dev, "Disable Negative Charge Pump %d", error);
- return error;
- }
-
- /* Wait for negative charge pump to stop */
- end_time = jiffies + msecs_to_jiffies(NCP_TIMEOUT);
- while ((HW_REG_READ(IRQ_STATUS_MSB_REG) & NCP_READY_MASK)
- && time_after_eq(end_time, jiffies)) {
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(1);
- }
-
- if (HW_REG_READ(IRQ_STATUS_MSB_REG) & NCP_READY_MASK) {
- error = -EFAULT;
- dev_err(dev, "Negative Charge Pump stop error % d", error);
- return error;
- }
-
- if (channel_index & e_CHANNEL_1) {
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (!(initialVal_DA & EN_DA1))
- return 0;
-
- /* Power Down HSL driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG, 0,
- EN_HSL_MASK);
- if (0 != error) {
- dev_err(dev, "Power down HSL Driver %d", error);
- return error;
- }
-
- /* Power Down HSL DAC driver */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, 0,
- POWER_UP_HSL_DAC);
- if (0 != error) {
- dev_err(dev, "Power Up HSL DAC Driver %d", error);
- return error;
- }
-
- /* Power Down HSL DAC and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG, 0,
- EN_HSL_MASK);
- if (0 != error) {
- dev_err(dev,
- "Power down HSL DAC and digital path %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- 0, EN_DA1);
- if (0 != error) {
- dev_err(dev, "Disable DA1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1,
- 0, DA1_TO_HSL);
- if (0 != error) {
- dev_err(dev,
- "Clear DA_IN1 path mixed with sidetone FIR %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA1_REG, 0,
- SLOT08_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev,
- "Data sent to DA1 cleared from Slot 08 %d",
- error);
- return error;
- }
-
-
- }
- /* Enable DA2 for HSR */
-
- if (channel_index & e_CHANNEL_2) {
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (!(initialVal_DA & EN_DA2))
- return 0;
-
- /* Power Down HSR driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG, 0,
- EN_HSR_MASK);
- if (0 != error) {
- dev_err(dev, "Power down HSR Driver %d", error);
- return error;
- }
-
- /* Power Down HSR DAC driver */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, 0,
- POWER_UP_HSR_DAC);
- if (0 != error) {
- dev_err(dev, "Power down HSR DAC Driver %d", error);
- return error;
- }
-
- /* Power Down HSR DAC and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG, 0,
- EN_HSR_MASK);
- if (0 != error) {
- dev_err(dev,
- "Power down HSR DAC and digital path %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- 0, EN_DA2);
- if (0 != error) {
- dev_err(dev, "Disable DA2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1, 0,
- DA2_TO_HSR);
- if (0 != error) {
- dev_err(dev,
- "Clear DA_IN2 path mixed with sidetone FIR %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA2_REG, 0,
- SLOT09_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev,
- "Data sent to DA2 cleared from Slot 09 %d",
- error);
- return error;
- }
-
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-
-/**
- * @brief Mute headset on a specific channel
- * @channel_index Headeset channel-index
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_mute_headset(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- /* Check if HS Mute request is mono or Stereo channel */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "HS should have mono or stereo channels");
- return -EINVAL;
- }
-
- if (channel_index & e_CHANNEL_1) {
- /* Mute HSL */
- error = HW_ACODEC_MODIFY_WRITE(MUTE_HS_EAR_REG,
- EN_HSL_MASK | EN_HSL_DAC_MASK,
- 0);
- if (0 != error) {
- dev_err(dev, "Mute HSL %d", error);
- return error;
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- /* Mute HSR */
- error = HW_ACODEC_MODIFY_WRITE(MUTE_HS_EAR_REG,
- EN_HSR_MASK | EN_HSR_DAC_MASK,
- 0);
- if (0 != error) {
- dev_err(dev, "Mute HSR %d", error);
- return error;
- }
- }
-
- dump_acodec_registers(__func__, dev);
- return error;
-}
-
-/**
- * @brief Unmute headset on a specific channel
- * @channel_index Headeset channel-index
- * @gain Gain index of headset
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_unmute_headset(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- int error = 0;
-
- /* Check if HS UnMute request is mono or Stereo channel */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "HS should have mono or stereo channels");
- return -EINVAL;
- }
-
- if (channel_index & e_CHANNEL_1) {
- /* UnMute HSL */
- error = HW_ACODEC_MODIFY_WRITE(MUTE_HS_EAR_REG, 0,
- EN_HSL_MASK | EN_HSL_DAC_MASK);
- if (0 != error) {
- dev_err(dev, "UnMute HSL %d", error);
- return error;
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- /* UnMute HSR */
- error = HW_ACODEC_MODIFY_WRITE(MUTE_HS_EAR_REG, 0,
- EN_HSR_MASK | EN_HSR_DAC_MASK);
- if (0 != error) {
- dev_err(dev, "UnMute HSR %d", error);
- return error;
- }
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-
-/**
- * @brief Enables fading of headset on a specific channel
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_enable_fade_headset(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(SHORT_CIRCUIT_DISABLE_REG,
- 0, DIS_HS_FAD);
- if (0 != error) {
- dev_err(dev, "Enable fading for HS %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DA1_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for HSL %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(HSL_EAR_DIGITAL_GAIN_REG, 0,
- DIS_DIG_GAIN_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for Digital Gain of HSL %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DA2_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for HSR %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(HSR_DIGITAL_GAIN_REG, 0,
- DIS_DIG_GAIN_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for Digital Gain of HSR %d",
- error);
- return error;
- }
-
- return error;
-}
-/**
- * @brief Disables fading of headset on a specific channel
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_disable_fade_headset(struct device *dev)
-{
- int error = 0;
- error = HW_ACODEC_MODIFY_WRITE(SHORT_CIRCUIT_DISABLE_REG,
- DIS_HS_FAD, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for HS %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DA1_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for HSL %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(HSL_EAR_DIGITAL_GAIN_REG,
- DIS_DIG_GAIN_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for Digital Gain of HSL %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DA2_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for HSR %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(HSR_DIGITAL_GAIN_REG,
- DIS_DIG_GAIN_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for Digital Gain of HSR %d",
- error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power up earpiece
- * @channel_index Channel-index
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_up_earpiece(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
-
- /* Check if Earpiece PowerUp request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "EARPIECE should have mono channel");
- return -EINVAL;
- }
-
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- /* Check if Earpiece is already powered up or DA1 being used by HS */
- if (EN_DA1 & initialVal_DA)
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1,
- DA1_TO_HSL, 0);
- if (0 != error) {
- dev_err(dev,
- "DA_IN1 path mixed with sidetone FIR %d", error);
- return error;
- }
-
- /* Enable DA1 */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA1_REG,
- SLOT08_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to DA1 from Slot 08 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- EN_DA1, 0);
- if (0 != error) {
- dev_err(dev, "Enable DA1 %d", error);
- return error;
- }
-
- /* Power Up EAR class-AB driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG,
- EN_EAR_MASK, 0);
- if (0 != error) {
- dev_err(dev, "Power Up EAR class-AB driver %d", error);
- return error;
- }
-
- /* Power up EAR DAC and digital path */
- error = HW_ACODEC_MODIFY_WRITE(
- DIGITAL_OUTPUT_ENABLE_REG, EN_EAR_MASK, 0);
- if (0 != error) {
- dev_err(dev, "Power up EAR DAC and digital path %d", error);
- return error;
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Power down earpiece
- * @channel_index Channel-index
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_down_earpiece(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
-
- /* Check if Earpiece PowerDown request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "EARPIECE should have mono channel");
- return -EINVAL;
- }
-
- /* Check if Earpiece is already powered down or DA1 being used by HS */
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (!(initialVal_DA & EN_DA1))
- return 0;
-
- /* Power Down EAR class-AB driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG,
- 0, EN_EAR_MASK);
- if (0 != error) {
- dev_err(dev, "Power Down EAR class-AB driver %d", error);
- return error;
- }
-
- /* Power Down EAR DAC and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG,
- 0, EN_EAR_MASK);
- if (0 != error) {
- dev_err(dev,
- "Power Down EAR DAC and digital path %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1, 0, DA1_TO_HSL);
- if (0 != error) {
- dev_err(dev,
- "Clear DA_IN1 path mixed with sidetone FIR %d",
- error);
- return error;
- }
-
- /* Disable DA1 */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- 0, EN_DA1);
- if (0 != error) {
- dev_err(dev, "Disable DA1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA1_REG, 0,
- SLOT08_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev,
- "Data sent to DA1 cleared from Slot 08 %d", error);
- return error;
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Mute earpiece
- * @channel_index Channel-index
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_mute_earpiece(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
-
- /* Check if Earpiece Mute request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "EARPIECE should have mono channel");
- return -EINVAL;
- }
-
- /* Mute Earpiece */
- error = HW_ACODEC_MODIFY_WRITE(MUTE_HS_EAR_REG,
- EN_EAR_MASK | EN_EAR_DAC_MASK, 0);
- if (0 != error) {
- dev_err(dev, "Mute Earpiece %d", error);
- return error;
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Unmute earpiece
- * @channel_index Channel-index
- * @gain Gain index of earpiece
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_unmute_earpiece(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- int error = 0;
-
- /* Check if Earpiece UnMute request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "EARPIECE should have mono channel");
- return -EINVAL;
- }
-
- /* UnMute Earpiece */
- error = HW_ACODEC_MODIFY_WRITE(MUTE_HS_EAR_REG, 0,
- EN_EAR_MASK | EN_EAR_DAC_MASK);
- if (0 != error) {
- dev_err(dev, "UnMute Earpiece %d", error);
- return error;
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Enables fading of earpiece
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_enable_fade_earpiece(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DA1_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for Ear %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(HSL_EAR_DIGITAL_GAIN_REG, 0,
- DIS_DIG_GAIN_FADING);
- if (0 != error) {
- dev_err(dev,
- "Enable fading for Digital Gain of Ear %d", error);
- return error;
- }
-
- return error;
-}
-/**
- * @brief Disables fading of earpiece
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_disable_fade_earpiece(struct device *dev)
-{
- int error = 0;
- error = HW_ACODEC_MODIFY_WRITE(DA1_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for Ear %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power up IHF on a specific channel
- * @channel_index Channel-index
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_power_up_ihf(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
-
- /* Check if IHF PowerUp request is mono or Stereo channel */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "IHF should have mono or stereo channels");
- return -EINVAL;
- }
-
- if (channel_index & e_CHANNEL_1) {
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (EN_DA3 & initialVal_DA)
- return 0;
-
- /* Enable DA3 for IHFL */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA3_REG,
- SLOT10_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to DA3 from Slot 10 %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- EN_DA3, 0);
- if (0 != error) {
- dev_err(dev, "Power up IHFL %d", error);
- return error;
- }
-
- /* Power Up HFL Class-D driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG,
- EN_HFL_MASK, 0);
- if (0 != error) {
- dev_err(dev, "Power Up HFL Class-D Driver %d", error);
- return error;
- }
-
- /* Power up HFL Class D driver and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG,
- EN_HFL_MASK, 0);
- if (0 != error) {
- dev_err(dev,
- "Power up HFL Class D driver & digital path %d",
- error);
- return error;
- }
- }
-
- /* Enable DA4 for IHFR */
- if (channel_index & e_CHANNEL_2) {
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (EN_DA4 & initialVal_DA)
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA4_REG,
- SLOT11_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to DA4 from Slot 11 %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- EN_DA4, 0);
- if (0 != error) {
- dev_err(dev, "Enable DA4 %d", error);
- return error;
- }
-
- /* Power Up HFR Class-D driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG,
- EN_HFR_MASK, 0);
- if (0 != error) {
- dev_err(dev, "Power Up HFR Class-D Driver %d", error);
- return error;
- }
-
- /* Power up HFR Class D driver and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG,
- EN_HFR_MASK, 0);
- if (0 != error) {
- dev_err(dev,
- "Power up HFR Class D driver and digital path %d",
- error);
- return error;
- }
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Power down IHF on a specific channel
- * @channel_index Channel-index
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_down_ihf(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
-
- /* Check if IHF Power Down request is mono or Stereo channel */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "IHF should have mono or stereo channels");
- return -EINVAL;
- }
-
- if (channel_index & e_CHANNEL_1) {
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (!(initialVal_DA & EN_DA3))
- return 0;
-
- /* Power Down HFL Class-D driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG, 0,
- EN_HFL_MASK);
- if (0 != error) {
- dev_err(dev, "Power Down HFL Class-D Driver %d",
- error);
- return error;
- }
-
- /* Power Down HFL Class D driver and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG, 0,
- EN_HFL_MASK);
- if (0 != error) {
- dev_err(dev,
- "Power Down HFL Class D driver & digital path %d",
- error);
- return error;
- }
-
- /* Disable DA3 for IHFL */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- 0, EN_DA3);
- if (0 != error) {
- dev_err(dev, "Disable DA3 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA3_REG, 0,
- SLOT10_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev,
- "Data sent to DA3 cleared from Slot 10 %d",
- error);
- return error;
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- /* Check if IHF is already powered Down */
- if (!(initialVal_DA & EN_DA4))
- return 0;
-
- /* Power Down HFR Class-D Driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG, 0,
- EN_HFR_MASK);
- if (0 != error) {
- dev_err(dev, "Power Down HFR Class-D Driver %d",
- error);
- return error;
- }
-
- /* Power Down HFR Class D driver and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG, 0,
- EN_HFR_MASK);
- if (0 != error) {
- dev_err(dev,
- "Power Down HFR Class D driver & digital path %d",
- error);
- return error;
- }
-
- /* Disable DA4 for IHFR */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- 0, EN_DA4);
- if (0 != error) {
- dev_err(dev, "Disable DA4 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA4_REG, 0,
- SLOT11_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev,
- "Data sent to DA4 cleared from Slot 11 %d",
- error);
- return error;
- }
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Mute IHF on a specific channel
- * @channel_index Channel-index
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_mute_ihf(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
-
- if ((channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- error = ste_audio_io_set_ihf_gain(channel_index, 0, -63,
- 0, dev);
- if (0 != error) {
- dev_err(dev, "Mute ihf %d", error);
- return error;
- }
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Unmute IHF on a specific channel
- * @channel_index Channel-index
- * @gain Gain index of IHF
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_unmute_ihf(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- int error = 0;
-
- if (channel_index & e_CHANNEL_1) {
- error = ste_audio_io_set_ihf_gain(channel_index, 0, gain[0],
- 0, dev);
- if (0 != error) {
- dev_err(dev, "UnMute ihf %d", error);
- return error;
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- error = ste_audio_io_set_ihf_gain(channel_index, 0, gain[1],
- 0, dev);
- if (0 != error) {
- dev_err(dev, "UnMute ihf %d", error);
- return error;
- }
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Enable fading of IHF
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_enable_fade_ihf(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DA3_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for HFL %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DA4_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for HFR %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Disable fading of IHF
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_disable_fade_ihf(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DA3_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for HFL %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DA4_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for HFR %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power up VIBL
- * @channel_index Channel-index of VIBL
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_power_up_vibl(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
-
- /* Check if VibL PowerUp request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "VibL should have mono channel");
- return -EINVAL;
- }
-
- /* Try to allocate vibrator for audio left channel */
- error = ste_audioio_vibrator_alloc(STE_AUDIOIO_CLIENT_AUDIO_L,
- STE_AUDIOIO_CLIENT_AUDIO_R | STE_AUDIOIO_CLIENT_AUDIO_L);
- if (error) {
- dev_err(dev, " Couldn't allocate vibrator %d, client %d",
- error, STE_AUDIOIO_CLIENT_AUDIO_L);
- return error;
- }
-
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- /* Check if VibL is already powered up */
- if (initialVal_DA & EN_DA5)
- return 0;
-
- /* Enable DA5 for vibl */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA5_REG,
- SLOT12_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to DA5 from Slot 12 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- EN_DA5, 0);
- if (0 != error) {
- dev_err(dev, "Enable DA5 for VibL %d", error);
- return error;
- }
-
- /* Power Up VibL Class-D driver */
- error = HW_ACODEC_MODIFY_WRITE(
- ANALOG_OUTPUT_ENABLE_REG, EN_VIBL_MASK, 0);
- if (0 != error) {
- dev_err(dev, "Power Up VibL Class-D Driver %d", error);
- return error;
- }
-
- /* Power up VibL Class D driver and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG,
- EN_VIBL_MASK, 0);
- if (0 != error) {
- dev_err(dev,
- "Power up VibL Class D driver and digital path %d",
- error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power down VIBL
- * @channel_index Channel-index of VIBL
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_down_vibl(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
-
- /* Check if VibL Power Down request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "VibL should have mono channel");
- return -EINVAL;
- }
-
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- /* Check if VibL is already powered down */
- if (!(initialVal_DA & EN_DA5))
- return 0;
-
-
- /* Power Down VibL Class-D driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG,
- 0, EN_VIBL_MASK);
- if (0 != error) {
- dev_err(dev, "Power Down VibL Class-D Driver %d", error);
- return error;
- }
-
- /* Power Down VibL Class D driver and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG, 0,
- EN_VIBL_MASK);
- if (0 != error) {
- dev_err(dev,
- "Power Down VibL Class D driver & digital path %d",
- error);
- return error;
- }
-
- /* Disable DA5 for VibL */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- 0, EN_DA5);
- if (0 != error) {
- dev_err(dev, "Disable DA5 for VibL %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA5_REG, 0,
- SLOT12_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev,
- "Data sent to DA5 cleared from Slot 12 %d", error);
- return error;
- }
-
- /* Release vibrator */
- ste_audioio_vibrator_release(STE_AUDIOIO_CLIENT_AUDIO_L);
-
- return error;
-}
-/**
- * @brief Enable fading of VIBL
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_enable_fade_vibl(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DA5_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for VibL %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Disable fading of VIBL
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_disable_fade_vibl(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DA5_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for VibL %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power up VIBR
- * @channel_index Channel-index of VIBR
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_up_vibr(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
-
- /* Check if VibR PowerUp request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "VibR should have mono channel");
- return -EINVAL;
- }
-
- /* Try to allocate vibrator for audio right channel */
- error = ste_audioio_vibrator_alloc(STE_AUDIOIO_CLIENT_AUDIO_R,
- STE_AUDIOIO_CLIENT_AUDIO_R | STE_AUDIOIO_CLIENT_AUDIO_L);
- if (error) {
- dev_err(dev, " Couldn't allocate vibrator %d, client %d",
- error, STE_AUDIOIO_CLIENT_AUDIO_R);
- return error;
- }
-
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- /* Check if VibR is already powered up */
- if (initialVal_DA & EN_DA6)
- return 0;
-
- /* Enable DA6 for vibr */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA6_REG,
- SLOT13_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to DA5 from Slot 13 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(
- DIGITAL_DA_CHANNELS_ENABLE_REG, EN_DA6, 0);
- if (0 != error) {
- dev_err(dev, "Enable DA6 for VibR %d", error);
- return error;
- }
-
- /* Power Up VibR Class-D driver */
- error = HW_ACODEC_MODIFY_WRITE(
- ANALOG_OUTPUT_ENABLE_REG, EN_VIBR_MASK, 0);
- if (0 != error) {
- dev_err(dev, "Power Up VibR Class-D Driver %d", error);
- return error;
- }
-
- /* Power up VibR Class D driver and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG,
- EN_VIBR_MASK, 0);
- if (0 != error) {
- dev_err(dev,
- "Power up VibR Class D driver & digital path %d",
- error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power down VIBR
- * @channel_index Channel-index of VIBR
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_down_vibr(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_DA = 0;
-
- /* Check if VibR PowerDown request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "VibR should have mono channel");
- return -EINVAL;
- }
-
- initialVal_DA = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- /* Check if VibR is already powered down */
- if (!(initialVal_DA & EN_DA6))
- return 0;
-
-
- /* Power Down VibR Class-D driver */
- error = HW_ACODEC_MODIFY_WRITE(ANALOG_OUTPUT_ENABLE_REG, 0,
- EN_VIBR_MASK);
- if (0 != error) {
- dev_err(dev, "Power Down VibR Class-D Driver %d", error);
- return error;
- }
-
- /* Power Down VibR Class D driver and digital path */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_OUTPUT_ENABLE_REG, 0,
- EN_VIBR_MASK);
- if (0 != error) {
- dev_err(dev,
- "Power Down VibR Class D driver & digital path %d",
- error);
- return error;
- }
-
- /* Disable DA6 for VibR */
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_DA_CHANNELS_ENABLE_REG,
- 0, EN_DA6);
- if (0 != error) {
- dev_err(dev, "Disable DA6 for VibR %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA6_REG, 0,
- SLOT13_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev, "Data sent to DA5 cleared from Slot 13 %d",
- error);
- return error;
- }
-
- /* Release vibrator */
- ste_audioio_vibrator_release(STE_AUDIOIO_CLIENT_AUDIO_R);
-
- return error;
-}
-/**
- * @brief Enable fading of VIBR
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_enable_fade_vibr(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DA6_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for VibR %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Disable fading of VIBR
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_disable_fade_vibr(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DA6_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for VibR %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power up MIC1A
- * @channel_index Channel-index of MIC1A
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_up_mic1a(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- /* Check if Mic1 PowerUp request is mono channel */
-
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "MIC1 should have mono channel");
- return -EINVAL;
- }
-
- initialVal_AD = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- /* Check if Mic1 is already powered up or used by Dmic3 */
- if (EN_AD3 & initialVal_AD)
- return 0;
-
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG, DATA_FROM_AD_OUT3);
- if (0 != error) {
- dev_err(dev, "Slot 02 outputs data from AD_OUT3 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- EN_AD3, 0);
- if (0 != error) {
- dev_err(dev, "Enable AD3 for Mic1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1, 0,
- SEL_DMIC3_FOR_AD_OUT3);
- if (0 != error) {
- dev_err(dev, "Select ADC1 for AD_OUT3 %d", error);
- return error;
- }
-
- /* Select MIC1A */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, 0,
- SEL_MIC1B_CLR_MIC1A);
- if (0 != error) {
- dev_err(dev, "Select MIC1A %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, EN_MIC1, 0);
- if (0 != error) {
- dev_err(dev, "Power up Mic1 %d", error);
- return error;
- }
-
- /* Power Up ADC1 */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, POWER_UP_ADC1, 0);
- if (0 != error) {
- dev_err(dev, "Power Up ADC1 %d", error);
- return error;
- }
-
-return error;
-}
-/**
- * @brief Power down MIC1A
- * @channel_index Channel-index of MIC1A
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_power_down_mic1a(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- /* Check if Mic1 PowerDown request is mono channel */
-
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "Mic1 should have mono channel");
- return -EINVAL;
- }
-
- initialVal_AD = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- /* Check if Mic1 is already powered down or used by Dmic3 */
- if (!(initialVal_AD & EN_AD3))
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, 0, EN_MIC1);
- if (0 != error) {
- dev_err(dev, "Power Down Mic1 %d", error);
- return error;
- }
-
- /* Power Down ADC1 */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, 0, POWER_UP_ADC1);
- if (0 != error) {
- dev_err(dev, "Power Down ADC1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- 0, EN_AD3);
- if (0 != error) {
- dev_err(dev, "Disable AD3 for Mic1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT2_3_REG, 0,
- DATA_FROM_AD_OUT3);
- if (0 != error) {
- dev_err(dev, "Slot 02 outputs data cleared from AD_OUT3 %d",
- error);
- return error;
- }
- return error;
-}
-/**
- * @brief Mute MIC1A
- * @channel_index Channel-index of MIC1A
- * @return 0 on success otherwise negative error code
- */
-
-
-int ste_audio_io_mute_mic1a(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "MIC1 should have mono channel");
- return -EINVAL;
- }
-
- /* Mute mic1 */
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, MUT_MIC1, 0);
- if (0 != error) {
- dev_err(dev, "Mute Mic1 %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Unmute MIC1A
- * @channel_index Channel-index of MIC1A
- * @gain Gain index of MIC1A
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_unmute_mic1a(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- int error = 0;
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "Mic1 should have mono channel");
- return -EINVAL;
- }
- /* UnMute mic1 */
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, 0, MUT_MIC1);
- if (0 != error) {
- dev_err(dev, "UnMute Mic1 %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Enable fading of MIC1A
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_enable_fade_mic1a(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(AD3_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for Mic1 %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Disable fading of MIC1A
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_disable_fade_mic1a(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(AD3_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for Mic1 %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power up MIC1B
- * @channel_index Channel-index of MIC1B
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_power_up_mic1b(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error;
- unsigned char initialVal_AD = 0;
-
- error = regulator_enable(regulator_avsource);
- if (0 != error) {
- dev_err(dev, "regulator avsource enable failed = %d", error);
- return error;
- }
- /* GPIO35 settings to enable MIC 1B input instead of TVOUT */
- error = HW_ACODEC_MODIFY_WRITE(AB8500_GPIO_DIR5_REG,
- GPIO35_DIR_OUTPUT, 0);
- if (0 != error) {
- dev_err(dev, "setting AB8500_GPIO_DIR5_REG reg %d", error);
- return error;
- }
- error = HW_ACODEC_MODIFY_WRITE(AB8500_GPIO_OUT5_REG,
- GPIO35_DIR_OUTPUT, 0);
- if (0 != error) {
- dev_err(dev, "setting AB8500_GPIO_OUT5_REG reg %d", error);
- return error;
- }
-
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "Mic1 should have mono channel");
- return -EINVAL;
- }
-
- initialVal_AD = HW_REG_READ(DIGITAL_AD_CHANNELS_ENABLE_REG);
- /* Check if Mic1 is already powered up or used by Dmic3 */
- if (EN_AD3 & initialVal_AD)
- return 0;
-
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG, DATA_FROM_AD_OUT3);
- if (0 != error) {
- dev_err(dev, "Slot 02 outputs data from AD_OUT3 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- EN_AD3, 0);
- if (0 != error) {
- dev_err(dev, "Enable AD3 for Mic1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1, 0,
- SEL_DMIC3_FOR_AD_OUT3);
- if (0 != error) {
- dev_err(dev, "Select ADC1 for AD_OUT3 %d", error);
- return error;
- }
-
- /* Select MIC1B */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, SEL_MIC1B_CLR_MIC1A,
- 0);
- if (0 != error) {
- dev_err(dev, "Select MIC1B %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, EN_MIC1, 0);
- if (0 != error) {
- dev_err(dev, "Power up Mic1 %d", error);
- return error;
- }
-
- /* Power Up ADC1 */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, POWER_UP_ADC1, 0);
- if (0 != error) {
- dev_err(dev, "Power Up ADC1 %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power down MIC1B
- * @channel_index Channel-index of MIC1B
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_down_mic1b(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error;
- unsigned char initialVal_AD = 0;
-
- /* Check if Mic1 PowerDown request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "Mic1 should have mono channel");
- return -EINVAL;
- }
-
- initialVal_AD = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- /* Check if Mic1 is already powered down or used by Dmic3 */
- if (!(initialVal_AD & EN_AD3))
- return 0;
-
-
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, 0, EN_MIC1);
- if (0 != error) {
- dev_err(dev, "Power Down Mic1 %d", error);
- return error;
- }
-
- /* Power Down ADC1 */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, 0, POWER_UP_ADC1);
- if (0 != error) {
- dev_err(dev, "Power Down ADC1 %d", error);
- return error;
- }
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG, 0,
- EN_AD3);
- if (0 != error) {
- dev_err(dev, "Disable AD3 for Mic1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT2_3_REG, 0,
- DATA_FROM_AD_OUT3);
- if (0 != error) {
- dev_err(dev, "Slot 02 outputs data cleared from AD_OUT3 %d",
- error);
- return error;
- }
-
- /* undo GPIO35 settings */
- error = HW_ACODEC_MODIFY_WRITE(AB8500_GPIO_DIR5_REG,
- 0, GPIO35_DIR_OUTPUT);
- if (0 != error) {
- dev_err(dev, "resetting AB8500_GPIO_DIR5_REG reg %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AB8500_GPIO_OUT5_REG,
- 0, GPIO35_DIR_OUTPUT);
- if (0 != error) {
- dev_err(dev, "resetting AB8500_GPIO_OUT5_REG reg %d", error);
- return error;
- }
-
- error = regulator_disable(regulator_avsource);
- if (0 != error) {
- dev_err(dev, "regulator avsource disable failed = %d", error);
- return error;
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-
-/**
- * @brief enable hardware loop of mic1b
- * @chnl_index Channel-index of MIC1B
- * @hw_loop type of hardware loop
- * @loop_gain gain value to be used in hardware loop
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_enable_loop_mic1b(enum AUDIOIO_CH_INDEX chnl_index,
- enum AUDIOIO_HAL_HW_LOOPS hw_loop,
- int loop_gain, struct device *dev,
- void *cookie)
-{
- int error;
- struct transducer_context_t *trnsdr;
- trnsdr = (struct transducer_context_t *)cookie;
-
- switch (hw_loop) {
- /* Check if HSL is active */
- case AUDIOIO_SIDETONE_LOOP:
- if (!(trnsdr[HS_CH].is_power_up[e_CHANNEL_1])
- && !(trnsdr[EAR_CH].is_power_up[e_CHANNEL_1])) {
- error = -EFAULT;
- dev_err(dev,
- "HS or Earpiece not powered up error = %d",
- error);
- return error;
- }
-
- /* For ch1, Power On STFIR1, data comes from AD3*/
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG2,
- FIR1_FROMAD3, 0);
- if (error)
- dev_err(dev, "FIR1 data comes from AD_OUT3 %d",
- error);
- error = HW_REG_WRITE(SIDETONE_FIR1_GAIN_REG, loop_gain);
- if (error) {
- dev_err(dev,
- "Set FIR1 Gain index = %d",
- error);
- return error;
- }
- break;
- default:
- error = -EINVAL;
- dev_err(dev, "loop not supported %d", error);
- }
- return error;
-}
-
-/**
- * @brief disable hardware loop of mic1b
- * @chnl_index Channel-index of MIC1B
- * @hw_loop type of hardware loop
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_disable_loop_mic1b(enum AUDIOIO_CH_INDEX chnl_index,
- enum AUDIOIO_HAL_HW_LOOPS hw_loop,
- struct device *dev, void *cookie)
-{
- int error;
- struct transducer_context_t *trnsdr;
- trnsdr = (struct transducer_context_t *)cookie;
-
- switch (hw_loop) {
- /* Check if HSL is active */
- case AUDIOIO_SIDETONE_LOOP:
- if (!trnsdr[HS_CH].is_power_up[e_CHANNEL_1]
- && !trnsdr[EAR_CH].is_power_up[e_CHANNEL_1]) {
- error = -EFAULT;
- dev_err(dev, "HS or Earpiece not powered up, err = %d",
- error);
- return error;
- }
-
- /* For ch1, Power down STFIR1, data comes from AD3*/
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG2,
- 0, FIR1_FROMAD3);
- if (error) {
- dev_err(dev, "FIR1 data comes from AD_OUT3, err = %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(FILTERS_CONTROL_REG,
- 0, FIR_FILTERCONTROL);
- if (error) {
- dev_err(dev,
- "ST FIR Filters disable failed %d", error);
- return error;
- }
- break;
- default:
- error = -EINVAL;
- dev_err(dev, "loop not supported %d", error);
- }
- return error;
-}
-
-/**
- * @brief Power up MIC2
- * @channel_index Channel-index of MIC2
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_power_up_mic2(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- /* Check if Mic2 PowerUp request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "Mic2 should have mono channel");
- return -EINVAL;
- }
-
- initialVal_AD = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- /* Check if Mic2 is already powered up or used by LINR or Dmic2 */
- if (EN_AD2 & initialVal_AD)
- return 0;
-
-
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG, DATA_FROM_AD_OUT2);
- if (0 != error) {
- dev_err(dev, "Slot 01 outputs data from AD_OUT2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG, EN_AD2,
- 0);
- if (0 != error) {
- dev_err(dev, "Enable AD2 for Mic2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1, 0,
- SEL_DMIC2_FOR_AD_OUT2);
- if (0 != error) {
- dev_err(dev, "Select ADC2 for AD_OUT2 %d", error);
- return error;
- }
-
- /* Select mic2 */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, 0,
- SEL_LINR_CLR_MIC2);
- if (0 != error) {
- dev_err(dev, "Select MIC2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, EN_MIC2, 0);
- if (0 != error) {
- dev_err(dev, "Power up Mic2 %d", error);
- return error;
- }
-
- /* Power Up ADC1 */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, POWER_UP_ADC2, 0);
- if (0 != error) {
- dev_err(dev, "Power Up ADC2 %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power down MIC2
- * @channel_index Channel-index of MIC2
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_power_down_mic2(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- /* Check if Mic2 PowerDown request is mono channel */
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "Mic2 should have mono channel");
- return -EINVAL;
- }
-
- initialVal_AD = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
-
- /* Check if Mic2 is already powered down or used by LINR or Dmic2 */
- if (!(initialVal_AD & EN_AD2))
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, 0, EN_MIC2);
- if (0 != error) {
- dev_err(dev, "Power Down Mic2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- 0, EN_AD2);
- if (0 != error) {
- dev_err(dev, "Disable AD2 for Mic2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG, 0,
- (DATA_FROM_AD_OUT2<<4));
- if (0 != error) {
- dev_err(dev, "Slot 01 outputs data cleared from AD_OUT2 %d",
- error);
- return error;
- }
- return error;
-}
-/**
- * @brief Mute MIC2
- * @channel_index Channel-index of MIC2
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_mute_mic2(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "Mic2 should have mono channel");
- return -EINVAL;
- }
-
- /* Mute mic2 */
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, MUT_MIC2, 0);
- if (0 != error) {
- dev_err(dev, "Mute Mic2 %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Unmute MIC2
- * @channel_index Channel-index of MIC2
- * @gain Gain index of MIC2
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_unmute_mic2(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- int error = 0;
- if (!(channel_index & e_CHANNEL_1)) {
- dev_err(dev, "Mic2 should have mono channel");
- return -EINVAL;
- }
- /* UnMute mic2 */
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, 0, MUT_MIC2);
- if (0 != error) {
- dev_err(dev, "UnMute Mic2 %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Enable fading of MIC2
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_enable_fade_mic2(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(AD2_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for Mic2 %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Disable fading of MIC2
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_disable_fade_mic2(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(AD2_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for Mic2 %d", error);
- return error;
- }
-
- return error;
-}
-/**
- * @brief Power up LinIn
- * @channel_index Channel-index of LinIn
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_power_up_lin(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- /* Check if LinIn PowerUp request is mono or Stereo channel */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "LinIn should have mono or stereo channels");
- return -EINVAL;
- }
-
- /* Enable AD1 for LinInL */
- if (channel_index & e_CHANNEL_1) {
- initialVal_AD = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (initialVal_AD & EN_AD1)
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG,
- DATA_FROM_AD_OUT1, 0);
- if (0 != error) {
- dev_err(dev, "Slot 00 outputs data from AD_OUT1 %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- EN_AD1, 0);
- if (0 != error) {
- dev_err(dev, "Enable AD1 for LinInL %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1, 0,
- SEL_DMIC1_FOR_AD_OUT1);
- if (0 != error) {
- dev_err(dev, "Select ADC3 for AD_OUT1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(
- LINE_IN_MIC_CONF_REG, EN_LIN_IN_L, 0);
- if (0 != error) {
- dev_err(dev, "Power up LinInL %d", error);
- return error;
- }
-
- /* Power Up ADC3 */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG,
- POWER_UP_ADC3, 0);
- if (0 != error) {
- dev_err(dev, "Power Up ADC3 %d", error);
- return error;
- }
- }
- /* Enable AD2 for LinInR */
-
- if (channel_index & e_CHANNEL_2) {
- initialVal_AD = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (EN_AD2 & initialVal_AD)
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG,
- (DATA_FROM_AD_OUT2<<4), 0);
- if (0 != error) {
- dev_err(dev, "Slot 01 outputs data from AD_OUT2 %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- EN_AD2, 0);
- if (0 != error) {
- dev_err(dev, "Enable AD2 LinInR %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1, 0,
- SEL_DMIC2_FOR_AD_OUT2);
- if (0 != error) {
- dev_err(dev, "Select ADC2 for AD_OUT2 %d", error);
- return error;
- }
-
- /* Select LinInR */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG,
- SEL_LINR_CLR_MIC2, 0);
- if (0 != error) {
- dev_err(dev, "Select LinInR %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG,
- EN_LIN_IN_R, 0);
- if (0 != error) {
- dev_err(dev, "Power up LinInR %d", error);
- return error;
- }
-
- /* Power Up ADC2 */
- error = HW_ACODEC_MODIFY_WRITE(
- ADC_DAC_ENABLE_REG, POWER_UP_ADC2, 0);
- if (0 != error) {
- dev_err(dev, "Power Up ADC2 %d", error);
- return error;
- }
- }
- return error;
-}
-/**
- * @brief Power down LinIn
- * @channel_index Channel-index of LinIn
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_power_down_lin(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- /* Check if LinIn PowerDown request is mono or Stereo channel */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "LinIn should have mono or stereo channels");
- return -EINVAL;
- }
-
- /* Enable AD1 for LinInL */
- if (channel_index & e_CHANNEL_1) {
- initialVal_AD = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (!(initialVal_AD & EN_AD1))
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, 0,
- EN_LIN_IN_L);
- if (0 != error) {
- dev_err(dev, "Power Down LinInL %d", error);
- return error;
- }
-
- /* Power Down ADC3 */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, 0,
- POWER_UP_ADC3);
- if (0 != error) {
- dev_err(dev, "Power Down ADC3 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- 0, EN_AD1);
- if (0 != error) {
- dev_err(dev, "Disable AD1 for LinInL %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG, 0,
- DATA_FROM_AD_OUT1);
- if (0 != error) {
- dev_err(dev,
- "Slot 00 outputs data cleared from AD_OUT1 %d",
- error);
- return error;
- }
- }
-
- /* Enable AD2 for LinInR */
- if (channel_index & e_CHANNEL_2) {
- initialVal_AD = HW_REG_READ(DIGITAL_DA_CHANNELS_ENABLE_REG);
- if (!(initialVal_AD & EN_AD2))
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, 0,
- EN_LIN_IN_R);
- if (0 != error) {
- dev_err(dev, "Power Down LinInR %d", error);
- return error;
- }
-
- /* Power Down ADC2 */
- error = HW_ACODEC_MODIFY_WRITE(ADC_DAC_ENABLE_REG, 0,
- POWER_UP_ADC2);
- if (0 != error) {
- dev_err(dev, "Power Down ADC2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- 0, EN_AD2);
- if (0 != error) {
- dev_err(dev, "Disable AD2 LinInR %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG, 0,
- (DATA_FROM_AD_OUT2<<4));
- if (0 != error) {
- dev_err(dev,
- "Slot01 outputs data cleared from AD_OUT2 %d",
- error);
- return error;
- }
- }
- return error;
-}
-/**
- * @brief Mute LinIn
- * @channel_index Channel-index of LinIn
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_mute_lin(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
-
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "LinIn should have mono or stereo channels");
- return -EINVAL;
- }
-
- if (channel_index & e_CHANNEL_1) {
- /* Mute LinInL */
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG,
- MUT_LIN_IN_L, 0);
- if (0 != error) {
- dev_err(dev, "Mute LinInL %d", error);
- return error;
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- /* Mute LinInR */
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG,
- MUT_LIN_IN_R,
- 0);
- if (0 != error) {
- dev_err(dev, "Mute LinInR %d", error);
- return error;
- }
- }
- return error;
-}
-/**
- * @brief Unmute LinIn
- * @channel_index Channel-index of LinIn
- * @gain Gain index of LinIn
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_unmute_lin(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- int error = 0;
-
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "LinIn should have mono or stereo channels");
- return -EINVAL;
- }
-
- if (channel_index & e_CHANNEL_1) {
- /* UnMute LinInL */
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, 0,
- MUT_LIN_IN_L);
- if (0 != error) {
- dev_err(dev, "UnMute LinInL %d", error);
- return error;
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- /* UnMute LinInR */
- error = HW_ACODEC_MODIFY_WRITE(LINE_IN_MIC_CONF_REG, 0,
- MUT_LIN_IN_R);
- if (0 != error) {
- dev_err(dev, "UnMute LinInR %d", error);
- return error;
- }
- }
- return error;
-}
-/**
- * @brief Enables fading of LinIn
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_enable_fade_lin(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(AD1_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for LinInL %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD2_DIGITAL_GAIN_REG, 0, DIS_FADING);
- if (0 != error) {
- dev_err(dev, "Enable fading for LinInR %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Disables fading of LinIn
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_disable_fade_lin(struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(AD1_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for LinInL %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD2_DIGITAL_GAIN_REG, DIS_FADING, 0);
- if (0 != error) {
- dev_err(dev, "Disable fading for LinInR %d", error);
- return error;
- }
- return error;
-}
-/**
- * @brief Power Up DMIC12 LinIn
- * @channel_index Channel-index of DMIC12
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_power_up_dmic12(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- /* Check if DMic12 request is mono or Stereo */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "DMic12 does not support more than 2 channels");
-
- return -EINVAL;
- }
-
- /* Setting Direction for GPIO pins on AB8500 */
- error = HW_REG_WRITE(AB8500_GPIO_DIR4_REG, GPIO27_DIR_OUTPUT);
- if (0 != error) {
- dev_err(dev, "Setting Direction for GPIO pins on AB8500 %d",
- error);
- return error;
- }
-
- /* Enable AD1 for Dmic1 */
- if (channel_index & e_CHANNEL_1) {
- /* Check if DMIC1 is already powered up or used by LinInL */
- initialVal_AD = HW_REG_READ(DIGITAL_AD_CHANNELS_ENABLE_REG);
- if (initialVal_AD & EN_AD1)
- return 0;
-
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG,
- DATA_FROM_AD_OUT1);
- if (0 != error) {
- dev_err(dev, "Slot 00 outputs data from AD_OUT1 %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- EN_AD1, 0);
- if (0 != error) {
- dev_err(dev, "Enable AD1 for DMIC1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1,
- SEL_DMIC1_FOR_AD_OUT1, 0);
- if (0 != error) {
- dev_err(dev, "Select DMIC1 for AD_OUT1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DMIC_ENABLE_REG, EN_DMIC1, 0);
- if (0 != error) {
- dev_err(dev, "Enable DMIC1 %d", error);
- return error;
- }
- }
- /* Enable AD2 for Dmic2 */
-
- if (channel_index & e_CHANNEL_2) {
- /* Check if DMIC2 is already powered up
- or used by Mic2 or LinInR */
- initialVal_AD = HW_REG_READ(DIGITAL_AD_CHANNELS_ENABLE_REG);
- if (initialVal_AD & EN_AD2)
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG,
- (DATA_FROM_AD_OUT2<<4), 0);
- if (0 != error) {
- dev_err(dev, "Slot 01 outputs data from AD_OUT2 %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- EN_AD2, 0);
- if (0 != error) {
- dev_err(dev, "Enable AD2 for DMIC2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1,
- SEL_DMIC2_FOR_AD_OUT2, 0);
- if (0 != error) {
- dev_err(dev, "Select DMIC2 for AD_OUT2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DMIC_ENABLE_REG, EN_DMIC2, 0);
- if (0 != error) {
- dev_err(dev, "Enable DMIC2 %d", error);
- return error;
- }
- }
-
- return error;
-}
-/**
- * @brief Power down DMIC12 LinIn
- * @channel_index Channel-index of DMIC12
- * @return 0 on success otherwise negative error code
- */
-
-
-int ste_audio_io_power_down_dmic12(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- /* Check if DMic12 request is mono or Stereo or multi channel */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "DMic12 does not support more than 2 channels");
-
- return -EINVAL;
- }
-
- /* Setting Direction for GPIO pins on AB8500 */
- error = HW_ACODEC_MODIFY_WRITE(AB8500_GPIO_DIR4_REG, 0,
- GPIO27_DIR_OUTPUT);
- if (0 != error) {
- dev_err(dev, "Clearing Direction for GPIO pins on AB8500 %d",
- error);
- return error;
- }
- /* Enable AD1 for Dmic1 */
- if (channel_index & e_CHANNEL_1) {
- /* Check if DMIC1 is already powered Down or used by LinInL */
- initialVal_AD = HW_REG_READ(DIGITAL_AD_CHANNELS_ENABLE_REG);
- if (!(initialVal_AD & EN_AD1))
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DMIC_ENABLE_REG, 0, EN_DMIC1);
- if (0 != error) {
- dev_err(dev, "Enable DMIC1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- 0, EN_AD1);
- if (0 != error) {
- dev_err(dev, "Disable AD1 for DMIC1 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG, 0,
- DATA_FROM_AD_OUT1);
- if (0 != error) {
- dev_err(dev,
- "Slot 00 outputs data cleared from AD_OUT1 %d",
- error);
- return error;
- }
- }
-
- /* Enable AD2 for Dmic2 */
- if (channel_index & e_CHANNEL_2) {
- /* MIC2 is already powered Down or used by Mic2 or LinInR */
- initialVal_AD = HW_REG_READ(DIGITAL_AD_CHANNELS_ENABLE_REG);
- if (!(initialVal_AD & EN_AD2))
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DMIC_ENABLE_REG, 0, EN_DMIC2);
- if (0 != error) {
- dev_err(dev, "Enable DMIC2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- 0, EN_AD2);
- if (0 != error) {
- dev_err(dev, "Disable AD2 for DMIC2 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT0_1_REG, 0,
- (DATA_FROM_AD_OUT2<<4));
- if (0 != error) {
- dev_err(dev,
- "Slot 01 outputs data cleared from AD_OUT2 %d",
- error);
- return error;
- }
- }
- return error;
-}
-/**
- * @brief Get headset gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-
-
-int ste_audio_io_get_headset_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
- int i = 0;
- if (gain_index == 0) {
-
- *left_volume = 0 - HW_REG_READ(DA1_DIGITAL_GAIN_REG);
- *right_volume = 0 - HW_REG_READ(DA2_DIGITAL_GAIN_REG);
-
- }
-
- if (gain_index == 1) {
- *left_volume = 8 - HW_REG_READ(HSL_EAR_DIGITAL_GAIN_REG);
- *right_volume = 8 - HW_REG_READ(HSR_DIGITAL_GAIN_REG);
- }
-
- if (gain_index == 2) {
- i = (HW_REG_READ(ANALOG_HS_GAIN_REG)>>4);
- *left_volume = hs_analog_gain_table[i];
- i = (HW_REG_READ(ANALOG_HS_GAIN_REG) & MASK_QUARTET0);
- *right_volume = hs_analog_gain_table[i];
- }
- return 0;
-}
-/**
- * @brief Get earpiece gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-
-
-int ste_audio_io_get_earpiece_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
- if (0 == gain_index)
- *left_volume = 0 - HW_REG_READ(DA1_DIGITAL_GAIN_REG);
- if (1 == gain_index)
- *left_volume = 8 - HW_REG_READ(HSL_EAR_DIGITAL_GAIN_REG);
- return 0;
-}
-/**
- * @brief Get ihf gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_get_ihf_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
-
- *left_volume = 0 - HW_REG_READ(DA3_DIGITAL_GAIN_REG);
- *right_volume = 0 - HW_REG_READ(DA4_DIGITAL_GAIN_REG);
- return 0;
-}
-/**
- * @brief Get vibl gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_get_vibl_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
-
- *left_volume = 0 - HW_REG_READ(DA5_DIGITAL_GAIN_REG);
-
- return 0;
-}
-/**
- * @brief Get vibr gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-
-
-int ste_audio_io_get_vibr_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
-
- *right_volume = 0 - HW_REG_READ(DA6_DIGITAL_GAIN_REG);
- return 0;
-}
-/**
- * @brief Get MIC1A & MIC2A gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-
-
-int ste_audio_io_get_mic1a_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
- if (gain_index == 0)
- *left_volume = 31 - HW_REG_READ(AD3_DIGITAL_GAIN_REG);
- if (gain_index == 1)
- *left_volume = HW_REG_READ(ANALOG_MIC1_GAIN_REG);
-
- return 0;
-}
-/**
- * @brief Get MIC2 gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_get_mic2_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
- if (gain_index == 0)
- *left_volume = 31 - HW_REG_READ(AD2_DIGITAL_GAIN_REG);
- if (gain_index == 1)
- *left_volume = HW_REG_READ(ANALOG_MIC2_GAIN_REG);
-
- return 0;
-}
-/**
- * @brief Get Lin IN gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_get_lin_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
- if (gain_index == 0) {
- *left_volume = 31 - HW_REG_READ(AD1_DIGITAL_GAIN_REG);
- *right_volume = 31 - HW_REG_READ(AD2_DIGITAL_GAIN_REG);
- }
-
- if (gain_index == 0) {
- *left_volume = 2 * ((HW_REG_READ(ANALOG_HS_GAIN_REG)>>4) - 5);
- *right_volume = 2 * (HW_REG_READ(ANALOG_LINE_IN_GAIN_REG) - 5);
- }
-
- return 0;
-}
-/**
- * @brief Get DMIC12 gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_get_dmic12_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
-
- *left_volume = HW_REG_READ(AD1_DIGITAL_GAIN_REG);
-
- *right_volume = HW_REG_READ(AD2_DIGITAL_GAIN_REG);
-
- return 0;
-}
-/**
- * @brief Get DMIC34 gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_get_dmic34_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
- *left_volume = HW_REG_READ(AD3_DIGITAL_GAIN_REG);
- *right_volume = HW_REG_READ(AD4_DIGITAL_GAIN_REG);
-
- return 0;
-}
-/**
- * @brief Get DMIC56 gain
- * @left_volume
- * @right_volume
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_get_dmic56_gain(int *left_volume, int *right_volume,
- u16 gain_index, struct device *dev)
-{
- *left_volume = HW_REG_READ(AD5_DIGITAL_GAIN_REG);
-
- *right_volume = HW_REG_READ(AD6_DIGITAL_GAIN_REG);
- return 0;
-}
-/**
- * @brief Set gain of headset along a specified channel
- * @channel_index Channel-index of headset
- * @gain_index Gain index of headset
- * @gain_value Gain value of headset
- * @linear
- * @return 0 on success otherwise negative error code
- */
-
-
-int ste_audio_io_set_headset_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev)
-{
- int error = 0;
- unsigned char initial_val = 0;
- int i = 0;
- int acodec_device_id;
-
- acodec_device_id = abx500_get_chip_id(dev);
-
- if (channel_index & e_CHANNEL_1) {
- if (gain_index == 0) {
- int gain = 0;
- gain = 0 - gain_value;
-
- initial_val = HW_REG_READ(DA1_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(DA1_DIGITAL_GAIN_REG,
- ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain HSL gainindex = %d %d",
- gain_index, error);
- return error;
- }
- }
-
- if (gain_index == 1) {
- int gain = 0;
- gain = 8 - gain_value;
-
- initial_val = HW_REG_READ(HSL_EAR_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(HSL_EAR_DIGITAL_GAIN_REG,
- ((initial_val & (~HS_DIGITAL_GAIN_MASK)) | (gain &
- HS_DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain HSL gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
-
- if (gain_index == 2) {
- /* Set Analog gain */
- int gain = -1;
-
- if (gain_value % 2) {
- gain_value -= 1;
- dev_err(dev,
- "Odd Gain received.Fixing it to 2dB step gain_value = %d",
- gain_value);
- }
- /* Fix for 4dB step gains. Select one lower value */
- if (gain_value == -22)
- gain_value = -24;
-
- if (gain_value == -26)
- gain_value = -28;
-
- if (gain_value == -30)
- gain_value = -32;
-
- for (i = 0 ; i < 16; i++) {
- if (hs_analog_gain_table[i] == gain_value) {
- gain = i<<4;
- break;
- }
- }
- if (gain == -1)
- return -1;
-
- if ((AB8500_REV_10 == acodec_device_id) ||
- (AB8500_REV_11 == acodec_device_id)) {
- if (!gain)
- gain = 0x10;
- gain = 0xF0 - gain;
- }
- initial_val = HW_REG_READ(ANALOG_HS_GAIN_REG);
-
- /* Write gain */
- error = HW_REG_WRITE(ANALOG_HS_GAIN_REG, ((initial_val &
- (~L_ANALOG_GAIN_MASK)) | (gain & L_ANALOG_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain HSL gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
-
- /* for HSR */
- if (channel_index & e_CHANNEL_2) {
- /* Set Gain HSR */
- if (gain_index == 0) {
- int gain = 0;
- gain = 0 - gain_value;
-
- initial_val = HW_REG_READ(DA2_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(DA2_DIGITAL_GAIN_REG, ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain HSR gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
-
- if (gain_index == 1) {
- int gain = 0;
- gain = 8 - gain_value;
-
- initial_val = HW_REG_READ(HSR_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(HSR_DIGITAL_GAIN_REG, ((initial_val
- & (~HS_DIGITAL_GAIN_MASK)) | (gain &
- HS_DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain HSR gain index = %d %d",
- gain_index, error);
- return error;
- }
-
- }
-
- if (gain_index == 2) {
- /* Set Analog gain */
- int gain = -1;
-
- if (gain_value % 2) {
- gain_value -= 1;
- dev_err(dev,
- "Odd Gain received.Fixing it to 2dB step gain_value = %d",
- gain_value);
- }
- /* Fix for 4dB step gains. Select one lower value */
- if (gain_value == -22)
- gain_value = -24;
-
- if (gain_value == -26)
- gain_value = -28;
-
- if (gain_value == -30)
- gain_value = -32;
-
- for (i = 0 ; i < 16 ; i++) {
- if (hs_analog_gain_table[i] == gain_value) {
- gain = i;
- break;
- }
- }
- if (gain == -1)
- return -1;
-
- if ((AB8500_REV_10 == acodec_device_id) ||
- (AB8500_REV_11 == acodec_device_id)) {
- if (!gain)
- gain = 1;
- gain = 0x0F - gain;
- }
- initial_val = HW_REG_READ(ANALOG_HS_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(ANALOG_HS_GAIN_REG, ((initial_val &
- (~R_ANALOG_GAIN_MASK)) | (gain & R_ANALOG_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain HSR gainindex = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Set gain of earpiece
- * @channel_index Channel-index of earpiece
- * @gain_index Gain index of earpiece
- * @gain_value Gain value of earpiece
- * @linear
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_set_earpiece_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev)
-{
- int error = 0;
- unsigned char initial_val = 0;
- if (channel_index & e_CHANNEL_1) {
- if (0 == gain_index) {
- int gain = 0;
- gain = 0 - gain_value;
-
- initial_val = HW_REG_READ(DA1_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(DA1_DIGITAL_GAIN_REG, ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain Ear gainindex = %d %d",
- gain_index, error);
- return error;
- }
- }
-
- if (gain_index == 1) {
- int gain = 0;
- gain = 8 - gain_value;
-
- initial_val = HW_REG_READ(HSL_EAR_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(HSL_EAR_DIGITAL_GAIN_REG,
- ((initial_val & (~HS_DIGITAL_GAIN_MASK)) | (gain &
- HS_DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain Ear gainindex = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-/**
- * @brief Set gain of vibl
- * @channel_index Channel-index of vibl
- * @gain_index Gain index of vibl
- * @gain_value Gain value of vibl
- * @linear
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_set_vibl_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev)
-{
-
- int error = 0;
- unsigned char initial_val = 0;
-
- if (channel_index & e_CHANNEL_1) {
- /* Set Gain vibl */
- if (gain_index == 0) {
- int gain = 0;
- gain = 0 - gain_value;
-
- initial_val = HW_REG_READ(DA5_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(DA5_DIGITAL_GAIN_REG, ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain VibL gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
- return error;
-}
-/**
- * @brief Set gain of vibr
- * @channel_index Channel-index of vibr
- * @gain_index Gain index of vibr
- * @gain_value Gain value of vibr
- * @linear
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_set_vibr_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value,
- u32 linear,
- struct device *dev)
-{
-
- int error = 0;
- unsigned char initial_val = 0;
-
- if (channel_index & e_CHANNEL_1) {
- /* Set Gain vibr */
- if (gain_index == 0) {
- int gain = 0;
- gain = 0 - gain_value;
-
- initial_val = HW_REG_READ(DA6_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(DA6_DIGITAL_GAIN_REG,
- ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain VibR gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
- return error;
-}
-/**
- * @brief Set gain of ihf along a specified channel
- * @channel_index Channel-index of ihf
- * @gain_index Gain index of ihf
- * @gain_value Gain value of ihf
- * @linear
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_set_ihf_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev)
-{
- int error = 0;
- unsigned char initial_val = 0;
-
- if (channel_index & e_CHANNEL_1) {
- /* Set Gain IHFL */
- if (gain_index == 0) {
- int gain = 0;
- gain = 0 - gain_value;
-
- initial_val = HW_REG_READ(DA3_DIGITAL_GAIN_REG);
- error = HW_REG_WRITE(DA3_DIGITAL_GAIN_REG, ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain IHFL gain index = %d %d",
- gain_index, error);
- return error;
- }
-
- }
- }
- if (channel_index & e_CHANNEL_2) {
- /* Set Gain IHFR */
- if (gain_index == 0) {
- int gain = 0;
- gain = 0 - gain_value;
-
- initial_val = HW_REG_READ(DA4_DIGITAL_GAIN_REG);
- error = HW_REG_WRITE(DA4_DIGITAL_GAIN_REG, ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain IHFR gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
-
- return error;
-}
-/**
- * @brief Set gain of MIC1A & MIC1B
- * @channel_index Channel-index of MIC1
- * @gain_index Gain index of MIC1
- * @gain_value Gain value of MIC1
- * @linear
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_set_mic1a_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev)
-{
- int error = 0;
- unsigned char initial_val = 0;
-
- if (channel_index & e_CHANNEL_1) {
- /* Set Gain mic1 */
- if (gain_index == 0) {
- int gain = 0;
- gain = 31 - gain_value;
-
- initial_val = HW_REG_READ(AD3_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(AD3_DIGITAL_GAIN_REG, ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain Mic1 gain index = %d %d",
- gain_index, error);
- return error;
- }
-
- }
-
- if (gain_index == 1) {
- /* Set Analog gain */
- initial_val = HW_REG_READ(ANALOG_MIC1_GAIN_REG);
-
- /* Write gain */
- error = HW_REG_WRITE(ANALOG_MIC1_GAIN_REG, ((initial_val
- & (~MIC_ANALOG_GAIN_MASK)) | (gain_value &
- MIC_ANALOG_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain Mic1 gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
- return error;
-}
-/**
- * @brief Set gain of MIC2
- * @channel_index Channel-index of MIC2
- * @gain_index Gain index of MIC2
- * @gain_value Gain value of MIC2
- * @linear
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_set_mic2_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value,
- u32 linear,
- struct device *dev)
-{
- int error = 0;
- unsigned char initial_val = 0;
-
- if (channel_index & e_CHANNEL_1) {
- /* Set Gain mic2 */
- if (gain_index == 0) {
- int gain = 0;
- gain = 31 - gain_value;
-
- initial_val = HW_REG_READ(AD2_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(AD2_DIGITAL_GAIN_REG, ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain Mic2 gain index = %d %d",
- gain_index, error);
- return error;
- }
-
- }
-
- if (gain_index == 1) {
- /* Set Analog gain */
- initial_val = HW_REG_READ(ANALOG_MIC2_GAIN_REG);
-
- /* Write gain */
- error = HW_REG_WRITE(ANALOG_MIC2_GAIN_REG, ((initial_val
- & (~MIC_ANALOG_GAIN_MASK)) | (gain_value &
- MIC_ANALOG_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain Mic2 gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
- return error;
-}
-/**
- * @brief Set gain of Lin IN along a specified channel
- * @channel_index Channel-index of Lin In
- * @gain_index Gain index of Lin In
- * @gain_value Gain value of Lin In
- * @linear
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_set_lin_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev)
-{
- int error = 0;
- unsigned char initial_val = 0;
-
- if (channel_index & e_CHANNEL_1) {
- if (gain_index == 0) {
- int gain = 0;
- gain = 31 - gain_value;
-
- initial_val = HW_REG_READ(AD1_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(AD1_DIGITAL_GAIN_REG,
- ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain LinInL gain index = %d %d",
- gain_index, error);
- return error;
- }
-
- }
-
- if (gain_index == 1) {
- int gain = 0;
- /*
- * Converting -10 to 20 range into 0 - 15
- * & shifting it left by 4 bits
- */
- gain = ((gain_value/2) + 5)<<4;
-
- initial_val = HW_REG_READ(ANALOG_LINE_IN_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(ANALOG_LINE_IN_GAIN_REG,
- ((initial_val & (~L_ANALOG_GAIN_MASK)) | (gain &
- L_ANALOG_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain LinInL gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- /* Set Gain LinInR */
- if (gain_index == 0) {
- int gain = 0;
- gain = 31 - gain_value;
-
- initial_val = HW_REG_READ(AD2_DIGITAL_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(AD2_DIGITAL_GAIN_REG,
- ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain LinInR gain index = %d%d",
- gain_index, error);
- return error;
- }
- }
- if (gain_index == 1) {
- int gain = 0;
- /* Converting -10 to 20 range into 0 - 15 */
- gain = ((gain_value/2) + 5);
-
- initial_val = HW_REG_READ(ANALOG_LINE_IN_GAIN_REG);
- /* Write gain */
- error = HW_REG_WRITE(ANALOG_LINE_IN_GAIN_REG,
- ((initial_val & (~R_ANALOG_GAIN_MASK)) | (gain &
- R_ANALOG_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain LinInR gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
-
- return error;
-}
-/**
- * @brief Set gain of DMIC12 along a specified channel
- * @channel_index Channel-index of DMIC12
- * @gain_index Gain index of DMIC12
- * @gain_value Gain value of DMIC12
- * @linear
- * @return 0 on success otherwise negative error code
- */
-
-int ste_audio_io_set_dmic12_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev)
-{
- int error = 0;
- unsigned char initial_val = 0;
-
- if (channel_index & e_CHANNEL_1) {
- /* Set Gain Dmic1 */
- if (gain_index == 0) {
- int gain = 0;
- gain = 31 - gain_value;
-
- initial_val = HW_REG_READ(AD1_DIGITAL_GAIN_REG);
- error = HW_REG_WRITE(AD1_DIGITAL_GAIN_REG,
- ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain DMic1 gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
- if (channel_index & e_CHANNEL_2) {
- /* Set Gain Dmic2 */
- if (gain_index == 0) {
- int gain = 0;
- gain = 31 - gain_value;
-
- initial_val = HW_REG_READ(AD2_DIGITAL_GAIN_REG);
- error = HW_REG_WRITE(AD2_DIGITAL_GAIN_REG,
- ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain DMic2 gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
- return error;
-}
-
-int ste_audio_io_switch_to_burst_mode_headset(int burst_fifo_switch_frame,
- struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(BURST_FIFO_INT_CONTROL_REG,
- WAKEUP_SIGNAL_SAMPLE_COUNT, 0);
- if (0 != error)
- return error;
-
- error = HW_ACODEC_MODIFY_WRITE(BURST_FIFO_LENGTH_REG,
- BURST_FIFO_TRANSFER_LENGTH, 0);
- if (0 != error)
- return error;
-
- error = HW_ACODEC_MODIFY_WRITE(BURST_FIFO_CONTROL_REG,
- (BURST_FIFO_INF_RUNNING | BURST_FIFO_INF_IN_MASTER_MODE
- |PRE_BIT_CLK0_COUNT), 0);
- if (0 != error)
- return error;
-
- error = HW_ACODEC_MODIFY_WRITE(BURST_FIFO_WAKE_UP_DELAY_REG,
- BURST_FIFO_WAKUP_DEALAY, 0);
- if (0 != error)
- return error;
-
- error = HW_REG_WRITE(BURST_FIFO_SWITCH_FRAME_REG,
- burst_fifo_switch_frame);
- if (0 != error)
- return error;
-
- error = HW_ACODEC_MODIFY_WRITE(TDM_IF_BYPASS_B_FIFO_REG,
- IF0_BFifoEn, 0);
- if (0 != error)
- return error;
-
- return error;
-}
-int ste_audio_io_switch_to_normal_mode_headset(
- struct device *dev)
-{
- int error = 0;
-
- error = HW_ACODEC_MODIFY_WRITE(TDM_IF_BYPASS_B_FIFO_REG, 0,
- IF0_BFifoEn);
- if (0 != error)
- return error;
-
- error = HW_ACODEC_MODIFY_WRITE(BURST_FIFO_INT_CONTROL_REG,
- 0, WAKEUP_SIGNAL_SAMPLE_COUNT);
- if (0 != error)
- return error;
-
- error = HW_ACODEC_MODIFY_WRITE(BURST_FIFO_LENGTH_REG,
- 0, BURST_FIFO_TRANSFER_LENGTH);
- if (0 != error)
- return error;
-
- error = HW_ACODEC_MODIFY_WRITE(BURST_FIFO_CONTROL_REG, 0,
- (BURST_FIFO_INF_RUNNING | BURST_FIFO_INF_IN_MASTER_MODE
- |PRE_BIT_CLK0_COUNT));
- if (0 != error)
- return error;
-
- error = HW_ACODEC_MODIFY_WRITE(BURST_FIFO_WAKE_UP_DELAY_REG,
- 0, BURST_FIFO_WAKUP_DEALAY);
- if (0 != error)
- return error;
-
- return error;
-}
-
-
-int ste_audio_io_mute_vibl(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- return 0;
-}
-
-int ste_audio_io_unmute_vibl(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- return 0;
-}
-
-int ste_audio_io_mute_vibr(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- return 0;
-}
-int ste_audio_io_unmute_vibr(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- return 0;
-}
-
-int ste_audio_io_mute_dmic12(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- if ((channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- error = ste_audio_io_set_dmic12_gain(channel_index, 0, -32,
- 0, dev);
- if (0 != error) {
- dev_err(dev, "Mute dmic12 %d", error);
- return error;
- }
- }
-
- return error;
-
-}
-
-int ste_audio_io_unmute_dmic12(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- int error = 0;
- if ((channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- error = ste_audio_io_set_dmic12_gain(channel_index,
- 0, gain[0], 0, dev);
- if (0 != error) {
- dev_err(dev, "UnMute dmic12 %d", error);
- return error;
- }
- }
- return error;
-}
-int ste_audio_io_enable_fade_dmic12(struct device *dev)
-{
- return 0;
-}
-
-int ste_audio_io_disable_fade_dmic12(struct device *dev)
-{
- return 0;
-}
-
-/**
- * @brief enable hardware loop of dmic12
- * @chnl_index Channel-index of dmic12
- * @hw_loop type of hardware loop
- * @loop_gain gain value to be used in hardware loop
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_enable_loop_dmic12(enum AUDIOIO_CH_INDEX chnl_index,
- enum AUDIOIO_HAL_HW_LOOPS hw_loop,
- int loop_gain, struct device *dev,
- void *cookie)
-{
- int error = 0;
- struct transducer_context_t *trnsdr;
- trnsdr = (struct transducer_context_t *)cookie;
-
- switch (hw_loop) {
- /* Check if HSL is active */
- case AUDIOIO_SIDETONE_LOOP:
- if (!trnsdr[HS_CH].is_power_up[e_CHANNEL_1]
- && !trnsdr[EAR_CH].is_power_up[e_CHANNEL_1]) {
- error = -EFAULT;
- dev_err(dev,
- "Sidetone enable needs HS or Earpiece powered up, err = %d",
- error);
- return error;
- }
-
- if (chnl_index & e_CHANNEL_1) {
- /* For ch1, Power On STFIR1, data comes from AD1*/
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG2,
- 0, FIR1_FROMAD1);
- if (error) {
- dev_err(dev, "FIR1 data comes from AD_OUT1 %d",
- error);
- return error;
- }
-
- error = HW_REG_WRITE(SIDETONE_FIR1_GAIN_REG, loop_gain);
- if (error) {
- dev_err(dev,
- "Set FIR1 Gain index = %d", error);
- return error;
- }
- }
-
- if (chnl_index & e_CHANNEL_2) {
- /* For ch2, Power On STFIR1, data comes from AD2*/
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG2,
- 0, FIR1_FROMAD2);
- if (error) {
- dev_err(dev, "FIR1 data comes from AD_OUT2 %d",
- error);
- return error;
- }
- error = HW_REG_WRITE(SIDETONE_FIR2_GAIN_REG, loop_gain);
- if (error) {
- dev_err(dev,
- "Set FIR2 Gain error = %d", error);
- return error;
- }
- }
- break;
- default:
- error = -EINVAL;
- dev_err(dev, "loop not supported %d", error);
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-
-/**
- * @brief disable hardware loop of dmic12
- * @chnl_index Channel-index of dmic12
- * @hw_loop type of hardware loop
- * @return 0 on success otherwise negative error code
- */
-int ste_audio_io_disable_loop_dmic12(enum AUDIOIO_CH_INDEX chnl_index,
- enum AUDIOIO_HAL_HW_LOOPS hw_loop,
- struct device *dev, void *cookie)
-{
- int error = -EINVAL;
- struct transducer_context_t *trnsdr;
- trnsdr = (struct transducer_context_t *)cookie;
-
- switch (hw_loop) {
- /* Check if HSL is active */
- case AUDIOIO_SIDETONE_LOOP:
- if (!trnsdr[HS_CH].is_power_up[e_CHANNEL_1]
- && !trnsdr[EAR_CH].is_power_up[e_CHANNEL_1]) {
- error = -EFAULT;
- dev_err(dev,
- "Sidetone disable needs HS or Earpiece powered up, err = %d",
- error);
- return error;
- }
-
- if (chnl_index & e_CHANNEL_1) {
- /* For ch1, Power On STFIR1, data comes from AD1*/
- error =
- HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG2,
- 0, FIR1_FROMAD1);
- if (error)
- dev_err(dev, "FIR1 data comes from AD_OUT1 %d",
- error);
- }
-
- if (chnl_index & e_CHANNEL_2) {
- /* For ch2, Power On STFIR1, data comes from AD2*/
- error =
- HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG2,
- 0, FIR1_FROMAD2);
- if (error)
- dev_err(dev, "FIR1 data comes from AD_OUT2 %d",
- error);
- }
- error = HW_ACODEC_MODIFY_WRITE(FILTERS_CONTROL_REG,
- 0, FIR_FILTERCONTROL);
- if (error) {
- dev_err(dev,
- "ST FIR Filters disable failed %d", error);
- return error;
- }
- break;
- default:
- dev_err(dev, "loop not supported %d", error);
- }
- dump_acodec_registers(__func__, dev);
- return error;
-}
-
-int ste_audio_io_power_up_dmic34(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- /* Check if DMic34 request is mono or Stereo */
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "DMic34 does not support more than 2 channels");
- return -EINVAL;
- }
-
- /* Setting Direction for GPIO pins on AB8500 */
- error = HW_REG_WRITE(AB8500_GPIO_DIR4_REG, GPIO29_DIR_OUTPUT);
- if (0 != error) {
- dev_err(dev, "Setting Direction for GPIO pins on AB8500 %d",
- error);
- return error;
- }
-
- if (channel_index & e_CHANNEL_1) {
- /* Check if DMIC3 is already powered up or used by Mic1A
- or Mic1B */
- initialVal_AD = HW_REG_READ(DIGITAL_AD_CHANNELS_ENABLE_REG);
-
- if (initialVal_AD & (EN_AD3))
- return 0;
-
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT2_3_REG,
- DATA_FROM_AD_OUT3, 0);
- if (0 != error) {
- dev_err(dev, "Slot 02 outputs data from AD_OUT3 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG, EN_AD3,
- 0);
- if (0 != error) {
- dev_err(dev, "Enable AD3 for DMIC3 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_MUXES_REG1,
- SEL_DMIC3_FOR_AD_OUT3,
- 0);
- if (0 != error) {
- dev_err(dev, "Select DMIC3 for AD_OUT3 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DMIC_ENABLE_REG, EN_DMIC3, 0);
- if (0 != error) {
- dev_err(dev, "Enable DMIC3 %d", error);
- return error;
- }
-}
-
- /* Enable AD4 for Dmic4 */
- if (channel_index & e_CHANNEL_2) {
- /* Check if DMIC4 is already powered up */
- if (initialVal_AD & (EN_AD4))
- return 0;
-
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT2_3_REG,
- (DATA_FROM_AD_OUT4<<4), 0);
- if (0 != error) {
- dev_err(dev, "Slot 03 outputs data from AD_OUT4 %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- EN_AD4, 0);
- if (0 != error) {
- dev_err(dev, "Enable AD4 for DMIC4 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DMIC_ENABLE_REG, EN_DMIC4, 0);
- if (0 != error) {
- dev_err(dev, "Enable DMIC4 %d", error);
- return error;
- }
- }
- return error;
-}
-
-int ste_audio_io_power_down_dmic34(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
-
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "DMic34 does not support more than 2 channels");
- return -EINVAL;
- }
-
- /* Setting Direction for GPIO pins on AB8500 */
- error = HW_ACODEC_MODIFY_WRITE(AB8500_GPIO_DIR4_REG, 0,
- GPIO29_DIR_OUTPUT);
- if (0 != error) {
- dev_err(dev, "Clearing Direction for GPIO pins on AB8500 %d",
- error);
- return error;
- }
-
- /* Enable AD1 for Dmic1 */
- if (channel_index & e_CHANNEL_1) {
- /* Check if DMIC3 is already powered Down or used by Mic1A
- or Mic1B */
- initialVal_AD = HW_REG_READ(DIGITAL_AD_CHANNELS_ENABLE_REG);
- if (!(initialVal_AD & EN_AD3))
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DMIC_ENABLE_REG, 0, EN_DMIC3);
- if (0 != error) {
- dev_err(dev, "Enable DMIC3 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- 0,
- EN_AD3);
- if (0 != error) {
- dev_err(dev, "Disable AD3 for DMIC3 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT2_3_REG, 0,
- DATA_FROM_AD_OUT3);
- if (0 != error) {
- dev_err(dev,
- "Slot 02 outputs data cleared from AD_OUT3 %d",
- error);
- return error;
- }
- }
-
- /* Enable AD4 for Dmic4 */
- if (channel_index & e_CHANNEL_2) {
- /* Check if DMIC4 is already powered down */
- initialVal_AD = HW_REG_READ(DIGITAL_AD_CHANNELS_ENABLE_REG);
- if (!(initialVal_AD & EN_AD4))
- return 0;
-
- error = HW_ACODEC_MODIFY_WRITE(DMIC_ENABLE_REG, 0, EN_DMIC4);
- if (0 != error) {
- dev_err(dev, "Enable DMIC4 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(DIGITAL_AD_CHANNELS_ENABLE_REG,
- 0, EN_AD4);
- if (0 != error) {
- dev_err(dev, "Disable AD4 for DMIC4 %d", error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT2_3_REG, 0,
- (DATA_FROM_AD_OUT4<<4));
- if (0 != error) {
- dev_err(dev,
- "Slot 03 outputs data cleared from AD_OUT4 %d",
- error);
- return error;
- }
- }
- return error;
-}
-int ste_audio_io_set_dmic34_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev)
-{
- int error = 0;
- unsigned char initial_val = 0;
-
- if (channel_index & e_CHANNEL_1) {
- /* Set Gain Dmic3 */
- if (gain_index == 0) {
- int gain = 0;
- gain = 31 - gain_value;
-
- initial_val = HW_REG_READ(AD3_DIGITAL_GAIN_REG);
- error = HW_REG_WRITE(AD3_DIGITAL_GAIN_REG,
- ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
- if (0 != error) {
- dev_err(dev,
- "Set Gain DMic3 gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- /* Set Gain Dmic4 */
- if (gain_index == 0) {
- int gain = 0;
- gain = 31 - gain_value;
-
- initial_val = HW_REG_READ(AD4_DIGITAL_GAIN_REG);
- error = HW_REG_WRITE(AD4_DIGITAL_GAIN_REG,
- ((initial_val
- & (~DIGITAL_GAIN_MASK)) | (gain & DIGITAL_GAIN_MASK)));
-
- if (0 != error) {
- dev_err(dev,
- "Set Gain DMic4 gain index = %d %d",
- gain_index, error);
- return error;
- }
- }
- }
-
- return error;
-}
-int ste_audio_io_mute_dmic34(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- if ((channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- error = ste_audio_io_set_dmic34_gain(channel_index, 0, -32,
- 0, dev);
- if (0 != error) {
- dev_err(dev, "Mute dmic34 %d", error);
- return error;
- }
- }
- return error;
-}
-int ste_audio_io_unmute_dmic34(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- int error = 0;
- if ((channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- error = ste_audio_io_set_dmic34_gain(channel_index,
- 0, gain[0], 0, dev);
- if (0 != error) {
- dev_err(dev, "UnMute dmic34 %d", error);
- return error;
- }
- }
- return error;
-}
-int ste_audio_io_enable_fade_dmic34(struct device *dev)
-{
- return 0;
-}
-
-int ste_audio_io_disable_fade_dmic34(struct device *dev)
-{
- return 0;
-}
-
-int ste_audio_io_power_up_dmic56(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- return 0;
-}
-int ste_audio_io_power_down_dmic56(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- return 0;
-}
-int ste_audio_io_set_dmic56_gain(enum AUDIOIO_CH_INDEX channel_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev)
-{
- return 0;
-}
-int ste_audio_io_mute_dmic56(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- return 0;
-}
-int ste_audio_io_unmute_dmic56(enum AUDIOIO_CH_INDEX channel_index, int *gain,
- struct device *dev)
-{
- return 0;
-}
-int ste_audio_io_enable_fade_dmic56(struct device *dev)
-{
- return 0;
-}
-
-int ste_audio_io_disable_fade_dmic56(struct device *dev)
-{
- return 0;
-}
-
-int ste_audio_io_configure_if1(struct device *dev)
-{
- int error = 0;
-
- error = HW_REG_WRITE(IF1_CONF_REG, IF_DELAYED |
- I2S_LEFT_ALIGNED_FORMAT | WORD_LENGTH_16);
- if (error != 0) {
- dev_err(dev,
- "Configure IF1: I2S Format 16 Bits word length error = %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(TDM_IF_BYPASS_B_FIFO_REG, IF1_MASTER, 0);
- if (error != 0) {
- dev_err(dev,
- "Configure IF1: IF1 master error = %d",
- error);
- return error;
- }
-
- error = HW_ACODEC_MODIFY_WRITE(IF0_IF1_MASTER_CONF_REG,
- EN_FSYNC_BITCLK1, 0);
- if (error != 0) {
- dev_err(dev,
- "ConfigIF1 bitclk is 32x48KHz, enable Fsync1 and Bitclk1 error = %d",
- error);
- return error;
- }
- return error;
-}
-
-int ste_audio_io_power_up_fmrx(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal = 0;
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "FMRX should have mono or stereo channels");
- return -EINVAL;
- }
-
- ste_audio_io_configure_if1(dev);
-
- if (channel_index & e_CHANNEL_1) {
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA7_REG,
- SLOT24_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to DA_IN7 from Slot 24 %d",
- error);
- return error;
- }
- /* DA_IN7 to AD_OUT8 path */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA5_REG,
- SEL_AD_OUT8_FROM_DAIN7, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to AD_OUT5 from DA_IN7 %d",
- error);
- return error;
- }
-
- initialVal = HW_REG_READ(AD_ALLOCATION_TO_SLOT6_7_REG);
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT6_7_REG,
- ((initialVal & MASK_QUARTET1)|SEL_IF6_FROM_AD_OUT5));
- if (0 != error) {
- dev_err(dev, "Data sent to IF slot 6 from AD_OUT5 %d",
- error);
- return error;
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA8_REG,
- SLOT25_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to DA_IN8 from Slot 25 %d",
- error);
- return error;
- }
-
- /* DA_IN7 to AD_OUT8 path */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA6_REG,
- SEL_AD_OUT6_FROM_DAIN8, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to AD_OUT6 from DA_IN8 %d",
- error);
- return error;
- }
-
- initialVal = HW_REG_READ(AD_ALLOCATION_TO_SLOT6_7_REG);
-
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT6_7_REG,
- (initialVal & MASK_QUARTET0)|SEL_IF7_FROM_AD_OUT6);
- /* 5x is written */
- if (0 != error) {
- dev_err(dev, "Data sent to IF7 from AD_OUT6 %d",
- error);
- return error;
- }
- }
- return error;
-}
-int ste_audio_io_power_down_fmrx(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
-
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "FMRX should have mono or stereo channels");
- return -EINVAL;
- }
- if (channel_index & e_CHANNEL_1) {
- /* data sent to DA7 input of DA filter form IF1 */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA7_REG, 0,
- SLOT24_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev, "Clearing Data sent to DA_IN7 from Slot 24 %d",
- error);
- return error;
- }
- /* DA_IN7 to AD_OUT8 path */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA5_REG, 0,
- SEL_AD_OUT8_FROM_DAIN7);
- if (0 != error) {
- dev_err(dev, "Clearing Data sent to AD_OUT5 from DA_IN7 %d",
- error);
- return error;
- }
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT6_7_REG, 0,
- SEL_IF6_FROM_AD_OUT5);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to IF slot 6 from AD_OUT5 %d",
- error);
- return error;
- }
-}
-
- if (channel_index & e_CHANNEL_2) {
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA8_REG, 0,
- SLOT25_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to DA_IN8 from Slot 25 %d",
- error);
- return error;
- }
-
- /* DA_IN7 to AD_OUT8 path */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA6_REG, 0,
- SEL_AD_OUT6_FROM_DAIN8);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to AD_OUT6 from DA_IN8 %d",
- error);
- return error;
- }
- error = HW_ACODEC_MODIFY_WRITE(AD_ALLOCATION_TO_SLOT6_7_REG, 0,
- SEL_IF7_FROM_AD_OUT6);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to IF7 from AD_OUT6 %d",
- error);
- return error;
- }
- }
- return error;
-}
-
-int ste_audio_io_power_up_fmtx(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal = 0;
-
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "FMTX should have mono or stereo channels");
- return -EINVAL;
- }
-
- ste_audio_io_configure_if1(dev);
-
- if (channel_index & e_CHANNEL_1) {
- /* data sent to DA7 input of DA filter form IF1 14 slot */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA7_REG,
- SLOT14_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev,
- "Data sent to DA_IN7 from Slot 14 %d", error);
- return error;
- }
- /* DA_IN7 to AD_OUT5 path */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA5_REG,
- SEL_AD_OUT5_FROM_DAIN7, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to AD_OUT5 from DA_IN7 %d",
- error);
- return error;
- }
-
- initialVal = HW_REG_READ(AD_ALLOCATION_TO_SLOT16_17_REG);
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT16_17_REG,
- (initialVal & MASK_QUARTET1)|SEL_IF6_FROM_AD_OUT5);
- if (0 != error) {
- dev_err(dev, "Data sent to IF16 from AD_OUT5 %d",
- error);
- return error;
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- /* data sent to DA8 input of DA filter */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA8_REG,
- SLOT15_FOR_DA_PATH, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to DA_IN8 from Slot 15 %d",
- error);
- return error;
- }
-
- /* DA_IN8 to AD_OUT6 path */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA6_REG,
- SEL_AD_OUT6_FROM_DAIN8, 0);
- if (0 != error) {
- dev_err(dev, "Data sent to AD_OUT6 from DA_IN8 %d",
- error);
- return error;
- }
-
- initialVal = HW_REG_READ(AD_ALLOCATION_TO_SLOT16_17_REG);
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT16_17_REG,
- (initialVal & MASK_QUARTET0)|SEL_IF17_FROM_AD_OUT6);
- if (0 != error) {
- dev_err(dev, "Data sent to IF17 from AD_OUT6 %d",
- error);
- return error;
- }
- }
- return error;
-}
-
-int ste_audio_io_power_down_fmtx(enum AUDIOIO_CH_INDEX channel_index,
- struct device *dev)
-{
- int error = 0;
- unsigned char initialVal_AD = 0;
-
- if (!(channel_index & (e_CHANNEL_1 | e_CHANNEL_2))) {
- dev_err(dev, "FMTX should have mono or stereo channels");
- return -EINVAL;
- }
-
- if (channel_index & e_CHANNEL_1) {
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA7_REG, 0,
- SLOT14_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to DA_IN7 from Slot 14 %d",
- error);
- return error;
- }
- /* DA_IN7 to AD_OUT8 path */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA5_REG, 0,
- SEL_AD_OUT5_FROM_DAIN7);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to AD_OUT5 from DA_IN7 %d",
- error);
- return error;
- }
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT16_17_REG,
- SEL_IF6_FROM_AD_OUT5);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to IF16 from AD_OUT8 %d",
- error);
- return error;
- }
- }
-
- if (channel_index & e_CHANNEL_2) {
- /* data sent to DA8 input of DA filter */
- initialVal_AD = HW_REG_READ(SLOT_SELECTION_TO_DA8_REG);
-
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA8_REG, 0,
- SLOT15_FOR_DA_PATH);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to DA_IN8 from Slot 15 %d",
- error);
- return error;
- }
-
- /* DA_IN7 to AD_OUT8 path */
- error = HW_ACODEC_MODIFY_WRITE(SLOT_SELECTION_TO_DA6_REG, 0,
- SEL_AD_OUT6_FROM_DAIN8);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to AD_OUT6 from DA_IN8 %d",
- error);
- return error;
- }
- error = HW_REG_WRITE(AD_ALLOCATION_TO_SLOT16_17_REG,
- SEL_IF17_FROM_AD_OUT6);
- if (0 != error) {
- dev_err(dev,
- "Clearing Data sent to IF17 from AD_OUT6 %d",
- error);
- return error;
- }
- }
- return error;
-}
-int ste_audio_io_power_up_bluetooth(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev)
-{
- int error = 0;
- struct ab8500 *ab8500 = dev_get_drvdata(dev->parent);
- struct ab8500_platform_data *pdata = dev_get_platdata(ab8500->dev);
- if (bluetooth_power_up_count++)
- return error;
-
- if (pdata) {
- if (pdata->audio) {
- error = pdata->audio->ste_gpio_altf_init();
- if (error == 0) {
- clk_ptr_msp0 = clk_get_sys("msp0", NULL);
- if (!IS_ERR(clk_ptr_msp0)) {
- error = clk_enable(clk_ptr_msp0);
- return error;
- } else
- return -EFAULT;
- }
- }
- }
- return error;
-}
-
-int ste_audio_io_power_down_bluetooth(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev)
-{
- int error = 0;
- struct ab8500 *ab8500 = dev_get_drvdata(dev->parent);
- struct ab8500_platform_data *pdata = dev_get_platdata(ab8500->dev);
-
- if (--bluetooth_power_up_count)
- return error;
-
- if (pdata) {
- if (pdata->audio) {
- error = pdata->audio->ste_gpio_altf_exit();
- if (error == 0) {
- clk_disable(clk_ptr_msp0);
- clk_put(clk_ptr_msp0);
- }
- }
- }
- return error;
-}
-
-int dump_acodec_registers(const char *str, struct device *dev)
-{
- int reg_count = REVISION_REG & 0xff;
- if (1 == acodec_reg_dump) {
- u8 i = 0;
- dev_info(dev, "\n func : %s\n", str);
- for (i = 0; i <= reg_count; i++)
- dev_info(dev,
- "block = 0x0D, adr = %x = %x\n",
- i, HW_REG_READ((AB8500_AUDIO << 8) | i));
- }
- str = str; /* keep compiler happy */
- return 0;
-}
-
-int debug_audioio(int x)
-{
-
- if (1 == x)
- acodec_reg_dump = 1;
- else
- acodec_reg_dump = 0;
- return 0;
-}
-
-
-
-
-
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_func.h b/drivers/misc/audio_io_dev/ste_audio_io_func.h
deleted file mode 100644
index 65b777f5436..00000000000
--- a/drivers/misc/audio_io_dev/ste_audio_io_func.h
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-#ifndef _AUDIOIO_FUNC_H_
-#define _AUDIOIO_FUNC_H_
-
-#include <linux/string.h>
-#include <linux/platform_device.h>
-#include <mach/ste_audio_io_ioctl.h>
-#include <linux/mfd/ab8500.h>
-#include <linux/mfd/abx500.h>
-
-#define AB8500_REV_10 0x10
-#define AB8500_REV_11 0x11
-#define AB8500_REV_20 0x20
-
-#define AB8500_CTRL3_REG 0x00000200
-#define AB8500_GPIO_DIR4_REG 0x00001013
-#define AB8500_GPIO_DIR5_REG 0x00001014
-#define AB8500_GPIO_OUT5_REG 0x00001024
-
-extern struct platform_device *ste_audio_io_device;
-extern struct regulator *regulator_avsource;
-
-int dump_acodec_registers(const char *, struct device *dev);
-int debug_audioio(int x);
-
-#define AB8500_BLOCK_ADDR(address) ((address >> 8) & 0xff)
-#define AB8500_OFFSET_ADDR(address) (address & 0xff)
-
-static inline unsigned char HW_REG_READ(unsigned short reg)
-{
- unsigned char ret;
- int err;
-
- err = abx500_get_register_interruptible(&ste_audio_io_device->dev,
- AB8500_BLOCK_ADDR(reg),
- AB8500_OFFSET_ADDR(reg),
- &ret);
- if (err < 0)
- return err;
- else
- return ret;
-}
-
-static inline int HW_REG_WRITE(unsigned short reg, unsigned char data)
-{
- return abx500_set_register_interruptible(&ste_audio_io_device->dev,
- AB8500_BLOCK_ADDR(reg),
- AB8500_OFFSET_ADDR(reg),
- data);
-}
-
-unsigned int ab8500_acodec_modify_write(unsigned int reg, u8 mask_set,
- u8 mask_clear);
-
-#define HW_ACODEC_MODIFY_WRITE(reg, mask_set, mask_clear)\
- ab8500_acodec_modify_write(reg, mask_set, mask_clear)
-
-unsigned int ab8500_modify_write(unsigned int reg, u8 mask_set, u8 mask_clear);
-
-int ste_audio_io_power_up_headset(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_headset(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_headset_query(struct device *dev);
-int ste_audio_io_set_headset_gain(enum AUDIOIO_CH_INDEX chnl_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_headset_gain(int *, int *, u16,
- struct device *dev);
-int ste_audio_io_mute_headset(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_headset(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_headset_state(struct device *dev);
-int ste_audio_io_enable_fade_headset(struct device *dev);
-int ste_audio_io_disable_fade_headset(struct device *dev);
-int ste_audio_io_switch_to_burst_mode_headset(int burst_fifo_switch_frame,
- struct device *dev);
-int ste_audio_io_switch_to_normal_mode_headset(
- struct device *dev);
-
-int ste_audio_io_power_up_earpiece(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_earpiece(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_earpiece_query(struct device *dev);
-int ste_audio_io_set_earpiece_gain(enum AUDIOIO_CH_INDEX chnl_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_earpiece_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_earpiece(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_earpiece(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_earpiece_state(struct device *dev);
-int ste_audio_io_enable_fade_earpiece(struct device *dev);
-int ste_audio_io_disable_fade_earpiece(struct device *dev);
-
-int ste_audio_io_power_up_ihf(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_ihf(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_ihf_query(struct device *dev);
-int ste_audio_io_set_ihf_gain(enum AUDIOIO_CH_INDEX chnl_index, u16 gain_index,
- int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_ihf_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_ihf(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_ihf(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_ihf_state(struct device *dev);
-int ste_audio_io_enable_fade_ihf(struct device *dev);
-int ste_audio_io_disable_fade_ihf(struct device *dev);
-
-int ste_audio_io_power_up_vibl(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_vibl(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_vibl_query(struct device *dev);
-int ste_audio_io_set_vibl_gain(enum AUDIOIO_CH_INDEX chnl_index, u16 gain_index,
- int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_vibl_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_vibl(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_vibl(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_vibl_state(struct device *dev);
-int ste_audio_io_enable_fade_vibl(struct device *dev);
-int ste_audio_io_disable_fade_vibl(struct device *dev);
-
-int ste_audio_io_power_up_vibr(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_vibr(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_vibr_query(struct device *dev);
-int ste_audio_io_set_vibr_gain(enum AUDIOIO_CH_INDEX chnl_index, u16 gain_index,
- int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_vibr_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_vibr(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_vibr(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_vibr_state(struct device *dev);
-int ste_audio_io_enable_fade_vibr(struct device *dev);
-int ste_audio_io_disable_fade_vibr(struct device *dev);
-
-int ste_audio_io_power_up_mic1a(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_mic1a(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_mic1a_query(struct device *dev);
-int ste_audio_io_set_mic1a_gain(enum AUDIOIO_CH_INDEX chnl_index,
- u16 gain_index, int gain_value, u32 linear, struct device *dev);
-int ste_audio_io_get_mic1a_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_mic1a(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_mic1a(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_mic1a_state(struct device *dev);
-int ste_audio_io_enable_fade_mic1a(struct device *dev);
-int ste_audio_io_disable_fade_mic1a(struct device *dev);
-
-/*
- *** Mic1b ***
- */
-int ste_audio_io_power_up_mic1b(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_mic1b(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_mic1b_query(struct device *dev);
-int ste_audio_io_set_mic1b_gain(enum AUDIOIO_CH_INDEX chnl_index,
- u16 gain_index, int gain_value, u32 linear, struct device *dev);
-int ste_audio_io_get_mic1b_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_mic1b(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_mic1b(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_mic1b_state(struct device *dev);
-int ste_audio_io_enable_fade_mic1b(struct device *dev);
-int ste_audio_io_disable_fade_mic1b(struct device *dev);
-int ste_audio_io_enable_loop_mic1b(enum AUDIOIO_CH_INDEX chnl_index,
- enum AUDIOIO_HAL_HW_LOOPS,
- int loop_gain, struct device *dev,
- void *cookie);
-int ste_audio_io_disable_loop_mic1b(enum AUDIOIO_CH_INDEX chnl_index,
- enum AUDIOIO_HAL_HW_LOOPS hw_loop,
- struct device *dev, void *cookie);
-/*
- *** Mic2 ***
- */
-int ste_audio_io_power_up_mic2(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_mic2(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_mic2_query(struct device *dev);
-int ste_audio_io_set_mic2_gain(enum AUDIOIO_CH_INDEX chnl_index, u16 gain_index,
- int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_mic2_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_mic2(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_mic2(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_mic2_state(struct device *dev);
-int ste_audio_io_enable_fade_mic2(struct device *dev);
-int ste_audio_io_disable_fade_mic2(struct device *dev);
-
-int ste_audio_io_power_up_lin(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_lin(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_lin_query(struct device *dev);
-int ste_audio_io_set_lin_gain(enum AUDIOIO_CH_INDEX chnl_index, u16 gain_index,
- int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_lin_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_lin(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_lin(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_lin_state(struct device *dev);
-int ste_audio_io_enable_fade_lin(struct device *dev);
-int ste_audio_io_disable_fade_lin(struct device *dev);
-
-int ste_audio_io_power_up_dmic12(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_dmic12(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_dmic12_query(struct device *dev);
-int ste_audio_io_set_dmic12_gain(enum AUDIOIO_CH_INDEX chnl_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_dmic12_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_dmic12(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_dmic12(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_dmic12_state(struct device *dev);
-int ste_audio_io_enable_fade_dmic12(struct device *dev);
-int ste_audio_io_disable_fade_dmic12(struct device *dev);
-int ste_audio_io_enable_loop_dmic12(enum AUDIOIO_CH_INDEX chnl_index,
- enum AUDIOIO_HAL_HW_LOOPS,
- int loop_gain, struct device *dev,
- void *cookie);
-int ste_audio_io_disable_loop_dmic12(enum AUDIOIO_CH_INDEX chnl_index,
- enum AUDIOIO_HAL_HW_LOOPS hw_loop,
- struct device *dev, void *cookie);
-
-int ste_audio_io_power_up_dmic34(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_dmic34(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_dmic34_query(struct device *dev);
-int ste_audio_io_set_dmic34_gain(enum AUDIOIO_CH_INDEX chnl_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_dmic34_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_dmic34(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_dmic34(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_dmic34_state(struct device *dev);
-int ste_audio_io_enable_fade_dmic34(struct device *dev);
-int ste_audio_io_disable_fade_dmic34(struct device *dev);
-
-int ste_audio_io_power_up_dmic56(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_dmic56(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_dmic56_query(struct device *dev);
-int ste_audio_io_set_dmic56_gain(enum AUDIOIO_CH_INDEX chnl_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_dmic56_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_dmic56(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_dmic56(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_dmic56_state(struct device *dev);
-int ste_audio_io_enable_fade_dmic56(struct device *dev);
-int ste_audio_io_disable_fade_dmic56(struct device *dev);
-
-int ste_audio_io_power_up_fmrx(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_fmrx(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_fmrx_query(struct device *dev);
-int ste_audio_io_set_fmrx_gain(enum AUDIOIO_CH_INDEX chnl_index, u16 gain_index,
- int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_fmrx_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_fmrx(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_fmrx(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_fmrx_state(struct device *dev);
-int ste_audio_io_enable_fade_fmrx(struct device *dev);
-int ste_audio_io_disable_fade_fmrx(struct device *dev);
-
-int ste_audio_io_power_up_fmtx(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_fmtx(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_fmtx_query(struct device *dev);
-int ste_audio_io_set_fmtx_gain(enum AUDIOIO_CH_INDEX chnl_index, u16 gain_index,
- int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_fmtx_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_fmtx(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_fmtx(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_fmtx_state(struct device *dev);
-int ste_audio_io_enable_fade_fmtx(struct device *dev);
-int ste_audio_io_disable_fade_fmtx(struct device *dev);
-
-int ste_audio_io_power_up_bluetooth(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_down_bluetooth(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_power_state_bluetooth_query(struct device *dev);
-int ste_audio_io_set_bluetooth_gain(enum AUDIOIO_CH_INDEX chnl_index,
- u16 gain_index, int gain_value, u32 linear,
- struct device *dev);
-int ste_audio_io_get_bluetooth_gain(int*, int*, u16,
- struct device *dev);
-int ste_audio_io_mute_bluetooth(enum AUDIOIO_CH_INDEX chnl_index,
- struct device *dev);
-int ste_audio_io_unmute_bluetooth(enum AUDIOIO_CH_INDEX chnl_index, int *gain,
- struct device *dev);
-int ste_audio_io_mute_bluetooth_state(struct device *dev);
-int ste_audio_io_enable_fade_bluetooth(struct device *dev);
-int ste_audio_io_disable_fade_bluetooth(struct device *dev);
-
-
-#endif
-
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_hwctrl_common.c b/drivers/misc/audio_io_dev/ste_audio_io_hwctrl_common.c
deleted file mode 100644
index c2409f849ae..00000000000
--- a/drivers/misc/audio_io_dev/ste_audio_io_hwctrl_common.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-
-#include <linux/types.h>
-#include "ste_audio_io_hwctrl_common.h"
-
-/* Number of channels for each transducer */
-const uint transducer_no_of_channels[MAX_NO_TRANSDUCERS] = {
- 1, /* Earpiece */
- 2, /* HS */
- 2, /* IHF */
- 1, /* VibL */
- 1, /* VibR */
- 1, /* Mic1A */
- 1, /* Mic1B */
- 1, /* Mic2 */
- 2, /* LinIn */
- 2, /* DMIC12 */
- 2, /* DMIC34 */
- 2, /* /DMIC56 */
- 4 /* MultiMic */
- };
-
-/* Maximum number of gains in each transducer path
- (all channels of a specific transducer have same max no of gains) */
-const uint transducer_no_of_gains[MAX_NO_TRANSDUCERS] = {
- 2, /* Ear g3 and g4 */
- 3, /* HS g3 and g4 and analog */
- 1, /* IHF g3 */
- 1, /* VibL g3 */
- 1, /* VibR g3 */
- 2, /* Mic1A g1 and analog */
- 2, /* Mic1A g1 and analog */
- 2, /* Mic2 g1 and analog */
- 2, /* LinIn g1 and analog */
- 1, /* DMIC12 g1 */
- 1, /* DMIC34 g1 */
- 1, /* DMIC56 g1 */
- 1 /* MultiMic g1 */
- };
-
-const uint transducer_no_Of_supported_loop_indexes[MAX_NO_TRANSDUCERS] = {
- 0x09,/* Ear0x01|0x08*/
- 0x38770,/*{0x01|0x10|0x20|0x40|0x100*/
- /*|0x200|0x400|0x8000|0x10000|0x20000}, HS*/
- 0x86,/*IHF*/
- 0x0,/*VibL*/
- 0x0,/*VibR*/
- 0x0,/*Mic1A*/
- 0x01,/*Mic1B Sidetone is controlled*/
- 0x0,/*Mic2*/
- 0x0,/*LinIn*/
- 0x0,/*DMIC12*/
- 0x0,/*DMIC34*/
- 0x0,/*DMIC56*/
- 0x01,/*MultiMic Sidetone is controlled*/
- 0x0,/*FMRx*/
- 0x0/*FMTx*/
- };
-
-const uint transducer_max_no_Of_supported_loops[MAX_NO_TRANSDUCERS] = {
- 0,/*Ear Sidetone*/
- 2,/*HS SideTone LININ_HS LININR_HSR LININ_HSL*/
- 1,/*IHF TO BE DEFINED*/
- 0,/*VibL TO BE DEFINED*/
- 0,/*VibR TO BE DEFINED*/
- 1,/*Mic1A TO BE DEFINED*/
- 1,/*Mic1B SIDETONE TO BE DEFINED*/
- 1,/*Mic2 TO BE DEFINED*/
- 0, /* LinIn */
- 1,/*DMIC12-ANC*/
- 0,/*DMIC34-ANC*/
- 0, /* DMIC56 */
- 1,/*MultiMic-SIDETONE ANC*/
- 0,/*FMRx*/
- 0/*FMTx*/
- };
-
-const uint max_no_of_loop_gains[MAX_NO_TRANSDUCERS] = {
- 0,/*Earpiece*/
- 2,/*HS*/
- 0,
- 0,
- 0,
- 0,
- 2,/*Mic1B-Sidetone 2 gains*/
- 0,
- 0,
- 2,/*DMIC12*/
- 0,
- 0,
- 2,/*Multimic, Sidetone max no gains = 2*/
- 0,
- 0
- };
-
-
-struct gain_descriptor_t gain_descriptor[MAX_NO_TRANSDUCERS]\
- [MAX_NO_CHANNELS][MAX_NO_GAINS] = {
- /* gainIndex=0 1 2
- EDestinationEar */
- {{{-63, 0, 1}, {-1, 8, 1}, {0, 0, 0} } ,/* channelIndex=0 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* EDestinationHS */
- {{{-63, 0, 1}, {-1, 8, 1}, {-32, 4, 2} } , /* channelIndex=0 */
- {{-63, 0, 1}, {-1, 8, 1}, {-32, 4, 2} } , /* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } , /* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } , /* channelIndex=3 */
-
- /* EDestinationIHF */
- {{{-63, 0, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=0 */
- {{-63, 0, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* EDestinationVibL */
- {{{-63, 0, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=0 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* EDestinationVibR */
- {{{-63, 0, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=0 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* ESourceMic1A */
- {{{-32, 31, 1}, {0, 31, 1}, {0, 0, 0} } ,/* channelIndex=0 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* ESourceMic1B */
- {{{-32, 31, 1}, {0, 31, 1}, {0, 0, 0} } ,/* channelIndex=0 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* ESourceMic2 */
- {{{-32, 31, 1}, {0, 31, 1}, {0, 0, 0} } ,/* channelIndex=0 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* ESourceLin */
- {{{-32, 31, 1}, {-10, 20, 2}, {0, 0, 0} } ,/* channelIndex=0 */
- {{-32, 31, 1}, {-10, 20, 2}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* ESourceDMic12 */
- {{{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=0 */
- {{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* ESourceDMic34 */
- {{{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=0 */
- {{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* ESourceDMic56 */
- {{{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=0 */
- {{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=2 */
- {{0, 0, 0}, {0, 0, 0}, {0, 0, 0} } } ,/* channelIndex=3 */
-
- /* ESourceMultiMic */
- {{{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=0 */
- {{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} } ,/* channelIndex=1 */
- {{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} },/* channelIndex=2 */
- {{-32, 31, 1}, {0, 0, 0}, {0, 0, 0} } } /* channelIndex=3 */
-};
-
-
-const int hs_analog_gain_table[16] = {4, 2, 0, -2, -4, -6, -8, -10,
- -12, -14, -16, -18, -20, -24, -28, -32};
-
-
-
diff --git a/drivers/misc/audio_io_dev/ste_audio_io_hwctrl_common.h b/drivers/misc/audio_io_dev/ste_audio_io_hwctrl_common.h
deleted file mode 100644
index cc2bfe21d81..00000000000
--- a/drivers/misc/audio_io_dev/ste_audio_io_hwctrl_common.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2.
- */
-
-#ifndef __AUDIOIO_HWCTRL_COMMON_H__
-#define __AUDIOIO_HWCTRL_COMMON_H__
-
-#include <linux/types.h>
-#include <mach/ste_audio_io_ioctl.h>
-/*
- * Defines
- */
-
-#define MAX_GAIN 100
-#define MIN_GAIN 0
-#define MAX_NO_CHANNELS 4
-#define MAX_NO_GAINS 3
-#define MAX_NO_LOOPS 1
-#define MAX_NO_LOOP_GAINS 1
-
-struct gain_descriptor_t {
- int min_gain;
- int max_gain;
- uint gain_step;
-};
-
-
-/* Number of channels for each transducer */
-extern const uint transducer_no_of_channels[MAX_NO_TRANSDUCERS];
-
-/*
- * Maximum number of gains in each transducer path
- * all channels of a specific transducer have same max no of gains
- */
-extern const uint transducer_no_of_gains[MAX_NO_TRANSDUCERS];
-
-/* Maximum number of supported loops for each transducer */
-extern const uint transducer_no_Of_supported_loop_indexes[MAX_NO_TRANSDUCERS];
-extern const uint transducer_max_no_Of_supported_loops[MAX_NO_TRANSDUCERS];
-extern const uint max_no_of_loop_gains[MAX_NO_TRANSDUCERS];
-extern const int hs_analog_gain_table[16] ;
-
-extern struct gain_descriptor_t gain_descriptor[MAX_NO_TRANSDUCERS]\
- [MAX_NO_CHANNELS][MAX_NO_GAINS];
-
-#endif
-
-/* End of audio_io_hwctrl_common.h */
diff --git a/sound/Kconfig b/sound/Kconfig
index 1740aa5d6d3..261a03c8a20 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);