Received: by 10.192.165.148 with SMTP id m20csp1109992imm; Wed, 2 May 2018 14:21:32 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo3550a6+Z/uf4lZAhF7M/NqZwuK7Wp5gKBUbavG0QLPuo5hL0LuryDfVZQ7crnXa79lcul X-Received: by 2002:a63:3c0c:: with SMTP id j12-v6mr17935322pga.203.1525296092950; Wed, 02 May 2018 14:21:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525296092; cv=none; d=google.com; s=arc-20160816; b=Y3qKVEZiEHssQeRFxluORiQAFBchTHt1dgaQo3vl/1rjXLL2KZ7FJ3TN8wPdtrIF74 GYekDPx19+vwBndtxae8KIJNHSFmgXbnIlBayWRlQZgvNex+OSuVo8k8VNFbHTc91/YV OdPeSeLvBrb7fspiREQU0vqRDkvunFbTtgNpfZ6HQvWXiHO4ErkbkVzhVVg258T6b+S2 DQLLUwaAWavJdMKxtBPgdTDBhoWkmMOM5GoijlygkSt+IIVbfyA4T5eTB1U1jz5BV5kk R/55wOrHI+6GbQPHqVUIKomYlKMobg8hKeDKmSF3ZtNdcDmxNx/lU6V62o77JFj3FId0 IkMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:tags:references:in-reply-to:message-id :date:subject:to:from:arc-authentication-results; bh=I3TOBXAmTMsNAQvatI3lVOWgGOAwi2Tkxd5Q43mEZbQ=; b=l4JzFLb2Ojy/4XNrjqA6Lr7Vhg4a66MhVGpU4UDNq3SowJEjD8UKSKTqj6IjFRmP45 rNOM3qXOzXXL2i96CH0UxTsgyxYBDmpcX49n+937P81PaSk+qWP5rOMOA0hgyr0LPUuF 3ath8V2+DH6bD8N+8no9eSE2A996/NwcFtg2z6WKUsJiJfCdU4Ykmxkp9XyXrvALo+5J S5LFdMPN1qch74O+7BUS3RHWLvNnkm1l9NOWmLodwP1UWqkF+7WRf5jurMEQM4ZaqOAb cxUH5J6TYe22sy9k0nWR9bNcLPtP2A5772BUj2wUPrIwx95h3FBjOv8rc/1mzHtlOCyb pcQA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i2-v6si10335853pgo.289.2018.05.02.14.21.18; Wed, 02 May 2018 14:21:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751856AbeEBVR5 (ORCPT + 99 others); Wed, 2 May 2018 17:17:57 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:42604 "EHLO dd26836.kasserver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751814AbeEBVR4 (ORCPT ); Wed, 2 May 2018 17:17:56 -0400 X-Greylist: delayed 578 seconds by postgrey-1.27 at vger.kernel.org; Wed, 02 May 2018 17:17:56 EDT Received: from dayas.3.home (77.118.143.54.wireless.dyn.drei.com [77.118.143.54]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 577E73367CA6; Wed, 2 May 2018 23:08:35 +0200 (CEST) From: Danny Milosavljevic To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Maxime Ripard , Chen-Yu Tsai , Danny Milosavljevic , Andrea Bondavalli , Fabio Estevam , Icenowy Zheng , Philipp Zabel , Kuninori Morimoto , alsa-devel@alsa-project.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com Subject: [PATCH v14 8/8] ASoC: sun4i-codec: Add Left Capture Select, Right Capture Select Date: Wed, 2 May 2018 23:08:00 +0200 Message-Id: <20180502210800.1971-9-dannym@scratchpost.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180502210800.1971-1-dannym@scratchpost.org> References: <20180502210800.1971-1-dannym@scratchpost.org> Tags: patch Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add Left Capture Select and Right Capture Select for Allwinner A10 and Allwinner A20. Signed-off-by: Danny Milosavljevic --- sound/soc/sunxi/sun4i-codec.c | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index 45dcb80a1da9..1a4ba3bae5da 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -706,6 +706,25 @@ static DECLARE_TLV_DB_RANGE(sun7i_codec_micin_preamp_gain_scale, 0, 0, TLV_DB_SCALE_ITEM(0, 0, 0), 1, 7, TLV_DB_SCALE_ITEM(2400, 300, 0)); +static const char * const sun4i_codec_capture_source[] = { + "Line", + "FM", + "Mic1", + "Mic2", + "Mic1,Mic2", + "Mic1+Mic2", + "Output Mixer", + "Line,Mic1", +}; + +static SOC_ENUM_SINGLE_DECL(sun4i_codec_enum_capture_source, + SUN4I_CODEC_ADC_ACTL, + SUN4I_CODEC_ADC_ACTL_ADCIS, + sun4i_codec_capture_source); + +static const struct snd_kcontrol_new sun4i_codec_capture_source_controls = + SOC_DAPM_ENUM("Capture Source", sun4i_codec_enum_capture_source); + static const char * const sun4i_codec_difflinein_source[] = { "Stereo", "Differential", @@ -841,6 +860,10 @@ static const struct snd_soc_dapm_widget sun4i_codec_codec_dapm_widgets[] = { &sun4i_codec_pa_mute), /* MUX */ + SND_SOC_DAPM_MUX("Left Capture Select", SND_SOC_NOPM, 0, 0, + &sun4i_codec_capture_source_controls), + SND_SOC_DAPM_MUX("Right Capture Select", SND_SOC_NOPM, 0, 0, + &sun4i_codec_capture_source_controls), SND_SOC_DAPM_MUX("Differential Line Source", SND_SOC_NOPM, 0, 0, &sun4i_codec_difflinein_source_controls), @@ -908,6 +931,33 @@ static const struct snd_soc_dapm_route sun4i_codec_codec_dapm_routes[] = { /* LNRDF Routes */ { "Differential Line Source", "Differential", "Line Left" }, { "Differential Line Source", "Differential", "Line Right" }, + + /* Right ADC Input Routes */ + { "Right Capture Select", "Line", "Line Right" }, + { "Right Capture Select", "Line", "Differential Line Capture Switch" }, + { "Right Capture Select", "FM", "FM Right" }, + { "Right Capture Select", "Mic1", "MIC1 Pre-Amplifier" }, + { "Right Capture Select", "Mic2", "MIC2 Pre-Amplifier" }, + { "Right Capture Select", "Mic1,Mic2", "MIC2 Pre-Amplifier" }, + { "Right Capture Select", "Mic1+Mic2", "MIC2 Pre-Amplifier" }, + { "Right Capture Select", "Mic1+Mic2", "MIC1 Pre-Amplifier" }, + { "Right Capture Select", "Output Mixer", "Right Mixer" }, + { "Right Capture Select", "Line,Mic1", "MIC1 Pre-Amplifier" }, + { "Right ADC", NULL, "Right Capture Select" }, + + /* Left ADC Input Routes */ + { "Left Capture Select", "Line", "Line Left" }, + { "Left Capture Select", "Line", "Differential Line Capture Switch" }, + { "Left Capture Select", "FM", "FM Left" }, + { "Left Capture Select", "Mic1", "MIC1 Pre-Amplifier" }, + { "Left Capture Select", "Mic2", "MIC2 Pre-Amplifier" }, + { "Left Capture Select", "Mic1,Mic2", "MIC1 Pre-Amplifier" }, + { "Left Capture Select", "Mic1+Mic2", "MIC1 Pre-Amplifier" }, + { "Left Capture Select", "Mic1+Mic2", "MIC2 Pre-Amplifier" }, + { "Left Capture Select", "Output Mixer", "Left Mixer" }, + { "Left Capture Select", "Line,Mic1", "Line Left" }, + { "Left Capture Select", "Line,Mic1", "Differential Line Capture Switch" }, + { "Left ADC", NULL, "Left Capture Select" }, }; struct sun4i_codec_quirks {