From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932268AbbBPM7C (ORCPT ); Mon, 16 Feb 2015 07:59:02 -0500 Received: from mail-wi0-f181.google.com ([209.85.212.181]:39601 "EHLO mail-wi0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755615AbbBPM67 (ORCPT ); Mon, 16 Feb 2015 07:58:59 -0500 MIME-Version: 1.0 In-Reply-To: <20150216103122.GA1091@opensource.wolfsonmicro.com> References: <1423121713-19434-1-git-send-email-voice.shen@atmel.com> <54DC62EA.5030503@atmel.com> <20150216103122.GA1091@opensource.wolfsonmicro.com> From: Manuel Lauss Date: Mon, 16 Feb 2015 13:58:18 +0100 Message-ID: Subject: Re: [alsa-devel] [PATCH] ASoC: wm8731: let codec to manage clock by itself To: Charles Keepax Cc: Bo Shen , Mark Brown , Manuel Lauss , Liam Girdwood , Richard Purdie , patches@opensource.wolfsonmicro.com, alsa-devel , linux-arm-kernel@lists.infradead.org, linux-sound@vger.kernel.org, LKML Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Feb 16, 2015 at 11:31 AM, Charles Keepax wrote: > On Thu, Feb 12, 2015 at 04:23:06PM +0800, Bo Shen wrote: >> Hi All, >> >> On 02/05/2015 03:35 PM, Bo Shen wrote: >>> Let the wm8731 codec to manage clock by itself. >>> >>> Signed-off-by: Bo Shen >>> --- >>> >>> sound/soc/codecs/wm8731.c | 28 ++++++++++++++++++++++++++++ >>> 1 file changed, 28 insertions(+) >> >> Any comments for this patch (aka ping?) > > I preferred the idea of having the clock as optional and from the > discussion on the last patch it didn't look too tricky to me too > achieve. OTOH I think the Atmel system is the only one that uses > both this CODEC and common clock so it doesn't look like this > would cause any problems, but might be nice for this not to be > one more thing for someone to fix up when moving a system to > common clock. Not quite, there's one MIPS platform I maintain which needs a patch like the one below (tested): diff --git a/arch/mips/alchemy/devboards/db1200.c b/arch/mips/alchemy/devboards/db1200.c index 8c13675..aa01ab2 100644 --- a/arch/mips/alchemy/devboards/db1200.c +++ b/arch/mips/alchemy/devboards/db1200.c @@ -19,6 +19,8 @@ */ #include +#include +#include #include #include #include @@ -862,6 +864,12 @@ int __init db1200_dev_setup(void) irq_set_status_flags(DB1200_PC1_INSERT_INT, IRQ_NOAUTOEN); irq_set_status_flags(DB1200_PC1_EJECT_INT, IRQ_NOAUTOEN); + /* register the 12MHz crystal for the WM8731 I2S codec */ + c = clk_register_fixed_rate(NULL, "wm8731xtal", NULL, + CLK_IS_ROOT, 12000000); + if (!IS_ERR(c)) + clk_register_clkdev(c, "mclk", "0-001b"); + i2c_register_board_info(0, db1200_i2c_devs, ARRAY_SIZE(db1200_i2c_devs)); spi_register_board_info(db1200_spi_devs, diff --git a/arch/mips/alchemy/devboards/db1300.c b/arch/mips/alchemy/devboards/db1300.c index 1c64fdb..1aa01c8 100644 --- a/arch/mips/alchemy/devboards/db1300.c +++ b/arch/mips/alchemy/devboards/db1300.c @@ -5,6 +5,8 @@ */ #include +#include +#include #include #include #include @@ -799,6 +801,12 @@ int __init db1300_dev_setup(void) if (platform_driver_register(&db1300_wm97xx_driver)) pr_warn("DB1300: failed to init touch pen irq support!\n"); + /* register the 12MHz crystal for the WM8731 I2S codec */ + c = clk_register_fixed_rate(NULL, "wm8731xtal", NULL, + CLK_IS_ROOT, 12000000); + if (!IS_ERR(c)) + clk_register_clkdev(c, "mclk", "0-001b"); + /* Audio PSC clock is supplied by codecs (PSC1, 2) */ __raw_writel(PSC_SEL_CLK_SERCLK, (void __iomem *)KSEG1ADDR(AU1300_PSC1_PHYS_ADDR) + PSC_SEL_OFFSET);