From patchwork Tue Jan 17 17:15:26 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 136506 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:4978:20e::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 7410C1007D3 for ; Wed, 18 Jan 2012 04:19:56 +1100 (EST) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1RnCet-0004WU-5B; Tue, 17 Jan 2012 17:17:19 +0000 Received: from tx2ehsobe002.messaging.microsoft.com ([65.55.88.12] helo=TX2EHSOBE004.bigfish.com) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1RnCep-0004WG-3h for linux-arm-kernel@lists.infradead.org; Tue, 17 Jan 2012 17:17:16 +0000 Received: from mail24-tx2-R.bigfish.com (10.9.14.246) by TX2EHSOBE004.bigfish.com (10.9.40.24) with Microsoft SMTP Server id 14.1.225.23; Tue, 17 Jan 2012 17:17:07 +0000 Received: from mail24-tx2 (localhost [127.0.0.1]) by mail24-tx2-R.bigfish.com (Postfix) with ESMTP id F0520600337; Tue, 17 Jan 2012 17:17:07 +0000 (UTC) X-SpamScore: 0 X-BigFish: VS0(zzzz1202hzz8275bhz2dhc1ahc1bh2a8h668h839h61h) X-Spam-TCS-SCL: 0:0 X-Forefront-Antispam-Report: CIP:70.37.183.190; KIP:(null); UIP:(null); IPV:NLI; H:mail.freescale.net; RD:none; EFVD:NLI X-FB-SS: 0, Received: from mail24-tx2 (localhost.localdomain [127.0.0.1]) by mail24-tx2 (MessageSwitch) id 1326820561773124_15955; Tue, 17 Jan 2012 17:16:01 +0000 (UTC) Received: from TX2EHSMHS027.bigfish.com (unknown [10.9.14.254]) by mail24-tx2.bigfish.com (Postfix) with ESMTP id 9EC9940167; Tue, 17 Jan 2012 17:15:35 +0000 (UTC) Received: from mail.freescale.net (70.37.183.190) by TX2EHSMHS027.bigfish.com (10.9.99.127) with Microsoft SMTP Server (TLS) id 14.1.225.23; Tue, 17 Jan 2012 17:15:33 +0000 Received: from az33smr02.freescale.net (10.64.34.200) by 039-SN1MMR1-002.039d.mgd.msft.net (10.84.1.15) with Microsoft SMTP Server id 14.1.355.3; Tue, 17 Jan 2012 11:15:38 -0600 Received: from fabio-Latitude-E6410.am.freescale.net ([10.29.240.144]) by az33smr02.freescale.net (8.13.1/8.13.0) with ESMTP id q0HHFZxX019161; Tue, 17 Jan 2012 11:15:36 -0600 (CST) From: Fabio Estevam To: Subject: [PATCH] ARM: mx28: Clear CLKGATE bit prior to changing DIV field Date: Tue, 17 Jan 2012 15:15:26 -0200 Message-ID: <1326820526-26498-1-git-send-email-fabio.estevam@freescale.com> X-Mailer: git-send-email 1.7.1 MIME-Version: 1.0 X-OriginatorOrg: freescale.com X-Spam-Note: CRM114 invocation failed X-Spam-Score: -4.2 (----) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-4.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at http://www.dnswl.org/, medium trust [65.55.88.12 listed in list.dnswl.org] -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Fabio Estevam , marek.vasut@gmail.com, shawn.guo@freescale.com, kernel@pengutronix.de, w.sang@pengutronix.de X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org MX28 Reference Manual states the following about the CLKGATE bit of register HW_CLKCTRL_SAIF0: "The DIV field can change ONLY when this clock gate bit field is low." So clear this bit prior to writing to the DIV field as required. This also fixes the following error during mxs-sgtl5000 probe. [ 0.660000] saif0_clk_set_rate: divider writing timeout [ 0.670000] mxs-sgtl5000: probe of mxs-sgtl5000.0 failed with error -110 [ 0.670000] ALSA device list: [ 0.680000] No soundcards found. Audio is functional after this change. Signed-off-by: Fabio Estevam --- arch/arm/mach-mxs/clock-mx28.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-mxs/clock-mx28.c b/arch/arm/mach-mxs/clock-mx28.c index 5d68e41..f85c09d 100644 --- a/arch/arm/mach-mxs/clock-mx28.c +++ b/arch/arm/mach-mxs/clock-mx28.c @@ -475,6 +475,8 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \ return -EINVAL; \ \ reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_##rs); \ + \ + reg &= ~BM_CLKCTRL_##rs##_CLKGATE; \ reg &= ~BM_CLKCTRL_##rs##_DIV; \ reg |= div << BP_CLKCTRL_##rs##_DIV; \ __raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_##rs); \