From patchwork Wed Sep 9 11:29:11 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zidan Wang X-Patchwork-Id: 7145791 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 075749F314 for ; Wed, 9 Sep 2015 11:28:29 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1CA1120970 for ; Wed, 9 Sep 2015 11:28:28 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id D5DF920977 for ; Wed, 9 Sep 2015 11:28:26 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id E838B265353; Wed, 9 Sep 2015 13:28:25 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Status: No, score=-2.6 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, NO_DNS_FOR_FROM, RCVD_IN_DNSWL_LOW, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from alsa0.perex.cz (localhost [IPv6:::1]) by alsa0.perex.cz (Postfix) with ESMTP id 2FA64260A5D; Wed, 9 Sep 2015 13:27:45 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id F15992605D6; Wed, 9 Sep 2015 13:27:43 +0200 (CEST) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0111.outbound.protection.outlook.com [207.46.100.111]) by alsa0.perex.cz (Postfix) with ESMTP id 6A10E26054D for ; Wed, 9 Sep 2015 13:27:37 +0200 (CEST) Received: from CO2PR03CA0012.namprd03.prod.outlook.com (10.141.194.139) by BY1PR0301MB1253.namprd03.prod.outlook.com (10.161.203.25) with Microsoft SMTP Server (TLS) id 15.1.262.15; Wed, 9 Sep 2015 11:27:34 +0000 Received: from BN1BFFO11FD022.protection.gbl (2a01:111:f400:7c10::1:160) by CO2PR03CA0012.outlook.office365.com (2a01:111:e400:1414::11) with Microsoft SMTP Server (TLS) id 15.1.274.11 via Frontend Transport; Wed, 9 Sep 2015 11:27:34 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1BFFO11FD022.mail.protection.outlook.com (10.58.144.85) with Microsoft SMTP Server (TLS) id 15.1.262.18 via Frontend Transport; Wed, 9 Sep 2015 11:27:33 +0000 Received: from b50113.ap.freescale.net (b50113.ap.freescale.net [10.192.241.89]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t89BRPes018077; Wed, 9 Sep 2015 04:27:31 -0700 From: Zidan Wang To: Date: Wed, 9 Sep 2015 19:29:11 +0800 Message-ID: <4aff33dcdc441f7c7a2612fef80c099aafec1e1d.1441798038.git.zidan.wang@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <22ae1784eb84bf45b23bb7095b7dea8a116c0c2c.1441798038.git.zidan.wang@freescale.com> References: <22ae1784eb84bf45b23bb7095b7dea8a116c0c2c.1441798038.git.zidan.wang@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD022; 1:bXUN3TgmF6oKJempui89/t/2Z2kDSf8Vljm872pF5dgk/tnj3FEUvkv0XT+7AIAsK6JuiTDca6bxsyTnmUgFReoZ+e/k8ZVVpAOcL9rXV6So3KN2uDiFxi6/9Es4HjlOq0oG7qRSZyZShuePytC2T268XouVKrtxT5Ss3zSJjAxAjCyGOdfxO34mjwsLrVRqIzGxI9wh5u+cZyddNPT6LBc/JCNlYiSrmA9C0i/h+kigJRwTBxvNiUBLNkOVf47KbQDmRvigjjdLeUS1MxBjAYWxWjOvS8sB3y2Cp+GwpWrCsYSjT1ToJkSTNMDDtXnBZh3alPF5BbzYnvqrZoze9oltSksTLYIOfx5ZCm+1K+Ylpobw2E/LX5rsYgvpjiq8LeXTMwM2HBpCnR6t0Csgvw== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(5007970100001)(46102003)(85426001)(36756003)(11100500001)(69596002)(6806004)(5001830100001)(77096005)(50466002)(110136002)(106466001)(189998001)(105606002)(50986999)(5001860100001)(68736005)(107886002)(92566002)(76176999)(2950100001)(5001960100002)(50226001)(2351001)(64706001)(77156002)(4001540100001)(48376002)(97736004)(81156007)(5003940100001)(118296001)(33646002)(229853001)(5001920100001)(86362001)(19580405001)(19580395003)(62966003)(104016003)(47776003)(87936001)(4001430100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY1PR0301MB1253; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1253; 2:ZLL0v4HKvlxURYhOXWGRqg227x+phBpn3m9hDMqHh768XSET/+hEiYYbkoWZmaMiNNI7OSKT0VX6syuROaoSVar89x+rgXlAMt5dZDDEB2og0xerRaEepstQG+tgmC0S3ej0TOvG+3P6WJQmulhV5BUhzVeHDJSeafXhC9A4W1A=; 3:FMWv6GeB/ncBrxxBPtliITcEDNR5+5SHzccUl5UydWs4iHOWKrqrvhZLGukDfp+7550IS9QaBRtGhfxfZai0/ATOQROwDnGp+F9iXIwFHdVo/x+aOOlV9GpNKKXxbdPS32LOkourt8evVXbojRds7+m5xWeY10d5zNySWQOhsOu11E1Smy094wa2wCVEaJhFlD/MjiBM25uKUmz60K1pIt76RWjs9XKJ6hYD0CXTV94=; 25:6hH1zEjZ9hZWo/Kx2azfrt5WqVh/6dknL2Cq1QhkUdAifDdKaD/qTijSx7S8m8QC6zgZsMQMbtfu0TYL5n+OJicr2oNJkcoTPvX2bQWO+I1zy9gtMKZCSBW7XXDerAIlrGAHpgYfQgpWii1X4RzFuskJY3c2TKx53YEoYfYn3MV6bTlW9L/c2EiRXJEWl2a99Qb4SgwZ6WxVwVvi1axw1aQ67yG7536Spf8DPwLwTmzIY16+Gz37dgGaH4yW0k1D X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1253; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1253; 20:pH/s9OFLqwwZzOCtpaUPLFuVqJH4wawKSenyO2zRQLskzXJl5J/Qwll2Xh5p88Xqh2cji2aJp0gFyGlSNxf63qogN66Ieuwt3i8GbHgTOGBZUQB41T1EDkqNn/1Pxz1KSBr/klZd3yepbhNqov5jYTBYTwrPdFR7Yd4yXP/UE6pFt8zbeO8YwnR44+jhmLhXwn3UZVM6qh3vIqsl/GyTqmKFUdAt5S+iZxh39SZmm+XPabXbjaCNBd3mv6MBFs5dUFFkRz5MQPYWhMe6SCFoWGE9hWX8eTfHNcfPdZPI31zWUQqz9km5F5OmjAsIZ1diMppKqk/b/XmtLfEqnFXDJTGkPvvP5MkQDvcIp5aU+Nc=; 4:cPlIQdppXGe+LbIiAKMZVvMYHbrLDWzqNHykOjoLRoG40XJAABBBodXLaTVh3Y7dLDw5MIBBeQnDgSPKY9Yp6auWG51KC64BqKpcboi1LInPr5CO7TRWRZd66dadFkA+4nk0vmo5MixumV9yLqI24rF4VJYHseEXTE3IkM5Vlez/idRFdkr3tdb/OCfr7ipcz8ZkqO9G/kM/qnNjGFxrHJJu2dQfObzErbHU6QaKB4r3mawVJN94aIy4dQhEclFjkIOeo9RMcrC2UKWsvcl5ywYFLu+Edmk82to8U9g7XhVLlcHYmOEfYDdXm86yK8uF X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(8121501046)(5005006)(3002001); SRVR:BY1PR0301MB1253; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0301MB1253; X-Forefront-PRVS: 0694C54398 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR0301MB1253; 23:Skf+FH4vmauO8mnolWR7TJnRDdCpbINvVP4ZqIQ?= =?us-ascii?Q?WdI37Y9m+iPP+JKFYVwSWcOnH8dYbRNpibCLGof8A9CsTzDn7FPOVcRrT6Od?= =?us-ascii?Q?X7pOCrDH9CC4HzxtOQd1Oe8nvH2lpansaimUnhI6JGmih3zwKMbJ4KoCFZsh?= =?us-ascii?Q?7Hzzw6Fd+MCwjRiT+tXBgt8lCwnq86lnoQGr2uGlX8rE5ePUmWxVS/EQUvkD?= =?us-ascii?Q?1PcpBRyov2m7g+5G8FhkLpDBBIdf6qmn2Jbi9cdEXnftVXeLzAdC1v2vh5P2?= =?us-ascii?Q?Mozf4Bz3rk/peqnfdJcyz32CTHjId/01w7DUKYsHFMfp848YrITqCcCeKaK2?= =?us-ascii?Q?Bv1bWYMHvphdCFhUS1Y1xvTIpLD6PVCwfduxTV+AMi4bk5ZUgRL7jiruffxm?= =?us-ascii?Q?Yr6dgM4EKNqAyYYuNuCDUCYVI2u6TDyBvr8kjO7UuSuJgQXQc7Xc7jxH5a2Z?= =?us-ascii?Q?xJwnWrqjW3Mz6QKqc09XeKAEz8EQNAVnaFQ7y5/lSTpgaJo5wD0mQB+LFQjb?= =?us-ascii?Q?/FIymCN0izIGujD/kr0A1xMiBEY57yCe800Kj4s47vjTBzYR+bgljP5pmb1b?= =?us-ascii?Q?XD35rZtzKbDnLXZZpzcmaEn4byv0j7ZiO5F7uyZWyTy1x3mOzfM6X7InBHo+?= =?us-ascii?Q?HyXhag9id8d/nAF8D9GI89h7s8plMb+weM/6VJ/DxN4ezAySTpQkBjxRzrko?= =?us-ascii?Q?yLKJKk1mPuv54gTAME2zfgTGPAiT/DThZwh9rRlWzm2WY6uhm4xH5RodTLD3?= =?us-ascii?Q?T2f/iudxwueX6zoS0+s/SQ81avhGBXQqFpkC+G6TqiwTTAhqn9UiFhqR7qRt?= =?us-ascii?Q?y+2MDkfQK8DiJiD12sEyiMT1NRmtkJ2xTKRxoJRF1PuzGeQfy25DsmFKO7yw?= =?us-ascii?Q?AxvuB00/VWQgEXNQjSR3VK83z81sthwH3v2nUEGbCJlzcAb3dz/rmSKnCUQy?= =?us-ascii?Q?tLJpqn66By79DFVJ0IG+svv9+KermS52I/hSBLgAWVh46RxDUKRoUFOEToVa?= =?us-ascii?Q?l8MIOUcZvvjN3S6DvKE8jAvTlm+E6RwlNtmFDYsFy35U+iwxzzdf6m2m7G5X?= =?us-ascii?Q?KroZAMSgehrcCfMRIQvbCFWkLPmfu52qDjcIkWpWCyG8v6Gtucl07YsTqVKk?= =?us-ascii?Q?UTU79xKChI5mKSguP4v4OqW5IGZ4fL7X5YRA4Xd4iSekgo1o00BItsdGQ/fT?= =?us-ascii?Q?1qaLJaC2YX5IUFw4jZSxQablaT1iZmcz1Gp3R9t5GfXonyFA5rBrRYEhtw8N?= =?us-ascii?Q?VsZtNUES4oiSG5Nt0CcJTLLukRme45fEPOVBj0phf1/IFbFqK1ZFq9q2jHQr?= =?us-ascii?Q?3hYtDo+vS+FLuP0u5o+sN9kBj1tEolklWMxOHwlr6BTle?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1253; 5:oF56hNwnAofYk5VTxSbBln7HXmZCTPLZi+wpuLk8TLxPgaDeJqJqHOK/ScvD725K5lIQ3YlzPB5cfRudKbs0Cl3HTCw2g+3zcb+CBXoLNL7h42KzBPrQqoCPpuvZL7SBbX+7/rfH5AvIlNMWFkR9tA==; 24:D8wn7jlFHBXyq7S221g5y64UR6Y4bgSKOX8pCr3llTLrpNAn2c2txVrX/IfGcW+lf54BBkSt5XHoxKEsM23GsV+0RPKDs7a1oJZ93O44mUE=; 20:y65drIcAMHWK9qJSGE8lzQLCkSu8nOvDcuVPd/0qpvCiGePcXQA77YDp2zP1VjeAKmB3kIXIBwTtExaRwFUIPQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Sep 2015 11:27:33.5411 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0301MB1253 Cc: ckeepax@opensource.wolfsonmicro.com, patches@opensource.wolfsonmicro.com, alsa-devel@alsa-project.org, Zidan Wang Subject: [alsa-devel] [PATCH 2/2] ASoC: wm8960: correct gain value for input PGA and add microphone PGA X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP The input PGAs have a gain range from -17.25dB to +30dB in 0.75dB steps. The boost stage can provide additional gain. For line inputs, -12dB to +6dB gain is available on the boost mixer. For micphone inputs, it can provide up to +29dB additional gain from the microphone PGA. Signed-off-by: Zidan Wang Acked-by: Charles Keepax --- sound/soc/codecs/wm8960.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c index 6163474..6975390 100644 --- a/sound/soc/codecs/wm8960.c +++ b/sound/soc/codecs/wm8960.c @@ -212,27 +212,37 @@ static int wm8960_put_deemph(struct snd_kcontrol *kcontrol, } static const DECLARE_TLV_DB_SCALE(adc_tlv, -9750, 50, 1); +static const DECLARE_TLV_DB_SCALE(inpga_tlv, -1725, 75, 0); static const DECLARE_TLV_DB_SCALE(dac_tlv, -12750, 50, 1); static const DECLARE_TLV_DB_SCALE(bypass_tlv, -2100, 300, 0); static const DECLARE_TLV_DB_SCALE(out_tlv, -12100, 100, 1); -static const DECLARE_TLV_DB_SCALE(boost_tlv, -1500, 300, 1); +static const DECLARE_TLV_DB_SCALE(lineinboost_tlv, -1500, 300, 1); +static const unsigned int micboost_tlv[] = { + TLV_DB_RANGE_HEAD(2), + 0, 1, TLV_DB_SCALE_ITEM(0, 1300, 0), + 2, 3, TLV_DB_SCALE_ITEM(2000, 900, 0), +}; static const struct snd_kcontrol_new wm8960_snd_controls[] = { SOC_DOUBLE_R_TLV("Capture Volume", WM8960_LINVOL, WM8960_RINVOL, - 0, 63, 0, adc_tlv), + 0, 63, 0, inpga_tlv), SOC_DOUBLE_R("Capture Volume ZC Switch", WM8960_LINVOL, WM8960_RINVOL, 6, 1, 0), SOC_DOUBLE_R("Capture Switch", WM8960_LINVOL, WM8960_RINVOL, 7, 1, 0), SOC_SINGLE_TLV("Right Input Boost Mixer RINPUT3 Volume", - WM8960_INBMIX1, 4, 7, 0, boost_tlv), + WM8960_INBMIX1, 4, 7, 0, lineinboost_tlv), SOC_SINGLE_TLV("Right Input Boost Mixer RINPUT2 Volume", - WM8960_INBMIX1, 1, 7, 0, boost_tlv), + WM8960_INBMIX1, 1, 7, 0, lineinboost_tlv), SOC_SINGLE_TLV("Left Input Boost Mixer LINPUT3 Volume", - WM8960_INBMIX2, 4, 7, 0, boost_tlv), + WM8960_INBMIX2, 4, 7, 0, lineinboost_tlv), SOC_SINGLE_TLV("Left Input Boost Mixer LINPUT2 Volume", - WM8960_INBMIX2, 1, 7, 0, boost_tlv), + WM8960_INBMIX2, 1, 7, 0, lineinboost_tlv), +SOC_SINGLE_TLV("Right Input Boost Mixer RINPUT1 Volume", + WM8960_RINPATH, 4, 4, 0, micboost_tlv), +SOC_SINGLE_TLV("Left Input Boost Mixer LINPUT1 Volume", + WM8960_LINPATH, 4, 4, 0, micboost_tlv), SOC_DOUBLE_R_TLV("Playback Volume", WM8960_LDAC, WM8960_RDAC, 0, 255, 0, dac_tlv),