aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrini Kandagatla <srinivas.kandagatla@static.8.26.4.46.clients.your-server.de>2017-02-27 10:48:45 +0100
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2017-02-27 10:52:59 +0100
commitec8f44c18e6273034cd09334e826a6ba62ed82e6 (patch)
treec5a56d5ab59d06f559dc50b44b63d582eaf1a674
parent5a50fcebde27a5e8046b45e7d76738df87eb1675 (diff)
DMIC changesdmic-db410c
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-rw-r--r--arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi18
-rw-r--r--arch/arm64/boot/dts/qcom/msm8916-pins.dtsi25
-rw-r--r--sound/soc/qcom/apq8016_sbc.c18
3 files changed, 55 insertions, 6 deletions
diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
index 5687590a61514..7e01abb2689ea 100644
--- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
+++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
@@ -22,7 +22,7 @@
/ {
aliases {
serial0 = &blsp1_uart2;
- serial1 = &blsp1_uart1;
+ // serial1 = &blsp1_uart1;
usid0 = &pm8916_0;
i2c0 = &blsp_i2c2;
i2c1 = &blsp_i2c6;
@@ -42,7 +42,7 @@
serial@78af000 {
label = "LS-UART0";
- status = "okay";
+ status = "disabled";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp1_uart1_default>;
pinctrl-1 = <&blsp1_uart1_sleep>;
@@ -216,7 +216,7 @@
vddcx-supply = <&pm8916_s1>;
extcon = <&usb_id>, <&usb_id>;
dr_mode = "otg";
- status = "okay";
+ status = "disabled";
switch-gpio = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb_sw_sel_pm>;
@@ -281,13 +281,18 @@
reg-names = "mic-iomux", "spkr-iomux";
status = "okay";
- pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
+ pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act &cdc_dmic_lines_act>;
pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
pinctrl-names = "default", "sleep";
qcom,model = "DB410c";
qcom,audio-routing =
"AMIC2", "MIC BIAS Internal2",
- "AMIC3", "MIC BIAS External1";
+ "AMIC3", "MIC BIAS External1",
+ "DMIC1", "MIC BIAS Internal1",
+ "DMIC1", "Digital Mic1",
+ "DMIC2", "MIC BIAS Internal1",
+ "DMIC2", "Digital Mic2";
+
external-dai-link@0 {
link-name = "ADV7533";
cpu { /* QUAT */
@@ -462,7 +467,8 @@
l13 {
regulator-min-microvolt = <1750000>;
- regulator-max-microvolt = <3337000>;
+ regulator-max-microvolt = <1750000>;
+ //regulator-max-microvolt = <3337000>;
};
l14 {
diff --git a/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi b/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
index 4cb0b58341432..ba42346bfec27 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
@@ -13,6 +13,31 @@
&msmgpio {
+
+ dmic_clk_default: dmic_clk_default {
+ pinmux {
+ function = "dmic0_clk";
+ pins = "gpio0";
+ };
+ pinconf {
+ pins = "gpio0";
+ drive-strength = <8>;
+ bias-disable;
+ };
+ };
+
+ dmic_data_default: dmic_data_default {
+ pinmux {
+ function = "dmic0_data";
+ pins = "gpio1";
+ };
+ pinconf {
+ pins = "gpio1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+ };
+
blsp1_uart1_default: blsp1_uart1_default {
pinmux {
function = "blsp_uart1";
diff --git a/sound/soc/qcom/apq8016_sbc.c b/sound/soc/qcom/apq8016_sbc.c
index d084d74682998..ef84d4624dab6 100644
--- a/sound/soc/qcom/apq8016_sbc.c
+++ b/sound/soc/qcom/apq8016_sbc.c
@@ -35,10 +35,24 @@ struct apq8016_sbc_data {
#define MIC_CTRL_TLMM_SCLK_EN BIT(1)
#define SPKR_CTL_PRI_WS_SLAVE_SEL_11 (BIT(17) | BIT(16))
+static const struct snd_soc_dapm_widget msm8x16_dapm_widgets[] = {
+
+// SND_SOC_DAPM_MIC("Handset Mic", NULL),
+// SND_SOC_DAPM_MIC("Headset Mic", NULL),
+// SND_SOC_DAPM_MIC("Secondary Mic", NULL),
+ SND_SOC_DAPM_MIC("Digital Mic1", NULL),
+ SND_SOC_DAPM_MIC("Digital Mic2", NULL),
+};
+
+
+
+
static int apq8016_sbc_dai_init(struct snd_soc_pcm_runtime *rtd)
{
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
struct snd_soc_card *card = rtd->card;
+ struct snd_soc_codec *codec = rtd->codec;
+ struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
struct apq8016_sbc_data *pdata = snd_soc_card_get_drvdata(card);
int rval = 0;
@@ -67,6 +81,10 @@ static int apq8016_sbc_dai_init(struct snd_soc_pcm_runtime *rtd)
break;
}
+ snd_soc_dapm_new_controls(dapm, msm8x16_dapm_widgets,
+ ARRAY_SIZE(msm8x16_dapm_widgets));
+
+ snd_soc_dapm_sync(dapm);
return rval;
}