From patchwork Wed May 25 10:56:52 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 97329 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-wy0-f184.google.com (mail-wy0-f184.google.com [74.125.82.184]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority" (verified OK)) by ozlabs.org (Postfix) with ESMTPS id 340FDB6F9E for ; Wed, 25 May 2011 20:57:18 +1000 (EST) Received: by wyb35 with SMTP id 35sf14151372wyb.11 for ; Wed, 25 May 2011 03:57:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=beta; h=domainkey-signature:mime-version:x-beenthere:received-spf:from:to :cc:subject:date:message-id:x-mailer:in-reply-to:references :x-sa-exim-connect-ip:x-sa-exim-mail-from:x-sa-exim-scanned :x-ptx-original-recipient:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-google-group-id:list-post:list-help:list-archive:sender :list-subscribe:list-unsubscribe:content-type; bh=rgOmfVmeKSaIl6lmnNCrwhfiUnnckzazxBAs8Ip8wRI=; b=0HMI7+wQDZzplJ20X/Icmu5v/FeXBgrjuVvfowcYUTa9Ipzon27MEQ2mpJsusykIEI 3jvRtzK76R5cCysTUzQoC7XDQ38W4OOyw9Hs7B6TtqDkXPh/pPsz9t2/x+zSKkYtKA6p 7s67Pb+Uw/aoxDiKMcXQ3TO7k/7p8u+NJb3DM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlegroups.com; s=beta; h=mime-version:x-beenthere:received-spf:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references:x-sa-exim-connect-ip :x-sa-exim-mail-from:x-sa-exim-scanned:x-ptx-original-recipient :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:x-google-group-id:list-post :list-help:list-archive:sender:list-subscribe:list-unsubscribe :content-type; b=5GB4hWZRQ6d56zk9m0sEssMZS9uD1UFkhVMiAYptsy3B2EueWjALLahoy07qwVoN6r +guWNwRJr3tVTCk0t9yXsXbNXcOvIcoJLd+Eq+aqHeQis0buDY0xtsk1hRjp46JWST8F YxZiJQNxUaJmQDav40zdYQ65tWxdujnx5fQsA= Received: by 10.216.221.65 with SMTP id q43mr1693767wep.3.1306321033921; Wed, 25 May 2011 03:57:13 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: rtc-linux@googlegroups.com Received: by 10.227.149.146 with SMTP id t18ls190048wbv.0.gmail; Wed, 25 May 2011 03:57:13 -0700 (PDT) Received: by 10.227.11.4 with SMTP id r4mr382806wbr.5.1306321033602; Wed, 25 May 2011 03:57:13 -0700 (PDT) Received: by 10.227.11.4 with SMTP id r4mr382805wbr.5.1306321033577; Wed, 25 May 2011 03:57:13 -0700 (PDT) Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by gmr-mx.google.com with ESMTPS id 38si542291wby.3.2011.05.25.03.57.12 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 25 May 2011 03:57:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of w.sang@pengutronix.de designates 92.198.50.35 as permitted sender) client-ip=92.198.50.35; Received: from katana.hi.pengutronix.de ([2001:6f8:1178:2:221:70ff:fe71:1890] helo=pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1QPBm3-00085Y-Oi; Wed, 25 May 2011 12:57:11 +0200 From: Wolfram Sang To: rtc-linux@googlegroups.com Cc: linux-arm-kernel@lists.infradead.org, John Stultz , Andrew Morton , Wolfram Sang Subject: [rtc-linux] [PATCH V2 4/5] rtc: stmp3xxx: get rid of mach-specific accessors Date: Wed, 25 May 2011 12:56:52 +0200 Message-Id: <1306321013-28364-5-git-send-email-w.sang@pengutronix.de> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: <1306321013-28364-1-git-send-email-w.sang@pengutronix.de> References: <1306321013-28364-1-git-send-email-w.sang@pengutronix.de> X-SA-Exim-Connect-IP: 2001:6f8:1178:2:221:70ff:fe71:1890 X-SA-Exim-Mail-From: w.sang@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: rtc-linux@googlegroups.com X-Original-Sender: w.sang@pengutronix.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of w.sang@pengutronix.de designates 92.198.50.35 as permitted sender) smtp.mail=w.sang@pengutronix.de Reply-To: rtc-linux@googlegroups.com Precedence: list Mailing-list: list rtc-linux@googlegroups.com; contact rtc-linux+owners@googlegroups.com List-ID: X-Google-Group-Id: 712029733259 List-Post: , List-Help: , List-Archive: Sender: rtc-linux@googlegroups.com List-Subscribe: , List-Unsubscribe: , Replace the accessors with standard readl/writel to remove their platform-dependency. Also, drop __raw_(read|write)l-accessors while we are here. Signed-off-by: Wolfram Sang Tested-by: Shawn Guo --- drivers/rtc/rtc-stmp3xxx.c | 62 ++++++++++++++++++++++++-------------------- 1 files changed, 34 insertions(+), 28 deletions(-) diff --git a/drivers/rtc/rtc-stmp3xxx.c b/drivers/rtc/rtc-stmp3xxx.c index fae563a..50f065a 100644 --- a/drivers/rtc/rtc-stmp3xxx.c +++ b/drivers/rtc/rtc-stmp3xxx.c @@ -18,6 +18,7 @@ */ #include #include +#include #include #include #include @@ -25,9 +26,10 @@ #include #include -#include #define STMP3XXX_RTC_CTRL 0x0 +#define STMP3XXX_RTC_CTRL_SET 0x4 +#define STMP3XXX_RTC_CTRL_CLR 0x8 #define STMP3XXX_RTC_CTRL_ALARM_IRQ_EN 0x00000001 #define STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN 0x00000002 #define STMP3XXX_RTC_CTRL_ALARM_IRQ 0x00000004 @@ -42,6 +44,8 @@ #define STMP3XXX_RTC_ALARM 0x40 #define STMP3XXX_RTC_PERSISTENT0 0x60 +#define STMP3XXX_RTC_PERSISTENT0_SET 0x64 +#define STMP3XXX_RTC_PERSISTENT0_CLR 0x68 #define STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN 0x00000002 #define STMP3XXX_RTC_PERSISTENT0_ALARM_EN 0x00000004 #define STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE 0x00000080 @@ -60,7 +64,7 @@ static void stmp3xxx_wait_time(struct stmp3xxx_rtc_data *rtc_data) * NEW_REGS/STALE_REGS bitfields go. In fact it's 0x1=P0, * 0x2=P1, .., 0x20=P5, 0x40=ALARM, 0x80=SECONDS */ - while (__raw_readl(rtc_data->io + STMP3XXX_RTC_STAT) & + while (readl(rtc_data->io + STMP3XXX_RTC_STAT) & (0x80 << STMP3XXX_RTC_STAT_STALE_SHIFT)) cpu_relax(); } @@ -71,7 +75,7 @@ static int stmp3xxx_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm) struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); stmp3xxx_wait_time(rtc_data); - rtc_time_to_tm(__raw_readl(rtc_data->io + STMP3XXX_RTC_SECONDS), rtc_tm); + rtc_time_to_tm(readl(rtc_data->io + STMP3XXX_RTC_SECONDS), rtc_tm); return 0; } @@ -79,7 +83,7 @@ static int stmp3xxx_rtc_set_mmss(struct device *dev, unsigned long t) { struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); - __raw_writel(t, rtc_data->io + STMP3XXX_RTC_SECONDS); + writel(t, rtc_data->io + STMP3XXX_RTC_SECONDS); stmp3xxx_wait_time(rtc_data); return 0; } @@ -91,18 +95,18 @@ static irqreturn_t stmp3xxx_rtc_interrupt(int irq, void *dev_id) u32 status; u32 events = 0; - status = __raw_readl(rtc_data->io + STMP3XXX_RTC_CTRL) & + status = readl(rtc_data->io + STMP3XXX_RTC_CTRL) & (STMP3XXX_RTC_CTRL_ALARM_IRQ | STMP3XXX_RTC_CTRL_ONEMSEC_IRQ); if (status & STMP3XXX_RTC_CTRL_ALARM_IRQ) { - __mxs_clrl(STMP3XXX_RTC_CTRL_ALARM_IRQ, - rtc_data->io + STMP3XXX_RTC_CTRL); + writel(STMP3XXX_RTC_CTRL_ALARM_IRQ, + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); events |= RTC_AF | RTC_IRQF; } if (status & STMP3XXX_RTC_CTRL_ONEMSEC_IRQ) { - __mxs_clrl(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ, - rtc_data->io + STMP3XXX_RTC_CTRL); + writel(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ, + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); if (++rtc_data->irq_count % 1000 == 0) { events |= RTC_UF | RTC_IRQF; rtc_data->irq_count = 0; @@ -118,17 +122,19 @@ static irqreturn_t stmp3xxx_rtc_interrupt(int irq, void *dev_id) static int stmp3xxx_alarm_irq_enable(struct device *dev, unsigned int enabled) { struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); - void __iomem *p = rtc_data->io + STMP3XXX_RTC_PERSISTENT0, - *ctl = rtc_data->io + STMP3XXX_RTC_CTRL; if (enabled) { - __mxs_setl(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | - STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN, p); - __mxs_setl(STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, ctl); + writel(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | + STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN, + rtc_data->io + STMP3XXX_RTC_PERSISTENT0_SET); + writel(STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, + rtc_data->io + STMP3XXX_RTC_CTRL_SET); } else { - __mxs_clrl(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | - STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN, p); - __mxs_clrl(STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, ctl); + writel(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | + STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN, + rtc_data->io + STMP3XXX_RTC_PERSISTENT0_CLR); + writel(STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); } return 0; } @@ -137,7 +143,7 @@ static int stmp3xxx_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm) { struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); - rtc_time_to_tm(__raw_readl(rtc_data->io + STMP3XXX_RTC_ALARM), &alm->time); + rtc_time_to_tm(readl(rtc_data->io + STMP3XXX_RTC_ALARM), &alm->time); return 0; } @@ -147,7 +153,7 @@ static int stmp3xxx_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); rtc_tm_to_time(&alm->time, &t); - __raw_writel(t, rtc_data->io + STMP3XXX_RTC_ALARM); + writel(t, rtc_data->io + STMP3XXX_RTC_ALARM); return 0; } @@ -167,8 +173,8 @@ static int stmp3xxx_rtc_remove(struct platform_device *pdev) if (!rtc_data) return 0; - __mxs_clrl(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN | STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, - rtc_data->io + STMP3XXX_RTC_CTRL); + writel(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN | STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); free_irq(rtc_data->irq_alarm, &pdev->dev); free_irq(rtc_data->irq_1msec, &pdev->dev); rtc_device_unregister(rtc_data->rtc); @@ -206,7 +212,7 @@ static int stmp3xxx_rtc_probe(struct platform_device *pdev) rtc_data->irq_alarm = platform_get_irq(pdev, 0); rtc_data->irq_1msec = platform_get_irq(pdev, 1); - if (!(__raw_readl(STMP3XXX_RTC_STAT + rtc_data->io) & + if (!(readl(STMP3XXX_RTC_STAT + rtc_data->io) & STMP3XXX_RTC_STAT_RTC_PRESENT)) { dev_err(&pdev->dev, "no device onboard\n"); err = -ENODEV; @@ -216,10 +222,10 @@ static int stmp3xxx_rtc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, rtc_data); mxs_reset_block(rtc_data->io); - __mxs_clrl(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | + writel(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN | STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE, - rtc_data->io + STMP3XXX_RTC_PERSISTENT0); + rtc_data->io + STMP3XXX_RTC_PERSISTENT0_CLR); rtc_data->rtc = rtc_device_register(pdev->name, &pdev->dev, &stmp3xxx_rtc_ops, THIS_MODULE); @@ -249,8 +255,8 @@ static int stmp3xxx_rtc_probe(struct platform_device *pdev) out_irq1: free_irq(rtc_data->irq_alarm, &pdev->dev); out_irq_alarm: - __mxs_clrl(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN | STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, - rtc_data->io + STMP3XXX_RTC_CTRL); + writel(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN | STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); rtc_device_unregister(rtc_data->rtc); out_remap: platform_set_drvdata(pdev, NULL); @@ -271,10 +277,10 @@ static int stmp3xxx_rtc_resume(struct platform_device *dev) struct stmp3xxx_rtc_data *rtc_data = platform_get_drvdata(dev); mxs_reset_block(rtc_data->io); - __mxs_clrl(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | + writel(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN | STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE, - rtc_data->io + STMP3XXX_RTC_PERSISTENT0); + rtc_data->io + STMP3XXX_RTC_PERSISTENT0_CLR); return 0; } #else