From patchwork Thu Sep 17 04:23:17 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 7201841 Return-Path: X-Original-To: patchwork-linux-sh@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 550159F380 for ; Thu, 17 Sep 2015 04:23:25 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 77523208F5 for ; Thu, 17 Sep 2015 04:23:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6F55F208F4 for ; Thu, 17 Sep 2015 04:23:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751385AbbIQEXX (ORCPT ); Thu, 17 Sep 2015 00:23:23 -0400 Received: from relmlor4.renesas.com ([210.160.252.174]:14812 "EHLO relmlie3.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751375AbbIQEXW (ORCPT ); Thu, 17 Sep 2015 00:23:22 -0400 Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie3.idc.renesas.com with ESMTP; 17 Sep 2015 13:23:21 +0900 Received: from relmlac4.idc.renesas.com (relmlac4.idc.renesas.com [10.200.69.24]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 150D94A7A2; Thu, 17 Sep 2015 13:23:21 +0900 (JST) Received: by relmlac4.idc.renesas.com (Postfix, from userid 0) id C9E4D480B9; Thu, 17 Sep 2015 13:23:19 +0900 (JST) Received: from relmlac4.idc.renesas.com (localhost [127.0.0.1]) by relmlac4.idc.renesas.com (Postfix) with ESMTP id 7BD52480AA; Thu, 17 Sep 2015 13:23:19 +0900 (JST) Received: from relmlii2.idc.renesas.com [10.200.68.66] by relmlac4.idc.renesas.com with ESMTP id PAK21896; Thu, 17 Sep 2015 13:23:19 +0900 X-IronPort-AV: E=Sophos;i="5.17,543,1437404400"; d="scan'";a="195829810" Received: from mail-sg2apc01lp0242.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.242]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA; 17 Sep 2015 13:23:18 +0900 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by HK2PR06MB0595.apcprd06.prod.outlook.com (10.161.187.146) with Microsoft SMTP Server (TLS) id 15.1.268.17; Thu, 17 Sep 2015 04:23:17 +0000 Message-ID: <87mvwl7k5k.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 06/20 v2] ASoC: ak4613: add Digital Playback Volume support User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Simon , Magnus , Linux-SH In-Reply-To: <87vbb97kci.wl%kuninori.morimoto.gx@renesas.com> References: <87vbb97kci.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Thu, 17 Sep 2015 04:23:17 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: OS1PR01CA0005.jpnprd01.prod.outlook.com (25.161.225.143) To HK2PR06MB0595.apcprd06.prod.outlook.com (25.161.187.146) X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0595; 2:ebcq3vULo1vHEV2QWzUpdfaplYfUk8MMEYY7mTcXnbT6+43LWlk2uI+PMoOMB2SB9dZ2LRM0fECLxkP2H3sYEiGI28sZwLGJWJQpRz6wrhCVtQkPXrV/Ke4p70J5en9Lz5rmp0ibGukmJJFJ0WP/89dMYyxOO8VDTZtNzXONX8s=; 3:mYnBjfnOq4iaa4heNYp4JNA3hTgZ2/yhnGcEQ7/6zDKwtS6XMxcI/vMcwNF7n07Joy3oqc7n+g0GKXlJsddbR+ePZmiDX14oqp8mokieC5i1YQ7Mgk4EWHkDBoeRDNOpt4UvuP3RAgbxEZO0Yg92qw==; 25:rUpUtLSS8/AohJEamngEdAyWCiUhtFq1MA/khoWoVsN3zozvKouPaz8CB6n1T4gWTcEwXIzPtD7RJtWQEq6w1rjjXZ1ZbboTwsyYTmPbXbKmGbF2fVE6SuQlQzjJ2ew4x+xYgrGyuMUwdGlosMVlAzxtHDGpdyh4GBQU9QZ/iwcAsnP75VTSZfSAVWFV18AQ5kx+RlS5yfulkc3b8drten2EjM9xUIlnlumqxPm2NK8jnlgDCTVkFBhclAFYdUuHtbLtRKBGYB6PxDeGvOjVVg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HK2PR06MB0595; X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0595; 20:dXpH6GviW53LqCOFaQO9LQGa1WhW/a6V83otQhIj23ghrdpBhN7yn9krd0RpYEmdX2SH+piNBfUtMyFYA0f56sCKPaK7PqFPyhuDsbqG2WEU2IlLCyFVRF0JirIz+Uj+LS0bWe05x4oCu3qQs2sMAmulT7xJkH6NiX1ygTGwf5Wl8p8U21sCYXP49YkJgWr9yeXlxA/unHiSb5m6R8Shh1G4aujWTIc52+N7cqrYmEv7puuUaHeCskDKoObT5T44WLK8JHCbn55mX7696NV7ybiy/SSRjzeUdDI2IgvhtOnO7SULR9LebFYvvAcsKpXsJbiPCtI2rE4dKNveLMH0/fdun+fw5CusbW0vtmixfMz/pRjxhHpItoKwEBBhgjDpvDd/4bQL3eedebKOEUsodV20TExUV4gu0r7+MPK5gpwUvElkHqL1B1m+GoAxI+2qcbfauFP9BFyaPCYEeTNg6b9HyeoxlbSLlZddgTrfv0tnIpS1k663dHiPiMD0Kzsr; 4:81gGUhZ/yXCZI2w50CIMI7i1JS1ADZ0R2Ujoj908uvSdQ9IE387vYoi+fzJRiDOzoYv72Uuv/0+r2MCe2AkTUmriiLMi3r/tu3pbhSjdOTVI6hjszZWWGtv9WKt9CtnLKSYtmpwzfFMR3sGRww/2e1LUmxQ7exyHARDwqMAm8gLjvYq8tPcdD//a3Q8I9rR13F1rO2w++wYOtHvT+bhOKXKHexybk8LOs/BDeda7fxkwUtmtjn4Xzp49A/D+XjDEqZGgZHw/anUte2ZhFPYgIRQe7R7+A0zy/nrM+NQVXui6Ptb9oiE3co9I+czcyV9+K5/lnTZPpfqDJf2Cjw4erg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(520078)(8121501046)(5005006)(3002001); SRVR:HK2PR06MB0595; BCL:0; PCL:0; RULEID:; SRVR:HK2PR06MB0595; X-Forefront-PRVS: 07025866F6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(189002)(199003)(46102003)(68736005)(62966003)(4001350100001)(5004730100002)(77096005)(36756003)(189998001)(42186005)(229853001)(5001860100001)(23726002)(53416004)(107886002)(2950100001)(5001960100002)(106356001)(5007970100001)(81156007)(5001830100001)(97736004)(77156002)(50986999)(5001770100001)(105586002)(101416001)(92566002)(50466002)(19580395003)(76176999)(66066001)(46406003)(83506001)(33646002)(19580405001)(122386002)(4001540100001)(40100003)(86362001)(64706001)(87976001)(47776003)(54356999)(575784001)(69596002); DIR:OUT; SFP:1102; SCL:1; SRVR:HK2PR06MB0595; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HK2PR06MB0595; 23:RqrFUD3zTDDFgh++KHkJ2CM/JQXBHoBY/HJ0Gvxuy?= =?us-ascii?Q?UjEfHCCPZmfiTSGxsOy2ySwCLl/NcTFmhlbli6JzU4SpZ7JBizTyaRrvPQsX?= =?us-ascii?Q?ucpUJ8f9yY/vqGM2BQr3+1SWI0LepQiqg3sCc6eM1HIYAai1KKSzJAdtMNxV?= =?us-ascii?Q?BWi6eJA5uDVwu5G366f+3hUfs9xyIOHnps0KbOJWAqIgTNy8nL9KIrV2JRCu?= =?us-ascii?Q?wsLdj2pg7Hv+G7+exqsdjUcoe+tMNTeIRwCkeC5ydnOEyRYp1Zs1JK5QDMLb?= =?us-ascii?Q?PxmHxEx9qWVRtNA8wHUo7foiWx6Y/owqquXWhuXFGVjhFrKnlu3Ieff+3Zzd?= =?us-ascii?Q?TFB0eaUovPOZvtOJP5mHND+ZIkfhtBJMgw7b3lISKOieIoXryHZibmPK4xfu?= =?us-ascii?Q?P9zzG5NHQCKxP35Eni7ejbnPPihjn21Z2GT8KwYUb39eOZvTglaDHgi4+rZ/?= =?us-ascii?Q?NHT3GNnFr6Ll8JdsWCvc9OyZUubP6PCsqtEkcgJBor7zR+lFO5EJiekcFtLO?= =?us-ascii?Q?SDH3euBJHCIRqFwzf/PAk1AEe075Pw2pIHUy9YLwNjVwLUjWyRikeRFn/XQe?= =?us-ascii?Q?BaHePWnPw3QDjdYLgB40Ub4x9B/cHPHO1N4U+fhkIs+CVRyzxxctY/FQgaUR?= =?us-ascii?Q?P+qYNhufKO/btJgmFlHJygRVyEcGA/YGV1XmrDu8+Mgl6otetkli0rx0RXyr?= =?us-ascii?Q?3VqdAARU88gLSoPfGXpqooHTyJBQ8bEsgMmNVPl9B1P5p8LPO3y7qkdbDVdc?= =?us-ascii?Q?hQClQwbPSYcn9mLBqhgqsCiLsfocCSsDecxoBWPuuE/1ef4TojYgtYgT5MRH?= =?us-ascii?Q?ZaCcyqKQdqfuoy49qJ3gVleMtnCv3iLOUWBsfrjnKatZPC6Wd2BWVOnvoPmk?= =?us-ascii?Q?6j08wXR68b9EqhyPvLcDmDAhXBBSoheygMQPhnkCppsbfsdIAyczvCDc/GxH?= =?us-ascii?Q?EjwqrNsLYgSHX5Adsf/esChB9DCPBI2Kt0qDIeiTe/zjUwHBbkYGzQGQtKhf?= =?us-ascii?Q?A2PUOPtycqhfFEgfErl0THHbgIh5zLEDjMil79VRLzcbDW0IDuOQQPpQGi0o?= =?us-ascii?Q?OowC+3eWRXE8D/arNLhkdXA/oFGMVRaG+PfxftwQsclA59C2O7u82mV4vcZd?= =?us-ascii?Q?KcEaZN9qWzTeSpC2SPeNa6/vWAyCIKLQEGZWA5ovyOGw71CEulM67zcHiqkh?= =?us-ascii?Q?5r4wTA7K6SbGmewfTLhOjo5Q4IIWXNZrFp1X7AdY3w/hqba5JXX9+ss6Zvi/?= =?us-ascii?Q?BWrA+PxWgEOG/w+nDZVtTs5rY0sFg8Lv1ScSMFJHzWnXUfVCtVMkYIux5exB?= =?us-ascii?B?dz09?= X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0595; 5:TDzoYobgFvfVxBAtUcPXvCEgRlgfsK8vV1S8TiXBSYNk9hdMsR9gkcgNIBaii4c6LaI4snUf/T40+tMLnROspQP/mPONs5IavAR3m1gXcRRMh5JbDxp7o0OUxK3kFcxTF83t9s8wGRKolYZ4unLtRg==; 24:S/ds8f+2DevI/bynzwjPUCopCLdW2r7DYPIWyehF8VNVjGCLOm9/00tXCja8E6xnV1zB2ht4qlXW+dDdXZOe7lARL68NrtxVzKrrgWx4ffo=; 20:qe6czCTZpEyP0xHgksTwDUG8nVWQ6dp68WlbUPqScrV7m9Bsaiip4cc6oxGyVQs/xhxn44dy8zj+Czi/zhktQbKb4Ywg5WG+CQyeq9ECqGoZfLWDc80e/rmRZy7pIDrVUsYkE1lsaHykv89IKAa4yiCwRMB78/STe1UDXN4EEIY= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2015 04:23:17.0155 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2PR06MB0595 Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto For L/ROUT1 to L/ROUT6 Signed-off-by: Kuninori Morimoto --- v1 -> v2 - not yet posted sound/soc/codecs/ak4613.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/sound/soc/codecs/ak4613.c b/sound/soc/codecs/ak4613.c index fd96a8f..07a2664 100644 --- a/sound/soc/codecs/ak4613.c +++ b/sound/soc/codecs/ak4613.c @@ -22,6 +22,7 @@ #include #include #include +#include #define PW_MGMT1 0x00 /* Power Management 1 */ #define PW_MGMT2 0x01 /* Power Management 2 */ @@ -91,6 +92,31 @@ struct ak4613_interface { struct ak4613_formats playback; }; +/* + * Playback Volume + * + * max : 0x00 : 0 dB + * ( 0.5 dB step ) + * min : 0xFE : -127.0 dB + * mute: 0xFF + */ +static const DECLARE_TLV_DB_SCALE(out_tlv, -12750, 50, 1); + +static const struct snd_kcontrol_new ak4613_snd_controls[] = { + SOC_DOUBLE_R_TLV("Digital Playback Volume1", LOUT1, ROUT1, + 0, 0xFF, 1, out_tlv), + SOC_DOUBLE_R_TLV("Digital Playback Volume2", LOUT2, ROUT2, + 0, 0xFF, 1, out_tlv), + SOC_DOUBLE_R_TLV("Digital Playback Volume3", LOUT3, ROUT3, + 0, 0xFF, 1, out_tlv), + SOC_DOUBLE_R_TLV("Digital Playback Volume4", LOUT4, ROUT4, + 0, 0xFF, 1, out_tlv), + SOC_DOUBLE_R_TLV("Digital Playback Volume5", LOUT5, ROUT5, + 0, 0xFF, 1, out_tlv), + SOC_DOUBLE_R_TLV("Digital Playback Volume6", LOUT6, ROUT6, + 0, 0xFF, 1, out_tlv), +}; + static const struct reg_default ak4613_reg[] = { { 0x0, 0x0f }, { 0x1, 0x07 }, { 0x2, 0x3f }, { 0x3, 0x20 }, { 0x4, 0x20 }, { 0x5, 0x55 }, { 0x6, 0x05 }, { 0x7, 0x07 }, @@ -397,6 +423,8 @@ static int ak4613_resume(struct snd_soc_codec *codec) static struct snd_soc_codec_driver soc_codec_dev_ak4613 = { .resume = ak4613_resume, .set_bias_level = ak4613_set_bias_level, + .controls = ak4613_snd_controls, + .num_controls = ARRAY_SIZE(ak4613_snd_controls), .dapm_widgets = ak4613_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(ak4613_dapm_widgets), .dapm_routes = ak4613_intercon,