diff options
author | Srini Kandagatla <srinivas.kandagatla@static.8.26.4.46.clients.your-server.de> | 2017-02-27 10:48:45 +0100 |
---|---|---|
committer | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2017-02-27 10:52:59 +0100 |
commit | ec8f44c18e6273034cd09334e826a6ba62ed82e6 (patch) | |
tree | c5a56d5ab59d06f559dc50b44b63d582eaf1a674 | |
parent | 5a50fcebde27a5e8046b45e7d76738df87eb1675 (diff) |
DMIC changesdmic-db410c
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-rw-r--r-- | arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 18 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/msm8916-pins.dtsi | 25 | ||||
-rw-r--r-- | sound/soc/qcom/apq8016_sbc.c | 18 |
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; } |