From patchwork Tue Oct 21 17:37:58 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 5126961 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 9F8BDC11AC for ; Tue, 21 Oct 2014 17:49:29 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id DC79B2021F for ; Tue, 21 Oct 2014 17:49:28 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1380A20109 for ; Tue, 21 Oct 2014 17:49:28 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1XgdWN-0003vW-WF; Tue, 21 Oct 2014 17:47:00 +0000 Received: from merlin.infradead.org ([2001:4978:20e::2]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XgdUn-0003EP-7m for linux-arm-kernel@bombadil.infradead.org; Tue, 21 Oct 2014 17:45:21 +0000 Received: from mail-la0-x233.google.com ([2a00:1450:4010:c03::233]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XgdUl-0000f0-0V for linux-arm-kernel@lists.infradead.org; Tue, 21 Oct 2014 17:45:20 +0000 Received: by mail-la0-f51.google.com with SMTP id ge10so1520907lab.38 for ; Tue, 21 Oct 2014 10:44:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=6x6QZkwKhQVwVTrXVqVt/NInkIJD1Ffz39rWori3W2U=; b=GyTzhFsO2j/6nrV1Rer1ZAcI2I3BrNM2Q2S6od++9avRw3PunSTlOxQKRfpkkxbT5/ DpvUASTGxmNKyF/RkMDgMTHU1zwcygeZ7OcgOkDPxuMNwTXVKtNNROTE79xBc2JoVGKL iCG5xcVf2Ka+eDnFZuTmd0u0VSaVjXNtmZR11Nje9lfKktq1vM8yvmCQFVPRH11alY/u CcVoaE5RnqczDA1/ebQNsZJYxE9A9hJhwLSvAS9sbZ3/9/P6mfJWyANZTorMrl0F9tys NfONLuzhQwXU5TvLZXhXLTJH8TU0WtemW6Lm6U7XfmcU/4/d8CumxfhBjE+wumi1T7om B+bw== X-Received: by 10.152.19.133 with SMTP id f5mr12340883lae.87.1413913494418; Tue, 21 Oct 2014 10:44:54 -0700 (PDT) Received: from xi.terra (s83-177-171-8.cust.tele2.se. [83.177.171.8]) by mx.google.com with ESMTPSA id l2sm4799916lbd.48.2014.10.21.10.44.50 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Oct 2014 10:44:52 -0700 (PDT) X-Google-Original-Sender: Received: from johan by xi.terra with local (Exim 4.84) (envelope-from ) id 1XgdRO-0003Nj-52; Tue, 21 Oct 2014 19:41:50 +0200 From: Johan Hovold To: Alessandro Zummo , Tony Lindgren , =?UTF-8?q?Beno=C3=AEt=20Cousson?= , Felipe Balbi Subject: [PATCH v2 12/20] rtc: omap: silence bogus power-up reset message at probe Date: Tue, 21 Oct 2014 19:37:58 +0200 Message-Id: <1413913086-12730-13-git-send-email-johan@kernel.org> X-Mailer: git-send-email 2.0.4 In-Reply-To: <1413913086-12730-1-git-send-email-johan@kernel.org> References: <1412881594-25678-1-git-send-email-johan@kernel.org> <1413913086-12730-1-git-send-email-johan@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20141021_134519_374520_92278A49 X-CRM114-Status: GOOD ( 15.76 ) X-Spam-Score: -2.6 (--) Cc: devicetree@vger.kernel.org, rtc-linux@googlegroups.com, Lokesh Vutla , j-keerthy@ti.com, nsekhar@ti.com, linux-kernel@vger.kernel.org, Johan Hovold , t-kristo@ti.com, linux-arm-kernel@lists.infradead.org, Andrew Morton , linux-omap@vger.kernel.org, Guenter Roeck X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable 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 Some legacy RTC IP revisions has a power-up reset flag in the status register that later revisions lack. As this flag is always read back as set on later revisions (or is overloaded with a different flag), make sure to only clear the flag and print the info message on legacy platforms. Signed-off-by: Johan Hovold --- drivers/rtc/rtc-omap.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c index 1abd88e24c22..ee20f2d36065 100644 --- a/drivers/rtc/rtc-omap.c +++ b/drivers/rtc/rtc-omap.c @@ -106,6 +106,7 @@ struct omap_rtc_device_type { bool has_32kclk_en; bool has_kicker; bool has_irqwakeen; + bool has_power_up_reset; }; struct omap_rtc { @@ -346,6 +347,7 @@ static struct rtc_class_ops omap_rtc_ops = { }; static const struct omap_rtc_device_type omap_rtc_default_type = { + .has_power_up_reset = true, }; static const struct omap_rtc_device_type omap_rtc_am3352_type = { @@ -391,7 +393,7 @@ static int __init omap_rtc_probe(struct platform_device *pdev) { struct omap_rtc *rtc; struct resource *res; - u8 reg, new_ctrl; + u8 reg, mask, new_ctrl; const struct platform_device_id *id_entry; const struct of_device_id *of_id; int ret; @@ -448,12 +450,17 @@ static int __init omap_rtc_probe(struct platform_device *pdev) /* clear old status */ reg = rtc_read(rtc, OMAP_RTC_STATUS_REG); - if (reg & (u8) OMAP_RTC_STATUS_POWER_UP) { - dev_info(&pdev->dev, "RTC power up reset detected\n"); - rtc_write(rtc, OMAP_RTC_STATUS_REG, OMAP_RTC_STATUS_POWER_UP); + + mask = OMAP_RTC_STATUS_ALARM; + + if (rtc->type->has_power_up_reset) { + mask |= OMAP_RTC_STATUS_POWER_UP; + if (reg & OMAP_RTC_STATUS_POWER_UP) + dev_info(&pdev->dev, "RTC power up reset detected\n"); } - if (reg & (u8) OMAP_RTC_STATUS_ALARM) - rtc_write(rtc, OMAP_RTC_STATUS_REG, OMAP_RTC_STATUS_ALARM); + + if (reg & mask) + rtc_write(rtc, OMAP_RTC_STATUS_REG, reg & mask); /* On boards with split power, RTC_ON_NOFF won't reset the RTC */ reg = rtc_read(rtc, OMAP_RTC_CTRL_REG);