From patchwork Tue Dec 4 10:10:44 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Baltieri X-Patchwork-Id: 1836981 Return-Path: X-Original-To: patchwork-linux-pm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 221153FCA5 for ; Tue, 4 Dec 2012 10:12:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753300Ab2LDKMN (ORCPT ); Tue, 4 Dec 2012 05:12:13 -0500 Received: from mail-ea0-f174.google.com ([209.85.215.174]:56287 "EHLO mail-ea0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753239Ab2LDKL0 (ORCPT ); Tue, 4 Dec 2012 05:11:26 -0500 Received: by mail-ea0-f174.google.com with SMTP id e13so1525550eaa.19 for ; Tue, 04 Dec 2012 02:11:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=Uix0Ba756ST9uSfcIszzmA/zbTekPZr2TB8c+RQpKDY=; b=jRIjgzGimhVnDarzBeTES8VziPZbN1QzAfl3KFfkzL5m8udANTJssUhaOgN+aZ3hHZ vssniC11aJOwZHj17kps4CRHMrtXlt9wjiCF3Rf1+xEA/2UESVOSF6UE2Z+9Ecwa1jU6 8oc1X3lpRr7GeICj0a5RDhv+Zg/hgf+Ow9iZoB4OPkILf1rUZXMbsmN0EUYdOA5XPczi uaVYCGmfuexmfyNd5NKna9UumJMsBB5QEABVCdQeT2M2s7w+xd74Yb/qT8GL3scgw/QS C3Nstn/yERZOftJ+iChkD4F/ud5m26UrXDkNIMnyk++yg9F2ctk1F48TsxmEdnR6ssbB 6cBQ== Received: by 10.14.199.5 with SMTP id w5mr21191157een.31.1354615886184; Tue, 04 Dec 2012 02:11:26 -0800 (PST) Received: from localhost ([2a01:2003:1:1a30:8e70:5aff:feac:ad8]) by mx.google.com with ESMTPS id z8sm1691657eeo.11.2012.12.04.02.11.22 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 04 Dec 2012 02:11:25 -0800 (PST) From: Fabio Baltieri To: John Stultz , Arnd Bergmann , Thomas Gleixner , "Rafael J. Wysocki" Cc: cpufreq@vger.kernel.org, linux-pm@vger.kernel.org, Linus Walleij , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Fabio Baltieri Subject: [PATCH 1/2] clocksource: nomadik-mtu: support timer-based delay Date: Tue, 4 Dec 2012 11:10:44 +0100 Message-Id: <1354615845-2758-2-git-send-email-fabio.baltieri@linaro.org> X-Mailer: git-send-email 1.7.12.1 In-Reply-To: <1354615845-2758-1-git-send-email-fabio.baltieri@linaro.org> References: <1354615845-2758-1-git-send-email-fabio.baltieri@linaro.org> X-Gm-Message-State: ALoCoQm0GLpxaTI/lGg3cPcS+o5gijwm6HlRUhfoPJMe3+EEAXOzCdYqVUfqvEMXAk115DXq6vkL Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org This patch adds support to use Nomadik MTU for timer-based delay. Reviewed-by: Linus Walleij Signed-off-by: Fabio Baltieri --- drivers/clocksource/nomadik-mtu.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/clocksource/nomadik-mtu.c b/drivers/clocksource/nomadik-mtu.c index 8914c3c..5f3c8db 100644 --- a/drivers/clocksource/nomadik-mtu.c +++ b/drivers/clocksource/nomadik-mtu.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -64,6 +65,7 @@ static void __iomem *mtu_base; static bool clkevt_periodic; static u32 clk_prescale; static u32 nmdk_cycle; /* write-once */ +static struct delay_timer mtu_delay_timer; #ifdef CONFIG_NOMADIK_MTU_SCHED_CLOCK /* @@ -80,6 +82,11 @@ static u32 notrace nomadik_read_sched_clock(void) } #endif +static unsigned long nmdk_timer_read_current_timer(void) +{ + return ~readl_relaxed(mtu_base + MTU_VAL(0)); +} + /* Clockevent device: use one-shot mode */ static int nmdk_clkevt_next(unsigned long evt, struct clock_event_device *ev) { @@ -227,4 +234,8 @@ void __init nmdk_timer_init(void __iomem *base, int irq) setup_irq(irq, &nmdk_timer_irq); nmdk_clkevt.cpumask = cpumask_of(0); clockevents_config_and_register(&nmdk_clkevt, rate, 2, 0xffffffffU); + + mtu_delay_timer.read_current_timer = &nmdk_timer_read_current_timer; + mtu_delay_timer.freq = rate; + register_current_timer_delay(&mtu_delay_timer); }