From patchwork Tue Jun 7 06:21:33 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9159893 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 548B460572 for ; Tue, 7 Jun 2016 06:26:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 30C5025E13 for ; Tue, 7 Jun 2016 06:26:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1400D2823D; Tue, 7 Jun 2016 06:26:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C3E8125E13 for ; Tue, 7 Jun 2016 06:26:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751461AbcFGG0u (ORCPT ); Tue, 7 Jun 2016 02:26:50 -0400 Received: from relmlor1.renesas.com ([210.160.252.171]:6403 "EHLO relmlie4.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751031AbcFGG0t (ORCPT ); Tue, 7 Jun 2016 02:26:49 -0400 X-Greylist: delayed 304 seconds by postgrey-1.27 at vger.kernel.org; Tue, 07 Jun 2016 02:26:49 EDT Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie4.idc.renesas.com with ESMTP; 07 Jun 2016 15:21:38 +0900 Received: from relmlac3.idc.renesas.com (relmlac3.idc.renesas.com [10.200.69.23]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 36B32498EA; Tue, 7 Jun 2016 15:21:36 +0900 (JST) Received: by relmlac3.idc.renesas.com (Postfix, from userid 0) id 2EC1A1806F; Tue, 7 Jun 2016 15:21:36 +0900 (JST) Received: from relmlac3.idc.renesas.com (localhost [127.0.0.1]) by relmlac3.idc.renesas.com (Postfix) with ESMTP id 279581800A; Tue, 7 Jun 2016 15:21:36 +0900 (JST) Received: from relmlii1.idc.renesas.com [10.200.68.65] by relmlac3.idc.renesas.com with ESMTP id RAZ16262; Tue, 7 Jun 2016 15:21:36 +0900 X-IronPort-AV: E=Sophos;i="5.22,559,1449500400"; d="scan'";a="212461955" Received: from mail-sg2apc01lp0246.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.246]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA; 07 Jun 2016 15:21:34 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=jC9oUojCH7MgiFdeNTzKJHpCfK/sCr3pVyX1w4JiwJ8=; b=nlVbot3FQOLtAfbNAwm6v40VLdWgzyWkUNc0BAt0AHtfipwBtVZ4GLfyGE4vM68hr982+eaCDwYtN5Kwh6Li1xAWyjDTPeeLcENeEM1UvbTp1LHG4j0br0ZeR+mK05fX2U/VtBHnbAUZP4ztXBn2A3QYMSomp8V1Zx5yNTBH8Ow= 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 HK2PR06MB1697.apcprd06.prod.outlook.com (10.167.73.11) with Microsoft SMTP Server (TLS) id 15.1.511.8; Tue, 7 Jun 2016 06:21:33 +0000 Message-ID: <87oa7dtti3.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto To: Mark Brown CC: Simon , Linux-Renesas , Linux-DT , Linux-ALSA , Liam Girdwood Subject: [PATCH] ASoC: rsnd: adg :: AUDIO-CLKOUTn can synchronizes with L/R clock. User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Tue, 7 Jun 2016 06:21:33 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TYXPR0101CA0015.jpnprd01.prod.outlook.com (10.168.40.153) To HK2PR06MB1697.apcprd06.prod.outlook.com (10.167.73.11) X-MS-Office365-Filtering-Correlation-Id: b0faafcf-e80f-41b9-9554-08d38e9bf8f5 X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB1697; 2:3tMAUzT9MzkwG7xYn8ALmif60pRiL8J88KcBuxGNVAoVkC0/ezOXsuQPGeOCJSyso+VVmYX22dQinH6rINigW5wnRVsFDe15RJyKsJeOGR7l9GIGA/lnoojiIaFi4c/wGLdSn1OB5sa/dGGL3zhjY56gEhiHyJXx9oMlSjqGfoaPxeF0xItSuilozxmjQOli; 3:6zq/5YMk1E+zA0rbL5NziIEX6YBMLQseulhtqMuLwCSjb8//wM7qg6vMm7LxgXgrOF0jolEzcYtFjL/5lBf8Iyy5eRR2Mgw7nnY1HDDo15uozlSqWBk/cdq/LFCrwg40 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HK2PR06MB1697; X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB1697; 25:+Uf/60ONhNGhJFbZqox6iy6MXgL6BKiUqRSFGBOhUYs0KjIq3dJtPavH5IXjH7RcQexGTbXH4hAefTDzbmo8CopEbDF0VuNPhehKCFGE1c6aDO+cF/Hm5qVkYE49YomP6/F8bnjuCwupHYovmc99jSihlbtg033OBM7EZ8CUCxJ4L1qJPUugw5XvhXcJjQ8t3sW0TBwJPfyOqV26Zzq5wKbteJlSlsSAu1RfsZ30RRaw9V3EDDWHXHRpy/GJJ+YTdVVnELZdeNyzVvh3SMs7PBAbuvvii6CjKlgkfKxPa39hvD3XvQ3EoAhG2538+//2mtSkMmUAwtKB80SNsYrUYcyvuC2R6rtjNVRVgcWBg3qpMs0bR3dWX3cGdxLGsm32CI2zpnXZ/emDSqef2Iu5PhWOg3GoVN31hpbEoDzxNylgSqgKgZpE4ZmXV55XoMJh9sueMWJ/xDzYqDtNFW4VHi6MEDqya3WrXF4Indnxn4CDDt3CJQEDJ4o6wNfHaKlCV/3XMyUdJGnoi2IHk0cJDpR2GwgBEvrfvxMijTnrTjpYQB0vBKu4vKUz8M8eDnZoedBfIUM7NiDgsWGnK/sOvZDnpjbE528x0q0eQInm36Ag4SRPRwQJUl99vvOfl8YWFsC5XhBQJpWcH4qzcO3S6MSAYSBpRauHH23igAtZN97eVFBPjxILRuPlGtVAA3JfVadbcAwx4h/tbNivTr5MTA== X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB1697; 20:BnuGrVDo8xFWQeVAsnYjP4HnQieywBT5QZST+wS4Z0Lb+Exx9m78OVVtpXXKGdF2K3L3WcUUMEu9IaCdRcPgop0TaFpAUBLRGGSWuCAPHDnf9Teu/+86uC7kkWON61mMlgQcFdmvD9GUxj1XXuXJUDZhEwpgBMtDiMM/+c/E0IZNzMYR43zzQf9NfM6JSNCmRkRvCCAjFgZ3kh41WcC2do2/FqjCW0u4apPsQKEM2vsPj8XfoR9Yfa3LzhpVL8d9jxovqFc2p/MRqsLjww2OxKc64aO9rJ0WRxUyPgMYDGLO48IHJ3xr0ALikdNWyGkJL5l2pc+DQXLJ++HWSp7/90rGblpCLHhCiocKq1auq4qM8UvtaQky/upLm/r5gbGZIJUL8HC2uPLktTZRpH0NGf9J7t9q8K5yEv/kji2kTSP0rWKUYH6AEHPUf3pTiEppIldrrGaSfFgVudgn3hMsVhOTM16d1MHR9Po4FzZRPJNII4z8683yRbtsNjs/y8sY; 4:oSQxWhrSOKszjtN3TLsJtsfH+qPp9Gpw4viuHMQHCaaBxgCqQ1s3NnT8M0rR/ZVOWVOcjQ9SxxgL9nM1749HRay9ZVdUe6RfBWGoDhxeUy1qW2RkXNYqawtb1vJQW9pEXYunA6ZDCzgISAYCTvEXQ6NIU9X0wND04p+tanFBHqkBoaZJ3YHbAjgOmw4K1nlYe06BY/LSJ/n/UlS7VA/QV8NNsAM2f4h7AneCHBlHOVK/acNu9UppF3bpO7mymi/+0mD/QbGI/6JrH4vpSCa0ONakf38Y/E+3Nc3r04SR6HQSk3nOuvhdPYM3Ya7nl/ceWOV2+zPxgrcy6+So/uJu5RaQ7xzexBiHCtdl0+Ma7SGKOTCEnlGako5A2PJaXgET11YvpU8p9//8QC51qLwg2Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:HK2PR06MB1697; BCL:0; PCL:0; RULEID:; SRVR:HK2PR06MB1697; X-Forefront-PRVS: 09669DB681 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(189002)(199003)(97736004)(5008740100001)(189998001)(586003)(110136002)(77096005)(4001350100001)(81156014)(68736007)(53416004)(81166006)(66066001)(5004730100002)(50986999)(47776003)(6116002)(3846002)(23726003)(8676002)(2906002)(4326007)(83506001)(92566002)(101416001)(19580405001)(229853001)(36756003)(105586002)(69596002)(19580395003)(106356001)(33646002)(86362001)(42186005)(50466002)(46406003)(54356999)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:HK2PR06MB1697; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HK2PR06MB1697; 23:L/58owAao/urosS75IiZd1ZhlbFmJ7sfU2/iT59Lc?= =?us-ascii?Q?gkQhOzfVzBnOh9pl1xphXFP7hKYyI2PV5LGaRQA9BKRvolJBwk6O/zPSTIKB?= =?us-ascii?Q?PCCAP1eThNAX3XtmBnz3NeCXKXStLSDapakgqJm6qE8gwhK7YDFwaFM82u3A?= =?us-ascii?Q?LgIV3GlJ0b2DgkCLoiJTfXEUAt35LBhX87k0eL5D2rVEYiSX5VTirncOSAlN?= =?us-ascii?Q?ZXcYtvztUU1YmFF+yfnHy2OEyx4aQS3oWEtzcvEGwbqaYkSMqw+RGxU5kf+f?= =?us-ascii?Q?q4slG8MSwrXPCaTiiZvcEr1eL9FDs9qOxn0LgyTnzTrCbPNxa1ChFyqoUHwK?= =?us-ascii?Q?AcXtsgScFU7AV39fJi1pxFi780vG/gAWHwttbaiF3MVhcqgNM73yyS4ZD03F?= =?us-ascii?Q?fqzMaL310mVGjJQYRDwlIemEl7/6MYurn3DT+uCX14Pd4sVnjcSU7SgzvnD3?= =?us-ascii?Q?5RUFyQ0qghl/gyuW73cW0z0+jkKjyQPvJZgTj0uS7C8PdvlSJEtlvRdxP1nH?= =?us-ascii?Q?LZ+wxRTypHNB8GgpJiRrSr6PuFCh5P+yNx+hA6WtgO2bU6dB3oaS3a/w8Cyd?= =?us-ascii?Q?wlNxjRD3m0iMZ1zB9qw0S1M16OS+GxJs3Cyvx6GvtY1iWMgJFIoXTEl24BQJ?= =?us-ascii?Q?EJejLWErzau78zAubKGWxuTD2SbO/+QyfEv9ZKvFkn9Sghe/pB+QJ5kpzVd5?= =?us-ascii?Q?8CnE/L62ElUzC2U3Ou+Bwo6MtSel6V5Ep1R4xmQ5UbZJKTXhBamyN5v5kSle?= =?us-ascii?Q?NVwjOFhfUi2yQ92dCK+aOBCNkdRBIDcYz+RCC0hTeHmAZh8dLe2bgB5kZcR7?= =?us-ascii?Q?O3EydjvhkyjgcdNTHoz81U2Nm2dCYwJ2o3NtM27QkfprsVoMSH79zFcKlicf?= =?us-ascii?Q?2vG38gVwd/AZIV6IO7xibRKFk0ouwYG71VsAPY9Adsr6bJVN5DArPEDh7VhH?= =?us-ascii?Q?yNu65d8e4/OhCb6Ew+4AjT3rJmHjdBeC4/3Y8pdGcGbfLTg8fbICwOoKxy4S?= =?us-ascii?Q?YJxL1cW+59xY2pd0cpnyEjksy6V1496no52hEh+zDpSZFIIs7K5yara2ozBx?= =?us-ascii?Q?E99SJpEi98aNBQftNUl/3LVee6xR1fgWG7tCO6NU1TnoM9n1g=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB1697; 5:GnV0nV6OFuozqLlyyhZ2Ixk35/OS4bocjGId3vyfXxG//uH1874hehWpuwJLiFqNv0ypfgBODVDcndPBSszYT6ERzowClTUjsjgSqPewaH8MT498Jh8hv005aVp/6+2V45p573TKS3opyE11NwlN9w==; 24:JjpBWEAk1OxsrQ/O1Rk0SGbceJxddufZocZWMxqijslnrCTig61ojgKdtxJhthbV2ok99MqrNSK7iaV7+RwCk6ev2gYPBsow5P7hVAdZnK4=; 7:n7L2wYVWkkI7pV0vP58M8+Stzo1rtJ/Sul7j4u28a2P+iYFtIGv4848juZT5fZfZKMU203XG4t6jShCZOch1K60kNwEsax93DwDLR1YtY51RMSU7hhWv94IiuHVPKI+qcyo81GRU7K6HH+OVlBYLt1sGtOCKVzZgGr/R9H6mAOjeCzAOequc5YgtXtRRLHV5QInKt4nlW4U25308gA0gm4lXFEBp7ERiNZrOzC8deRk=; 20:ADAHEFZcdyCey7WHFxHQjoIz1JhopCU1KZNuyd+KzqlUUJXZrbNi3RUb1P9ISiLLWl3+uMD8CczNKTwL49BpLcqI2VvEMD3yIJaPflzCEt5HqFPlylY2nJxiOJZUyj7YccgOn4M+VKGkBEV92rL9tmTBHTc5iqWlFiMHXu1lzCw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jun 2016 06:21:33.1665 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2PR06MB1697 Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto AUDIO-CLKOUTn can synchronizes with L/R clock, and Salvator board needs it. Otherwise, specific frequency sound will be noisy. Signed-off-by: Kuninori Morimoto --- .../devicetree/bindings/sound/renesas,rsnd.txt | 2 ++ sound/soc/sh/rcar/adg.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt index c7b29df..065d9c8 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt @@ -373,6 +373,8 @@ Optional properties: - #clock-cells : it must be 0 if your system has audio_clkout it must be 1 if your system has audio_clkout0/1/2/3 - clock-frequency : for all audio_clkout0/1/2/3 +- clkout-lr-synchronous : boolean property. it indicates that audio_clkoutn + synchronizes with lr-clock. SSI subnode properties: - interrupts : Should contain SSI interrupt for PIO transfer diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c index c4c51a4..1586271 100644 --- a/sound/soc/sh/rcar/adg.c +++ b/sound/soc/sh/rcar/adg.c @@ -33,11 +33,15 @@ struct rsnd_adg { struct clk *clkout[CLKOUTMAX]; struct clk_onecell_data onecell; struct rsnd_mod mod; + u32 flags; int rbga_rate_for_441khz; /* RBGA */ int rbgb_rate_for_48khz; /* RBGB */ }; +#define LRCLK_SYNC (1 << 0) +#define adg_mode_flags(adg) (adg->flags) + #define for_each_rsnd_clk(pos, adg, i) \ for (i = 0; \ (i < CLKMAX) && \ @@ -355,6 +359,16 @@ found_clock: rsnd_adg_set_ssi_clk(ssi_mod, data); + if (adg_mode_flags(adg) & LRCLK_SYNC) { + struct rsnd_mod *adg_mod = rsnd_mod_get(adg); + u32 ckr = 0; + + if (0 == (rate % 8000)) + ckr = 0x80000000; + + rsnd_mod_bset(adg_mod, SSICKR, 0x80000000, ckr); + } + dev_dbg(dev, "ADG: %s[%d] selects 0x%x for %d\n", rsnd_mod_name(ssi_mod), rsnd_mod_id(ssi_mod), data, rate); @@ -532,6 +546,7 @@ int rsnd_adg_probe(struct rsnd_priv *priv) { struct rsnd_adg *adg; struct device *dev = rsnd_priv_to_dev(priv); + struct device_node *np = dev->of_node; adg = devm_kzalloc(dev, sizeof(*adg), GFP_KERNEL); if (!adg) { @@ -545,6 +560,9 @@ int rsnd_adg_probe(struct rsnd_priv *priv) rsnd_adg_get_clkin(priv, adg); rsnd_adg_get_clkout(priv, adg); + if (of_get_property(np, "clkout-lr-synchronous", NULL)) + adg->flags = LRCLK_SYNC; + priv->adg = adg; return 0;