aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xaudio/audio_hw.c22
-rw-r--r--audio/audio_hw.h59
-rw-r--r--configs/Android.mk5
-rwxr-xr-xconfigs/n5100.xml341
-rwxr-xr-xconfigs/n5110.xml (renamed from configs/tiny_hw.xml)2
-rwxr-xr-xconfigs/n5120.xml354
6 files changed, 740 insertions, 43 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c
index 260292f..eafcd82 100755
--- a/audio/audio_hw.c
+++ b/audio/audio_hw.c
@@ -19,7 +19,7 @@
*/
#define LOG_TAG "audio_hw_primary"
-#define LOG_NDEBUG 0
+//#define LOG_NDEBUG 0
#include <errno.h>
#include <pthread.h>
@@ -230,14 +230,14 @@ static int set_bigroute_by_array(struct mixer *mixer, struct route_setting *rout
if (ret != 0) {
ALOGE("Failed to set '%s' to '%s'\n", route[i].ctl_name, route[i].strval);
} else {
- ALOGV("Set '%s' to '%s'\n", route[i].ctl_name, route[i].strval);
+ //ALOGV("Set '%s' to '%s'\n", route[i].ctl_name, route[i].strval);
}
} else {
ret = mixer_ctl_set_enum_by_string(ctl, "Off");
if (ret != 0) {
ALOGE("Failed to set '%s' to '%s'\n", route[i].ctl_name, route[i].strval);
} else {
- ALOGV("Set '%s' to '%s'\n", route[i].ctl_name, "Off");
+ //ALOGV("Set '%s' to '%s'\n", route[i].ctl_name, "Off");
}
}
} else {
@@ -248,14 +248,14 @@ static int set_bigroute_by_array(struct mixer *mixer, struct route_setting *rout
if (ret != 0) {
ALOGE("Failed to set '%s' to '%d'\n", route[i].ctl_name, route[i].intval);
} else {
- ALOGV("Set '%s' to '%d'\n", route[i].ctl_name, route[i].intval);
+ //ALOGV("Set '%s' to '%d'\n", route[i].ctl_name, route[i].intval);
}
} else {
ret = mixer_ctl_set_value(ctl, j, 0);
if (ret != 0) {
ALOGE("Failed to set '%s' to '%d'\n", route[i].ctl_name, route[i].intval);
} else {
- ALOGV("Set '%s' to '%d'\n", route[i].ctl_name, 0);
+ //ALOGV("Set '%s' to '%d'\n", route[i].ctl_name, 0);
}
}
}
@@ -300,8 +300,8 @@ static int set_route_by_array(struct mixer *mixer, struct route_setting *route,
ALOGE("Failed to set '%s'.%d to %d\n",
route[i].ctl_name, j, route[i].intval);
} else {
- ALOGV("Set '%s'.%d to %d\n",
- route[i].ctl_name, j, route[i].intval);
+ //ALOGV("Set '%s'.%d to %d\n",
+ //route[i].ctl_name, j, route[i].intval);
}
}
}
@@ -709,12 +709,16 @@ static void select_output_device(struct m0_audio_device *adev)
static void select_input_device(struct m0_audio_device *adev)
{
- switch(adev->in_device) {
+ int input_device = AUDIO_DEVICE_BIT_IN | adev->in_device;
+
+ switch(input_device) {
case AUDIO_DEVICE_IN_BUILTIN_MIC:
ALOGD("%s: AUDIO_DEVICE_IN_BUILTIN_MIC", __func__);
break;
case AUDIO_DEVICE_IN_BACK_MIC:
ALOGD("%s: AUDIO_DEVICE_IN_BACK_MIC", __func__);
+ // Force use both mics for video recording
+ adev->in_device = (AUDIO_DEVICE_IN_BACK_MIC | AUDIO_DEVICE_IN_BUILTIN_MIC) & ~AUDIO_DEVICE_BIT_IN;
break;
case AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET:
ALOGD("%s: AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET", __func__);
@@ -2872,7 +2876,7 @@ static void adev_config_start(void *data, const XML_Char *elem,
return;
}
- ALOGV("Parsing control %s => %s\n", name, val);
+ //ALOGV("Parsing control %s => %s\n", name, val);
r = realloc(s->path, sizeof(*r) * (s->path_len + 1));
if (!r) {
diff --git a/audio/audio_hw.h b/audio/audio_hw.h
index 4dd6038..db02a4f 100644
--- a/audio/audio_hw.h
+++ b/audio/audio_hw.h
@@ -116,8 +116,6 @@ struct route_setting
};
struct route_setting voicecall_default[] = {
- { .ctl_name = "AIF2DACL Source", .intval = 0, },
- { .ctl_name = "AIF2DACR Source", .intval = 0, },
{ .ctl_name = "AIF2 Mode", .intval = 0, },
{ .ctl_name = "DAC1L Mixer AIF1.1 Switch", .intval = 1, },
{ .ctl_name = "DAC1R Mixer AIF1.1 Switch", .intval = 1, },
@@ -128,14 +126,12 @@ struct route_setting voicecall_default[] = {
};
struct route_setting voicecall_default_disable[] = {
- { .ctl_name = "AIF2DACL Source", .intval = 0, },
- { .ctl_name = "AIF2DACR Source", .intval = 1, },
{ .ctl_name = "AIF2 Mode", .intval = 0, },
{ .ctl_name = "DAC1L Mixer AIF2 Switch", .intval = 0, },
{ .ctl_name = "DAC1R Mixer AIF2 Switch", .intval = 0, },
{ .ctl_name = "AIF2DAC Mux", .strval = "AIF3DACDAT", },
{ .ctl_name = "Main Mic Switch", .intval = 0, },
- { .ctl_name = "MIXINL IN1L Switch", .intval = 0, },
+ { .ctl_name = "MIXINL IN2L Switch", .intval = 0, },
{ .ctl_name = "Sub Mic Switch", .intval = 0, },
{ .ctl_name = "MIXINR IN1R Switch", .intval = 0, },
{ .ctl_name = NULL, },
@@ -143,43 +139,50 @@ struct route_setting voicecall_default_disable[] = {
struct route_setting default_input[] = {
{ .ctl_name = "Main Mic Switch", .intval = 1, },
- { .ctl_name = "IN1L Volume", .intval = 30, },
+ { .ctl_name = "AIF1ADCL Source", .intval = 1, },
{ .ctl_name = "MIXINL IN1L Switch", .intval = 1, },
- { .ctl_name = "MIXINL IN1L Volume", .intval = 0, },
- { .ctl_name = "AIF1ADC1 HPF Mode", .intval = 0, },
+ { .ctl_name = "AIF1ADC1 HPF Mode", .intval = 1, },
{ .ctl_name = "AIF1ADC1 HPF Switch", .intval = 1, },
+ { .ctl_name = "IN1L Volume", .intval = 28, },
+ { .ctl_name = "MIXINL IN1L Volume", .intval = 0, },
+ { .ctl_name = "AIF1ADC1 Volume", .intval = 96, },
+ { .ctl_name = "Submic ADC invert", .intval = 0, },
{ .ctl_name = NULL, },
};
struct route_setting default_input_disable[] = {
{ .ctl_name = "Main Mic Switch", .intval = 0, },
- { .ctl_name = "IN1L Volume", .intval = 22, },
{ .ctl_name = "MIXINL IN1L Switch", .intval = 0, },
+ { .ctl_name = "AIF1ADC1 HPF Mode", .intval = 0, },
{ .ctl_name = "AIF1ADC1 HPF Switch", .intval = 0, },
+ { .ctl_name = "IN1L Volume", .intval = 30, },
+ { .ctl_name = "MIXINL IN1L Volume", .intval = 0, },
+ { .ctl_name = "AIF1ADC1 Volume", .intval = 120, },
{ .ctl_name = NULL, },
};
struct route_setting headset_input[] = {
- { .ctl_name = "MIXINL IN1L Switch", .intval = 0, },
- { .ctl_name = "MIXINR IN1R Switch", .intval = 0, },
{ .ctl_name = "Headset Mic Switch", .intval = 1, },
- { .ctl_name = "IN2L Volume", .intval = 18, },
- { .ctl_name = "MIXINL IN2L Switch", .intval = 1, },
- { .ctl_name = "MIXINL IN2L Volume", .intval = 0, },
+ { .ctl_name = "AIF1ADCL Source", .intval = 1, },
+ { .ctl_name = "AIF1ADCR Source", .intval = 1, },
+ { .ctl_name = "MIXINR IN1R Switch", .intval = 1, },
{ .ctl_name = "AIF1ADC1 HPF Mode", .intval = 1, },
{ .ctl_name = "AIF1ADC1 HPF Switch", .intval = 1, },
+ { .ctl_name = "IN1R Volume", .intval = 28, },
+ { .ctl_name = "MIXINR IN1R Volume", .intval = 0, },
{ .ctl_name = "AIF1ADC1 Volume", .intval = 96, },
- { .ctl_name = "AIF1ADCL Source", .intval = 0, },
- { .ctl_name = "AIF1ADCR Source", .intval = 0, },
- { .ctl_name = "AIF2ADCL Source", .intval = 0, },
+ { .ctl_name = "Submic ADC invert", .intval = 0, },
{ .ctl_name = NULL, },
};
struct route_setting headset_input_disable[] = {
{ .ctl_name = "Headset Mic Switch", .intval = 0, },
- { .ctl_name = "MIXINL IN2L Switch", .intval = 0, },
+ { .ctl_name = "MIXINR IN1R Switch", .intval = 0, },
{ .ctl_name = "AIF1ADC1 HPF Mode", .intval = 0, },
{ .ctl_name = "AIF1ADC1 HPF Switch", .intval = 0, },
+ { .ctl_name = "IN1R Volume", .intval = 11, },
+ { .ctl_name = "MIXINR IN1R Volume", .intval = 0, },
+ { .ctl_name = "AIF1ADC1 Volume", .intval = 96, },
{ .ctl_name = NULL, },
};
@@ -211,27 +214,25 @@ struct route_setting bt_input[] = {
{ .ctl_name = "AIF2ADC Mux", .intval = 1, },
{ .ctl_name = "AIF1ADCL Source", .intval = 0, },
{ .ctl_name = "AIF1ADCR Source", .intval = 1, },
- { .ctl_name = "AIF2ADCL Source", .intval = 0, },
- { .ctl_name = "AIF2ADCR Source", .intval = 1, },
- { .ctl_name = "DAC1L Mixer AIF2 Switch", .intval = 1, },
- { .ctl_name = "DAC1R Mixer AIF2 Switch", .intval = 1, },
{ .ctl_name = "AIF1ADC1R Mixer AIF2 Switch", .intval = 1, },
{ .ctl_name = "AIF1ADC1L Mixer AIF2 Switch", .intval = 1, },
{ .ctl_name = "AIF1ADC1 Volume", .intval = 96, },
{ .ctl_name = "AIF2DAC Volume", .intval = 96, },
+ { .ctl_name = "Submic ADC invert", .intval = 0, },
{ .ctl_name = NULL, },
};
struct route_setting bt_disable[] = {
{ .ctl_name = "AIF2ADC Mux", .intval = 0, },
- { .ctl_name = "MIXINL IN2L Volume", .intval = 0, },
- { .ctl_name = "LINEOUT1N Switch", .intval = 1, },
- { .ctl_name = "LINEOUT1P Switch", .intval = 1, },
- { .ctl_name = "AIF2ADC HPF Mode", .intval = 0, },
- { .ctl_name = "AIF2ADC HPF Switch", .intval = 0, },
- { .ctl_name = "AIF2DAC2R Mixer AIF2 Switch", .intval = 0, },
- { .ctl_name = "AIF2DAC2L Mixer AIF2 Switch", .intval = 0, },
{ .ctl_name = "AIF1ADC1R Mixer AIF2 Switch", .intval = 0, },
{ .ctl_name = "AIF1ADC1L Mixer AIF2 Switch", .intval = 0, },
+ { .ctl_name = "AIF1ADC1 Volume", .intval = 96, },
+ { .ctl_name = "AIF2DAC Volume", .intval = 96, },
+ { .ctl_name = "AIF2DAC2L Mixer AIF1.1 Switch", .intval = 0, },
+ { .ctl_name = "AIF2DAC2R Mixer AIF1.1 Switch", .intval = 0, },
+ { .ctl_name = "AIF1DAC1 Volume", .intval = 96, },
+ { .ctl_name = "AIF1 Boost Volume", .intval = 0, },
+ { .ctl_name = "DAC2 Volume", .intval = 96, },
+ { .ctl_name = "AIF2DAC Volume", .intval = 96, },
{ .ctl_name = NULL, },
};
diff --git a/configs/Android.mk b/configs/Android.mk
index aba94af..05eb1e8 100644
--- a/configs/Android.mk
+++ b/configs/Android.mk
@@ -1,14 +1,11 @@
-ifneq ($(filter n5100 n5110,$(TARGET_DEVICE)),)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := tiny_hw
LOCAL_MODULE_OWNER := samsung
-LOCAL_SRC_FILES := tiny_hw.xml
+LOCAL_SRC_FILES := $(TARGET_DEVICE).xml
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_SUFFIX := .xml
LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/sound
include $(BUILD_PREBUILT)
-
-endif \ No newline at end of file
diff --git a/configs/n5100.xml b/configs/n5100.xml
new file mode 100755
index 0000000..ba25662
--- /dev/null
+++ b/configs/n5100.xml
@@ -0,0 +1,341 @@
+<!-- TinyHAL configuration file for Samsung Galaxy Note 8.0 N5100 -->
+<tinyhal>
+<!--
+We are able to have most of our routing static so do that
+-->
+<path>
+ <!-- do not change the adc & dac source of AIF2 -->
+ <ctl name="AIF2DACL Source" val="0"/>
+ <ctl name="AIF2DACR Source" val="0"/>
+ <ctl name="AIF2ADCL Source" val="0"/>
+ <ctl name="AIF2ADCR Source" val="1"/>
+
+ <ctl name="IN1L ZC Switch" val="0"/>
+ <ctl name="IN1R ZC Switch" val="0"/>
+ <ctl name="IN2L ZC Switch" val="0"/>
+ <ctl name="IN2R ZC Switch" val="0"/>
+ <ctl name="Output ZC Switch" val="0"/>
+ <ctl name="Speaker ZC Switch" val="0"/>
+ <ctl name="Headphone ZC Switch" val="0"/>
+
+ <!-- AIF1->DAC1 -->
+ <ctl name="DAC1L Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="DAC1R Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="DAC1 Switch" val="1"/>
+
+ <!-- ADC->AIF2 -->
+ <ctl name="AIF2DAC2L Mixer Left Sidetone Switch" val="1"/>
+ <ctl name="AIF2DAC2L Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="AIF2DAC2R Mixer Left Sidetone Switch" val="0"/>
+ <ctl name="AIF2DAC2R Mixer Right Sidetone Switch" val="1"/>
+ <ctl name="DAC2 Left Sidetone Volume" val="12"/>
+ <ctl name="DAC2 Right Sidetone Volume" val="12"/>
+ <ctl name="DAC2 Switch" val="1"/>
+
+ <!-- DAC1->HP -->
+ <ctl name="Left Headphone Mux" val="DAC"/>
+ <ctl name="Right Headphone Mux" val="DAC"/>
+
+ <!-- DAC1->SPKL/R->SPKL/R Boost->SPK -->
+ <ctl name="SPKL DAC1 Switch" val="1"/>
+ <ctl name="SPKR DAC1 Switch" val="1"/>
+ <ctl name="SPKL Boost SPKL Switch" val="1"/>
+ <ctl name="SPKL Boost SPKR Switch" val="0"/>
+ <ctl name="SPKR Boost SPKL Switch" val="0"/>
+ <ctl name="SPKR Boost SPKR Switch" val="1"/>
+ <ctl name="Speaker Mixer Volume" val="3"/>
+
+ <!-- DAC->Output mixer->Earpiece -->
+ <ctl name="Left Output Mixer DAC Switch" val="1"/>
+ <ctl name="Right Output Mixer DAC Switch" val="1"/>
+ <ctl name="Earpiece Mixer Left Output Switch" val="1"/>
+ <ctl name="Earpiece Mixer Right Output Switch" val="1"/>
+ <ctl name="Earpiece Switch" val="1"/>
+
+ <!-- LINEOUT -->
+ <ctl name="LINEOUT2N Mixer Left Output Switch" val="1"/>
+ <ctl name="LINEOUT2P Mixer Right Output Switch" val="1"/>
+ <ctl name="LINEOUT1N Mixer Right Output Switch" val="1"/>
+ <ctl name="LINEOUT1P Mixer Left Output Switch" val="1"/>
+
+ <!-- Input mixer->ADC->AIF1.1 -->
+ <ctl name="AIF1ADC1L Mixer ADC/DMIC Switch" val="1"/>
+ <ctl name="AIF1ADC1R Mixer ADC/DMIC Switch" val="1"/>
+
+ <!-- Main Mic->IN1LP/N->Input Mixer with +30dB at mixer -->
+ <ctl name="IN1L PGA IN1LP Switch" val="1"/>
+ <ctl name="IN1L PGA IN1LN Switch" val="1"/>
+ <ctl name="MIXINL IN1L Volume" val="1"/>
+ <ctl name="IN1L Switch" val="1"/>
+
+ <!-- Ear Mic->IN1RP/N->Input Mixer with +30dB at mixer -->
+ <ctl name="IN1R PGA IN1RP Switch" val="1"/>
+ <ctl name="IN1R PGA IN1RN Switch" val="1"/>
+ <ctl name="MIXINR IN1R Volume" val="1"/>
+ <ctl name="IN1R Switch" val="1"/>
+
+ <!-- Sub Mic->IN2RP/N->Input Mixer with +30dB at mixer -->
+ <ctl name="IN2R PGA IN2RP Switch" val="1"/>
+ <ctl name="IN2R PGA IN2RN Switch" val="1"/>
+ <ctl name="MIXINR IN2R Volume" val="1"/>
+ <ctl name="IN2R Switch" val="1"/>
+
+ <!-- Input mixer->ADC->AIF1 -->
+ <ctl name="AIF1ADC1L Mixer ADC/DMIC Switch" val="1"/>
+ <ctl name="AIF1ADC1R Mixer ADC/DMIC Switch" val="1"/>
+ <ctl name="ADCL Mux" val="ADC"/>
+
+ <!-- HPF on to take out some bounce -->
+ <ctl name="Sidetone HPF Switch" val="0"/>
+
+ <!-- Work around core issue -->
+ <ctl name="ADCL Mux" val="DMIC"/>
+ <ctl name="ADCL Mux" val="ADC"/>
+ <ctl name="ADCR Mux" val="DMIC"/>
+ <ctl name="ADCR Mux" val="ADC"/>
+
+ <!-- AIF2ADCDAT to AIF3ADC mux -->
+ <ctl name="AIF3ADC Mux" val="1"/>
+
+ <!-- Default all outputs off -->
+ <ctl name="HP Switch" val="0"/>
+ <ctl name="SPK Switch" val="0"/>
+ <ctl name="RCV Switch" val="0"/>
+ <ctl name="LINE Switch" val="0"/>
+ <ctl name="HDMI Switch" val="0"/>
+
+ <!-- Default all inputs off -->
+ <ctl name="Main Mic Switch" val="0"/>
+ <ctl name="Sub Mic Switch" val="0"/>
+ <ctl name="Headset Mic Switch" val="0"/>
+</path>
+<device name="earpiece">
+ <path name="on">
+ <ctl name="RCV Switch" val="1"/>
+ <ctl name="Earpiece Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Left Output Mixer DAC Volume" val="7"/>
+ <ctl name="Right Output Mixer DAC Volume" val="7"/>
+ <ctl name="Output Volume" val="57"/>
+ <ctl name="Earpiece Volume" val="1"/>
+ </path>
+ <path name="off">
+ <ctl name="RCV Switch" val="0"/>
+ <ctl name="Earpiece Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Left Output Mixer DAC Volume" val="7"/>
+ <ctl name="Right Output Mixer DAC Volume" val="7"/>
+ <ctl name="Output Volume" val="57"/>
+ <ctl name="Earpiece Volume" val="1"/>
+ </path>
+</device>
+<device name="speaker">
+ <path name="on">
+ <ctl name="SPK Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="SPKL DAC1 Volume" val="1"/>
+ <ctl name="SPKR DAC1 Volume" val="1"/>
+ <ctl name="Speaker Mixer Volume" val="3"/>
+ <ctl name="Speaker Boost Volume" val="7"/>
+ <ctl name="Speaker Volume" val="60"/>
+ </path>
+ <path name="off">
+ <ctl name="SPK Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="SPKL DAC1 Volume" val="1"/>
+ <ctl name="SPKR DAC1 Volume" val="1"/>
+ <ctl name="Speaker Mixer Volume" val="0"/>
+ <ctl name="Speaker Volume" val="57"/>
+ <ctl name="Speaker Boost Volume" val="0"/>
+ </path>
+</device>
+<device name="headphone">
+ <path name="on">
+ <ctl name="HP Switch" val="1"/>
+ <ctl name="Headphone Volume" val="50"/>
+ <ctl name="Headphone ZC Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ </path>
+ <path name="off">
+ <ctl name="HP Switch" val="0"/>
+ <ctl name="Headphone ZC Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Headphone Volume" val="45"/>
+ </path>
+</device>
+<device name="sco-out">
+ <path name="on">
+ <ctl name="AIF3ADC Mux" val="1"/>
+ <ctl name="AIF2DAC2L Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="AIF2DAC2R Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="AIF2DAC Volume" val="96"/>
+ <ctl name="DAC2 Volume" val="96"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ </path>
+ <path name="off">
+ <ctl name="AIF2DAC2L Mixer AIF1.1 Switch" val="0"/>
+ <ctl name="AIF2DAC2R Mixer AIF1.1 Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC2 Volume" val="96"/>
+ <ctl name="AIF2DAC Volume" val="96"/>
+ </path>
+</device>
+<device name="analog-dock">
+ <path name="on">
+ <ctl name="LINEOUT2N Switch" val="1"/>
+ <ctl name="LINEOUT2P Switch" val="1"/>
+ <ctl name="LINEOUT2N Mixer Left Output Switch" val="1"/>
+ <ctl name="LINEOUT2P Mixer Right Output Switch" val="1"/>
+ <ctl name="LINE Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Left Output Mixer DAC Volume" val="7"/>
+ <ctl name="Right Output Mixer DAC Volume" val="7"/>
+ <ctl name="Output Volume" val="55"/>
+ <ctl name="LINEOUT2 Volume" val="1"/>
+ </path>
+ <path name="off">
+ <ctl name="LINEOUT2N Switch" val="0"/>
+ <ctl name="LINEOUT2P Switch" val="0"/>
+ <ctl name="LINE Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Left Output Mixer DAC Volume" val="7"/>
+ <ctl name="Right Output Mixer DAC Volume" val="7"/>
+ <ctl name="Output Volume" val="57"/>
+ <ctl name="LINEOUT2 Volume" val="1"/>
+ </path>
+</device>
+<device name="digital-dock">
+ <path name="on">
+ <ctl name="LINEOUT1N Switch" val="1"/>
+ <ctl name="LINEOUT1P Switch" val="1"/>
+ <ctl name="HDMI Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ </path>
+ <path name="off">
+ <ctl name="LINEOUT1N Switch" val="1"/>
+ <ctl name="LINEOUT1P Switch" val="1"/>
+ <ctl name="HDMI Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="SPKL DAC1 Volume" val="1"/>
+ <ctl name="SPKR DAC1 Volume" val="1"/>
+ <ctl name="Speaker Mixer Volume" val="0"/>
+ <ctl name="Speaker Boost Volume" val="0"/>
+ </path>
+</device>
+<device name="builtin-mic">
+ <path name="on">
+ <ctl name="Main Mic Switch" val="1"/>
+ <ctl name="AIF1ADCL Source" val="1"/>
+ <ctl name="MIXINL IN1L Switch" val="1"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="1"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="1"/>
+ <ctl name="IN1L Volume" val="28"/>
+ <ctl name="MIXINL IN1L Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ <ctl name="Submic ADC invert" val="0"/>
+ </path>
+ <path name="off">
+ <ctl name="Main Mic Switch" val="0"/>
+ <ctl name="MIXINL IN1L Switch" val="0"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="0"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="0"/>
+ <ctl name="IN1L Volume" val="30"/>
+ <ctl name="MIXINL IN1L Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="120"/>
+ </path>
+</device>
+<device name="back-mic">
+ <path name="on">
+ <ctl name="Sub Mic Switch" val="1"/>
+ <ctl name="AIF1ADCR Source" val="1"/>
+ <ctl name="MIXINR IN2R Switch" val="1"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="1"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="1"/>
+ <ctl name="IN2R Volume" val="28"/>
+ <ctl name="MIXINR IN2R Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ <ctl name="Submic ADC invert" val="0"/>
+ </path>
+ <path name="off">
+ <ctl name="Sub Mic Switch" val="0"/>
+ <ctl name="MIXINR IN2R Switch" val="0"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="0"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="0"/>
+ <ctl name="IN2R Volume" val="11"/>
+ <ctl name="MIXINR IN2R Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ </path>
+</device>
+<device name="headset-in">
+ <path name="on">
+ <ctl name="Headset Mic Switch" val="1"/>
+ <ctl name="AIF1ADCL Source" val="1"/>
+ <ctl name="AIF1ADCR Source" val="1"/>
+ <ctl name="MIXINR IN1R Switch" val="1"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="1"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="1"/>
+ <ctl name="IN1R Volume" val="28"/>
+ <ctl name="MIXINR IN1R Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ <ctl name="Submic ADC invert" val="0"/>
+ </path>
+ <path name="off">
+ <ctl name="Headset Mic Switch" val="0"/>
+ <ctl name="MIXINR IN1R Switch" val="0"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="0"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="0"/>
+ <ctl name="IN1R Volume" val="11"/>
+ <ctl name="MIXINR IN1R Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ </path>
+</device>
+<device name="sco-in">
+ <path name="on">
+ <ctl name="AIF2ADC Mux" val="1"/>
+ <ctl name="AIF1ADCL Source" val="0"/>
+ <ctl name="AIF1ADCR Source" val="1"/>
+ <ctl name="AIF1ADC1R Mixer AIF2 Switch" val="1"/>
+ <ctl name="AIF1ADC1L Mixer AIF2 Switch" val="1"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ <ctl name="AIF2DAC Volume" val="96"/>
+ <ctl name="Submic ADC invert" val="0"/>
+ </path>
+ <path name="off">
+ <ctl name="AIF2ADC Mux" val="0"/>
+ <ctl name="AIF1ADC1R Mixer AIF2 Switch" val="0"/>
+ <ctl name="AIF1ADC1L Mixer AIF2 Switch" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ <ctl name="AIF2DAC Volume" val="96"/>
+ </path>
+</device>
+<device name="fmradio">
+ <path name="on">
+ <ctl name="DAC1L Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="DAC1L Mixer AIF1.1 Switch" val="1"/>
+ </path>
+ <path name="off">
+ <ctl name="MIXINL Output Record Volume" val="0"/>
+ <ctl name="MIXINR Output Record Volume" val="0"/>
+ </path>
+</device>
+</tinyhal> \ No newline at end of file
diff --git a/configs/tiny_hw.xml b/configs/n5110.xml
index 16868a5..9d186b2 100755
--- a/configs/tiny_hw.xml
+++ b/configs/n5110.xml
@@ -1,4 +1,4 @@
-<!-- TinyHAL configuration file for Samsung Galaxy S III -->
+<!-- TinyHAL configuration file for Samsung Galaxy Note 8.0 N5110 -->
<tinyhal>
<!--
We are able to have most of our routing static so do that
diff --git a/configs/n5120.xml b/configs/n5120.xml
new file mode 100755
index 0000000..014d1a6
--- /dev/null
+++ b/configs/n5120.xml
@@ -0,0 +1,354 @@
+<!-- TinyHAL configuration file for Samsung Galaxy Note 8.0 N5120 -->
+<tinyhal>
+<!--
+We are able to have most of our routing static so do that
+-->
+<path>
+ <!-- do not change the adc & dac source of AIF2 -->
+ <ctl name="AIF2DACL Source" val="0"/>
+ <ctl name="AIF2DACR Source" val="0"/>
+ <ctl name="AIF2ADCL Source" val="0"/>
+ <ctl name="AIF2ADCR Source" val="1"/>
+
+ <ctl name="IN1L ZC Switch" val="0"/>
+ <ctl name="IN1R ZC Switch" val="0"/>
+ <ctl name="IN2L ZC Switch" val="0"/>
+ <ctl name="IN2R ZC Switch" val="0"/>
+ <ctl name="Output ZC Switch" val="0"/>
+ <ctl name="Speaker ZC Switch" val="0"/>
+ <ctl name="Headphone ZC Switch" val="0"/>
+
+ <!-- AIF1->DAC1 -->
+ <ctl name="DAC1L Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="DAC1R Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="DAC1 Switch" val="1"/>
+
+ <!-- ADC->AIF2 -->
+ <ctl name="AIF2DAC2L Mixer Left Sidetone Switch" val="1"/>
+ <ctl name="AIF2DAC2L Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="AIF2DAC2R Mixer Left Sidetone Switch" val="0"/>
+ <ctl name="AIF2DAC2R Mixer Right Sidetone Switch" val="1"/>
+ <ctl name="DAC2 Left Sidetone Volume" val="12"/>
+ <ctl name="DAC2 Right Sidetone Volume" val="12"/>
+ <ctl name="DAC2 Switch" val="1"/>
+
+ <!-- DAC1->HP -->
+ <ctl name="Left Headphone Mux" val="DAC"/>
+ <ctl name="Right Headphone Mux" val="DAC"/>
+
+ <!-- DAC1->SPKL/R->SPKL/R Boost->SPK -->
+ <ctl name="SPKL DAC1 Switch" val="1"/>
+ <ctl name="SPKR DAC1 Switch" val="1"/>
+ <ctl name="SPKL Boost SPKL Switch" val="1"/>
+ <ctl name="SPKL Boost SPKR Switch" val="0"/>
+ <ctl name="SPKR Boost SPKL Switch" val="0"/>
+ <ctl name="SPKR Boost SPKR Switch" val="1"/>
+ <ctl name="Speaker Mixer Volume" val="3"/>
+
+ <!-- DAC->Output mixer->Earpiece -->
+ <ctl name="Left Output Mixer DAC Switch" val="1"/>
+ <ctl name="Right Output Mixer DAC Switch" val="1"/>
+ <ctl name="Earpiece Mixer Left Output Switch" val="1"/>
+ <ctl name="Earpiece Mixer Right Output Switch" val="1"/>
+ <ctl name="Earpiece Switch" val="1"/>
+
+ <!-- LINEOUT -->
+ <ctl name="LINEOUT2N Mixer Left Output Switch" val="1"/>
+ <ctl name="LINEOUT2P Mixer Right Output Switch" val="1"/>
+ <ctl name="LINEOUT1N Mixer Right Output Switch" val="1"/>
+ <ctl name="LINEOUT1P Mixer Left Output Switch" val="1"/>
+
+ <!-- Input mixer->ADC->AIF1.1 -->
+ <ctl name="AIF1ADC1L Mixer ADC/DMIC Switch" val="1"/>
+ <ctl name="AIF1ADC1R Mixer ADC/DMIC Switch" val="1"/>
+
+ <!-- Main Mic->IN1LP/N->Input Mixer with +30dB at mixer -->
+ <ctl name="IN1L PGA IN1LP Switch" val="1"/>
+ <ctl name="IN1L PGA IN1LN Switch" val="1"/>
+ <ctl name="MIXINL IN1L Volume" val="1"/>
+ <ctl name="IN1L Switch" val="1"/>
+
+ <!-- Ear Mic->IN1RP/N->Input Mixer with +30dB at mixer -->
+ <ctl name="IN1R PGA IN1RP Switch" val="1"/>
+ <ctl name="IN1R PGA IN1RN Switch" val="1"/>
+ <ctl name="MIXINR IN1R Volume" val="1"/>
+ <ctl name="IN1R Switch" val="1"/>
+
+ <!-- Sub Mic->IN2RP/N->Input Mixer with +30dB at mixer -->
+ <ctl name="IN2R PGA IN2RP Switch" val="1"/>
+ <ctl name="IN2R PGA IN2RN Switch" val="1"/>
+ <ctl name="MIXINR IN2R Volume" val="1"/>
+ <ctl name="IN2R Switch" val="1"/>
+
+ <!-- Input mixer->ADC->AIF1 -->
+ <ctl name="AIF1ADC1L Mixer ADC/DMIC Switch" val="1"/>
+ <ctl name="AIF1ADC1R Mixer ADC/DMIC Switch" val="1"/>
+ <ctl name="ADCL Mux" val="ADC"/>
+
+ <!-- HPF on to take out some bounce -->
+ <ctl name="Sidetone HPF Switch" val="0"/>
+
+ <!-- Work around core issue -->
+ <ctl name="ADCL Mux" val="DMIC"/>
+ <ctl name="ADCL Mux" val="ADC"/>
+ <ctl name="ADCR Mux" val="DMIC"/>
+ <ctl name="ADCR Mux" val="ADC"/>
+
+ <!-- AIF2ADCDAT to AIF3ADC mux -->
+ <ctl name="AIF3ADC Mux" val="1"/>
+
+ <!-- Default all outputs off -->
+ <ctl name="HP Switch" val="0"/>
+ <ctl name="SPK Switch" val="0"/>
+ <ctl name="RCV Switch" val="0"/>
+ <ctl name="LINE Switch" val="0"/>
+ <ctl name="HDMI Switch" val="0"/>
+
+ <!-- Default all inputs off -->
+ <ctl name="Main Mic Switch" val="0"/>
+ <ctl name="Sub Mic Switch" val="0"/>
+ <ctl name="Headset Mic Switch" val="0"/>
+
+</path>
+<device name="earpiece">
+ <path name="on">
+ <ctl name="RCV Switch" val="1"/>
+ <ctl name="Earpiece Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Left Output Mixer DAC Volume" val="7"/>
+ <ctl name="Right Output Mixer DAC Volume" val="7"/>
+ <ctl name="Output Volume" val="57"/>
+ <ctl name="Earpiece Volume" val="1"/>
+ </path>
+ <path name="off">
+ <ctl name="RCV Switch" val="0"/>
+ <ctl name="Earpiece Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Left Output Mixer DAC Volume" val="7"/>
+ <ctl name="Right Output Mixer DAC Volume" val="7"/>
+ <ctl name="Output Volume" val="57"/>
+ <ctl name="Earpiece Volume" val="1"/>
+ </path>
+</device>
+<device name="speaker">
+ <path name="on">
+ <ctl name="SPK Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="SPKL DAC1 Volume" val="1"/>
+ <ctl name="SPKR DAC1 Volume" val="1"/>
+ <ctl name="Speaker Mixer Volume" val="3"/>
+ <ctl name="Speaker Boost Volume" val="7"/>
+ <ctl name="Speaker Volume" val="60"/>
+ </path>
+ <path name="off">
+ <ctl name="SPK Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="SPKL DAC1 Volume" val="1"/>
+ <ctl name="SPKR DAC1 Volume" val="1"/>
+ <ctl name="Speaker Mixer Volume" val="0"/>
+ <ctl name="Speaker Volume" val="57"/>
+ <ctl name="Speaker Boost Volume" val="0"/>
+ </path>
+</device>
+<device name="headphone">
+ <path name="on">
+ <ctl name="HP Switch" val="1"/>
+ <ctl name="Headphone Volume" val="50"/>
+ <ctl name="Headphone ZC Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ </path>
+ <path name="off">
+ <ctl name="HP Switch" val="0"/>
+ <ctl name="Headphone ZC Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Headphone Volume" val="45"/>
+ </path>
+</device>
+<device name="sco-out">
+ <path name="on">
+ <ctl name="AIF3ADC Mux" val="1"/>
+ <ctl name="AIF2DAC2L Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="AIF2DAC2R Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="AIF2DAC Volume" val="96"/>
+ <ctl name="DAC2 Volume" val="96"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ </path>
+ <path name="off">
+ <ctl name="AIF2DAC2L Mixer AIF1.1 Switch" val="0"/>
+ <ctl name="AIF2DAC2R Mixer AIF1.1 Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC2 Volume" val="96"/>
+ <ctl name="AIF2DAC Volume" val="96"/>
+ </path>
+</device>
+<device name="analog-dock">
+ <path name="on">
+ <ctl name="LINEOUT2N Switch" val="1"/>
+ <ctl name="LINEOUT2P Switch" val="1"/>
+ <ctl name="LINEOUT2N Mixer Left Output Switch" val="1"/>
+ <ctl name="LINEOUT2P Mixer Right Output Switch" val="1"/>
+ <ctl name="LINE Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Left Output Mixer DAC Volume" val="7"/>
+ <ctl name="Right Output Mixer DAC Volume" val="7"/>
+ <ctl name="Output Volume" val="55"/>
+ <ctl name="LINEOUT2 Volume" val="1"/>
+ </path>
+ <path name="off">
+ <ctl name="LINEOUT2N Switch" val="0"/>
+ <ctl name="LINEOUT2P Switch" val="0"/>
+ <ctl name="LINE Switch" val="0"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="Left Output Mixer DAC Volume" val="7"/>
+ <ctl name="Right Output Mixer DAC Volume" val="7"/>
+ <ctl name="Output Volume" val="57"/>
+ <ctl name="LINEOUT2 Volume" val="1"/>
+ </path>
+</device>
+<device name="digital-dock">
+ <path name="on">
+ <ctl name="LINEOUT1N Switch" val="1"/>
+ <ctl name="LINEOUT1P Switch" val="1"/>
+ <ctl name="HDMI Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ </path>
+ <path name="off">
+ <ctl name="LINEOUT1N Switch" val="1"/>
+ <ctl name="LINEOUT1P Switch" val="1"/>
+ <ctl name="HDMI Switch" val="1"/>
+ <ctl name="AIF1DAC1 Volume" val="96"/>
+ <ctl name="AIF1 Boost Volume" val="0"/>
+ <ctl name="DAC1 Volume" val="96"/>
+ <ctl name="SPKL DAC1 Volume" val="1"/>
+ <ctl name="SPKR DAC1 Volume" val="1"/>
+ <ctl name="Speaker Mixer Volume" val="0"/>
+ <ctl name="Speaker Boost Volume" val="0"/>
+ </path>
+</device>
+<device name="builtin-mic">
+ <path name="on">
+ <ctl name="Main Mic Switch" val="1"/>
+ <ctl name="AIF1ADCL Source" val="0"/>
+ <ctl name="MIXINL IN1L Switch" val="1"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="1"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="1"/>
+ <ctl name="DAC1L Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="DAC1R Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="DAC1 Right Sidetone Volume" val="0"/>
+ <ctl name="DAC1 Left Sidetone Volume" val="0"/>
+ <ctl name="IN1L Volume" val="28"/>
+ <ctl name="MIXINL IN1L Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ </path>
+ <path name="off">
+ <ctl name="Main Mic Switch" val="0"/>
+ <ctl name="MIXINL IN1L Switch" val="0"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="0"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="0"/>
+ <ctl name="IN1L Volume" val="30"/>
+ <ctl name="MIXINL IN1L Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="120"/>
+ </path>
+</device>
+<device name="back-mic">
+ <path name="on">
+ <ctl name="Sub Mic Switch" val="1"/>
+ <ctl name="AIF1ADCR Source" val="1"/>
+ <ctl name="MIXINR IN2R Switch" val="1"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="1"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="1"/>
+ <ctl name="DAC1L Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="DAC1R Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="DAC1 Right Sidetone Volume" val="0"/>
+ <ctl name="DAC1 Left Sidetone Volume" val="0"/>
+ <ctl name="IN2R Volume" val="30"/>
+ <ctl name="MIXINR IN2R Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="120"/>
+ </path>
+ <path name="off">
+ <ctl name="Sub Mic Switch" val="0"/>
+ <ctl name="MIXINR IN2R Switch" val="0"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="0"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="0"/>
+ <ctl name="IN2R Volume" val="11"/>
+ <ctl name="MIXINR IN2R Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ </path>
+</device>
+<device name="headset-in">
+ <path name="on">
+ <ctl name="Headset Mic Switch" val="1"/>
+ <ctl name="AIF1ADCL Source" val="1"/>
+ <ctl name="AIF1ADCR Source" val="1"/>
+ <ctl name="MIXINR IN1R Switch" val="1"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="1"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="1"/>
+ <ctl name="DAC1L Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="DAC1R Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="DAC1 Right Sidetone Volume" val="0" />
+ <ctl name="DAC1 Left Sidetone Volume" val="0" />
+ <ctl name="IN1R Volume" val="18" />
+ <ctl name="MIXINR IN1R Volume" val="0" />
+ <ctl name="AIF1ADC1 Volume" val="118" />
+ </path>
+ <path name="off">
+ <ctl name="Headset Mic Switch" val="0"/>
+ <ctl name="MIXINR IN1R Switch" val="0"/>
+ <ctl name="AIF1ADC1 HPF Mode" val="0"/>
+ <ctl name="AIF1ADC1 HPF Switch" val="0"/>
+ <ctl name="IN1R Volume" val="11"/>
+ <ctl name="MIXINR IN1R Volume" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ </path>
+</device>
+<device name="sco-in">
+ <path name="on">
+ <ctl name="AIF2ADC Mux" val="1"/>
+ <ctl name="AIF1ADCL Source" val="0"/>
+ <ctl name="AIF1ADCR Source" val="1"/>
+ <ctl name="AIF1ADC1R Mixer AIF2 Switch" val="1"/>
+ <ctl name="AIF1ADC1L Mixer AIF2 Switch" val="1"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ <ctl name="AIF2DAC Volume" val="96"/>
+ <ctl name="DAC1L Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="DAC1R Mixer Right Sidetone Switch" val="0"/>
+ <ctl name="DAC1 Right Sidetone Volume" val="0"/>
+ <ctl name="DAC1 Left Sidetone Volume" val="0"/>
+ </path>
+ <path name="off">
+ <ctl name="AIF2ADC Mux" val="0"/>
+ <ctl name="AIF1ADC1R Mixer AIF2 Switch" val="0"/>
+ <ctl name="AIF1ADC1L Mixer AIF2 Switch" val="0"/>
+ <ctl name="AIF1ADC1 Volume" val="96"/>
+ <ctl name="AIF2DAC Volume" val="96"/>
+ </path>
+</device>
+<device name="fmradio">
+ <path name="on">
+ <ctl name="DAC1L Mixer AIF1.1 Switch" val="1"/>
+ <ctl name="DAC1L Mixer AIF1.1 Switch" val="1"/>
+ </path>
+ <path name="off">
+ <ctl name="MIXINL Output Record Volume" val="0"/>
+ <ctl name="MIXINR Output Record Volume" val="0"/>
+ </path>
+</device>
+</tinyhal> \ No newline at end of file