From patchwork Thu Oct 18 08:52:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baolin Wang X-Patchwork-Id: 985742 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="ia/bx3bj"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42bN9q01dFz9s0t for ; Thu, 18 Oct 2018 19:53:19 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727820AbeJRQwp (ORCPT ); Thu, 18 Oct 2018 12:52:45 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:34404 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727541AbeJRQwp (ORCPT ); Thu, 18 Oct 2018 12:52:45 -0400 Received: by mail-pl1-f194.google.com with SMTP id f18-v6so14026410plr.1 for ; Thu, 18 Oct 2018 01:52:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=9kZYDpmsySRWfvSPa6Kfurc5wRQJDTAyv7Jhjoe/kD4=; b=ia/bx3bj2+ZiSg36oHYXpcIdN64t31sLLMkBnf4K7Zu5H8yJ8nnU4M2KJ0jHpLTogS ZeQqaH8smRzI0al7GLQ8xXfZbCH+5dLlNWlEBEBqCh1mTxqNbJPyAx6FjlQpmUbG22nu 91w6g+AUsUL8oQG0Qb2UNWq1y1S/RBzTHKCOU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=9kZYDpmsySRWfvSPa6Kfurc5wRQJDTAyv7Jhjoe/kD4=; b=rMTERJ0f6AzNUGnkRHRzgLvpBrjFY2Skb1kdPpP6QXL+SCLPkJO6VGDCcWCp6Ue0fi BEr4FPLHXUGy3tHwGrg1OWf24arZAzXl5e3HUhYrtVv0QhT4UPqFGp5kV/DQyWCGzCqU TPpLB2+ZyQU+OR/H7WUdfNygwySPjBLHB7TyCzH0IhFxpEZ1EdlaF9h6bHErctHm2BNC EekXZv5GQHWuWevYCJbLPm/bCYLVgo1or5Ip4xva1OHVulYzRU6SBcDdj1SdzZ1W6faC OjrX8msccJgsz0KKQIu+X0Q4303zbC9HxfVwQRg8nN4Ya8vDsXvvvTmRE4n4BSlq3F6P nlNQ== X-Gm-Message-State: ABuFfohL5hAoKUn7HHKnpr69rasBsAvjvr28d32FZ6Ml8BqgpWMk10a4 BnsG7uqnhhDX/bpT348ak0D4VA== X-Google-Smtp-Source: ACcGV62FPmqJYXlbyV+KJ+eX7KvQFJMbIBaDS1eRAcVnBHjxHIlwUzRYzJXqxIxQfi2wMKkFJS+6Gg== X-Received: by 2002:a17:902:4583:: with SMTP id n3-v6mr29427180pld.255.1539852766364; Thu, 18 Oct 2018 01:52:46 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id x186-v6sm18467528pfb.125.2018.10.18.01.52.43 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 18 Oct 2018 01:52:45 -0700 (PDT) From: Baolin Wang To: a.zummo@towertech.it, alexandre.belloni@bootlin.com Cc: broonie@kernel.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, baolin.wang@linaro.org Subject: [PATCH 1/5] rtc: sc27xx: Set wakeup capability before registering rtc device Date: Thu, 18 Oct 2018 16:52:26 +0800 Message-Id: X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-rtc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org Set wakeup capability before registering rtc device, in case the alarmtimer can find one available rtc device. Signed-off-by: Baolin Wang --- drivers/rtc/rtc-sc27xx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-sc27xx.c b/drivers/rtc/rtc-sc27xx.c index deea5c3..8afba12 100644 --- a/drivers/rtc/rtc-sc27xx.c +++ b/drivers/rtc/rtc-sc27xx.c @@ -631,16 +631,18 @@ static int sprd_rtc_probe(struct platform_device *pdev) return ret; } + device_init_wakeup(&pdev->dev, 1); + rtc->rtc->ops = &sprd_rtc_ops; rtc->rtc->range_min = 0; rtc->rtc->range_max = 5662310399LL; ret = rtc_register_device(rtc->rtc); if (ret) { dev_err(&pdev->dev, "failed to register rtc device\n"); + device_init_wakeup(&pdev->dev, 0); return ret; } - device_init_wakeup(&pdev->dev, 1); return 0; } From patchwork Thu Oct 18 08:52:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baolin Wang X-Patchwork-Id: 985741 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="F0npjnwn"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42bN9n1Qvyz9s9J for ; Thu, 18 Oct 2018 19:53:17 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727857AbeJRQws (ORCPT ); Thu, 18 Oct 2018 12:52:48 -0400 Received: from mail-pl1-f195.google.com ([209.85.214.195]:38224 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727856AbeJRQws (ORCPT ); Thu, 18 Oct 2018 12:52:48 -0400 Received: by mail-pl1-f195.google.com with SMTP id q19-v6so10946963pll.5 for ; Thu, 18 Oct 2018 01:52:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=7f3p8DaD+OJHNqlVoz6G4mjpM3q6Pg5QN2ip5mfsPB0=; b=F0npjnwn8iNGfJ7j+3osZduTcfk1BvnsV0b5S1jvevzglGfqx11GYx2jkrUFjOFfBk aC5Tz0xe7fxBPWueVQa+pgp9OkIOiG4o9pVk1VFXjmpulESXea/fV6+AouxON2Jq6uRd 7pRn+6LdZE0J3wFoUxbAH+Uqd/oPozsF+NYTM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=7f3p8DaD+OJHNqlVoz6G4mjpM3q6Pg5QN2ip5mfsPB0=; b=PRueJ91mn0HeauP+1ENRk51cAEib24CLzv0iRpGTleJFOnLiBSR64fdNXNYUT+OoOQ +hAPyfOC4l+FFoNy+WGS+/GwuwfMQWAYN0qGDaP6YYjPcxWzHnFXaRlhq81oOIwk2RT1 j+bU7ffofNtlXecbwBTxem4ZudaxJBmeCY1RMmlo7KvIlmY/f1OBp6krqfY2kKvSolAO 2ICH4oBebnNn7+aE42vp/Z2/HETR2yNJ/aVEFNvqmlsxRNdrIhABaxP7cNsa9hkA3at1 71unUTWHAT8IqM7u/xqOfcH4PXmGWM26ZRa4Rp2I7JCgyIqhhFPqR2rAZyfTdXxpdppm 2/xw== X-Gm-Message-State: ABuFfojQ8s1QX2+MXrTerfvg3l0BusCcSENnMG7igm+GERKFOkjUK90+ 7HZHB+5UDnNPALueoeKZfM5tqA== X-Google-Smtp-Source: ACcGV627hPrCKf4lsVo8UKgQ+nJdgvqZ04vaCdCyCqE3mXfOJLbhGKfm+4UpwooyWDYpv/+J7hUThg== X-Received: by 2002:a17:902:74c9:: with SMTP id f9-v6mr662553plt.99.1539852769501; Thu, 18 Oct 2018 01:52:49 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id x186-v6sm18467528pfb.125.2018.10.18.01.52.46 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 18 Oct 2018 01:52:48 -0700 (PDT) From: Baolin Wang To: a.zummo@towertech.it, alexandre.belloni@bootlin.com Cc: broonie@kernel.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, baolin.wang@linaro.org Subject: [PATCH 2/5] rtc: sc27xx: Clear SPG value update interrupt status Date: Thu, 18 Oct 2018 16:52:27 +0800 Message-Id: <43a12635d57b134fc55d664af8f715b31bbc5f3b.1539851865.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-rtc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org We should clear the SPG value update interrupt status once the SPG value is updated successfully, in case incorrect status validation for next time. Signed-off-by: Baolin Wang --- drivers/rtc/rtc-sc27xx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-sc27xx.c b/drivers/rtc/rtc-sc27xx.c index 8afba12..6ac5653 100644 --- a/drivers/rtc/rtc-sc27xx.c +++ b/drivers/rtc/rtc-sc27xx.c @@ -172,7 +172,8 @@ static int sprd_rtc_lock_alarm(struct sprd_rtc *rtc, bool lock) return ret; } - return 0; + return regmap_write(rtc->regmap, rtc->base + SPRD_RTC_INT_CLR, + SPRD_RTC_SPG_UPD_EN); } static int sprd_rtc_get_secs(struct sprd_rtc *rtc, enum sprd_rtc_reg_types type, From patchwork Thu Oct 18 08:52:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baolin Wang X-Patchwork-Id: 985740 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="IBd11yo1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42bN9l5lX3z9s9J for ; Thu, 18 Oct 2018 19:53:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727948AbeJRQww (ORCPT ); Thu, 18 Oct 2018 12:52:52 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:39383 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727947AbeJRQwv (ORCPT ); Thu, 18 Oct 2018 12:52:51 -0400 Received: by mail-pf1-f195.google.com with SMTP id c25-v6so14572328pfe.6 for ; Thu, 18 Oct 2018 01:52:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=wuTLNNFPtvGEn50eKaEyNEzBPZsJcfU/sfOOV2dCAmc=; b=IBd11yo1pLxVL9pACURpAokeSMvwGB54pTZFTBDD8U5OhJPNp3MNjH0YCSLKPohgeh yrDeKbJ/OYUvodz7eVGrF6ejRZf1J4ke0j10tG1jg9CufQfMuHkz9oxysyphJpDPDf5q u4WAzthRr82U7sXz01PHWT3BVFCRPns9eZl7I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=wuTLNNFPtvGEn50eKaEyNEzBPZsJcfU/sfOOV2dCAmc=; b=VXuOFU/vUcTPtzDQvkR75Ce2awd+M0z/R31Locznip8+SjpoEoo5W91Vwk8MCVM2fw F1FVNqO0u3W+/W7KFPxC7HuGij4s5bc6kGN1BkkHnEvuOTc9rfFVIkTN2xfday+g0kNP h9YP/KJnxcuZC6G9HrdME2AYiK330aBtJqi+cFqs+jwLZ2mQUS2FyB7DpmlIGDbWb+VC c18YQOuDms3Sb/NyVzzMiiruXNYJCltfLqk+c0wE3b5gsGGpi4rbVSEfCzIcLGww/iVG cUZ/GkUKiwfkPBrk8wSrcj5GiaKmQJSaggvPsgh7ea+ZhQVZXZCpppKSe77ULZpC2VNw M4Yw== X-Gm-Message-State: ABuFfoiOJUT6LAF8Zg8EtpeEjvfmNwPBJv0jyfEuz6+z9A5OSozIrVDt XNMr6xNMtk+FT3cW+vitHcD/IQ== X-Google-Smtp-Source: ACcGV63f5WlBH9BArZBXYsB0+bhJStMYdC6U/cnIgWi+r2aZVBIbW1w6kSn/pLi9HOLruEJhslZdaA== X-Received: by 2002:a63:5021:: with SMTP id e33-v6mr27572885pgb.306.1539852772874; Thu, 18 Oct 2018 01:52:52 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id x186-v6sm18467528pfb.125.2018.10.18.01.52.49 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 18 Oct 2018 01:52:51 -0700 (PDT) From: Baolin Wang To: a.zummo@towertech.it, alexandre.belloni@bootlin.com Cc: broonie@kernel.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, baolin.wang@linaro.org Subject: [PATCH 3/5] rtc: sc27xx: Remove interrupts disable and clear in probe() Date: Thu, 18 Oct 2018 16:52:28 +0800 Message-Id: X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-rtc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org When registering one rtc device, it will check to see if there is an alarm already set in rtc hardware by issuing __rtc_read_alarm(). So we should not disable the RTC interrupts and clear the interrupts status in probe() function. Signed-off-by: Baolin Wang --- drivers/rtc/rtc-sc27xx.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/drivers/rtc/rtc-sc27xx.c b/drivers/rtc/rtc-sc27xx.c index 6ac5653..4ecabe6 100644 --- a/drivers/rtc/rtc-sc27xx.c +++ b/drivers/rtc/rtc-sc27xx.c @@ -129,19 +129,6 @@ static int sprd_rtc_clear_alarm_ints(struct sprd_rtc *rtc) SPRD_RTC_ALM_INT_MASK); } -static int sprd_rtc_disable_ints(struct sprd_rtc *rtc) -{ - int ret; - - ret = regmap_update_bits(rtc->regmap, rtc->base + SPRD_RTC_INT_EN, - SPRD_RTC_INT_MASK, 0); - if (ret) - return ret; - - return regmap_write(rtc->regmap, rtc->base + SPRD_RTC_INT_CLR, - SPRD_RTC_INT_MASK); -} - static int sprd_rtc_lock_alarm(struct sprd_rtc *rtc, bool lock) { int ret; @@ -609,13 +596,6 @@ static int sprd_rtc_probe(struct platform_device *pdev) rtc->dev = &pdev->dev; platform_set_drvdata(pdev, rtc); - /* clear all RTC interrupts and disable all RTC interrupts */ - ret = sprd_rtc_disable_ints(rtc); - if (ret) { - dev_err(&pdev->dev, "failed to disable RTC interrupts\n"); - return ret; - } - /* check if RTC time values are valid */ ret = sprd_rtc_check_power_down(rtc); if (ret) { From patchwork Thu Oct 18 08:52:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baolin Wang X-Patchwork-Id: 985738 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="XqOW8k7j"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42bN9P6d6gz9s9J for ; Thu, 18 Oct 2018 19:52:57 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727500AbeJRQwz (ORCPT ); Thu, 18 Oct 2018 12:52:55 -0400 Received: from mail-pl1-f195.google.com ([209.85.214.195]:32948 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727478AbeJRQwy (ORCPT ); Thu, 18 Oct 2018 12:52:54 -0400 Received: by mail-pl1-f195.google.com with SMTP id s4-v6so14034172plp.0 for ; Thu, 18 Oct 2018 01:52:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=x1nRgoQUZ83pegJhrhtQ6KjoIL98LywhZ2h6g+wmhPg=; b=XqOW8k7jjTgAWLYpZfRfud/yIu2mDZv3OPT7bqPN/Pm289Hvi37fhtx6uKf/M576oE Hp8wdCDZJQRo0LC7Zp7EXzQ1ddEJ5+qLB5D0/riHdTy4fpeTFwkqRsdxAleHmBPHBNmR OzMUIlKj+UZJ/yUYLMUuvr6dMTYAIRgKmxg00= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=x1nRgoQUZ83pegJhrhtQ6KjoIL98LywhZ2h6g+wmhPg=; b=jI1lDol8CWiGmPJT5RE347gCe2CPq7uiQ2Xk/0/imTI5i4OaOb9ZynVGoYE2rw2FaN ss1lqakAQbLzjg8DyowSBRBM/lU69qp/3nvKcXUCNyf2SeMjfrNa6u9AevxUvB9jHNdS KuLfsXp69W9mO8OCCekyvUHdOA6zSLPxAkwRtagda80BvNpcA/5cHz9lg1NB5yO3/avO zihpjADxwjOMZiZ9g1PUBr5x6HlIFmkMhTkkvi6axSs00Xez+MVUhKqePUDHlsep/gtW P4tNpV2vpPbQu/8n0YT/1DWPJllA9hk71YP0PQHRcZwmcFS7usZtEEdca6Ku8U70kkU2 kYQA== X-Gm-Message-State: ABuFfohR65tnn5qNYVbRKZzw9mZKz5uInp6MvgzCoPPE4JhFUfs/wqcZ loSeQxd6X8Hl3f4MPn9/1LCelA== X-Google-Smtp-Source: ACcGV63dWK+HPGo3vMfRcStAgZb5Yi+U9KoasZ9xIA6UaK9RBeGxy9DY5FI9ynon4sDMkQpviv++JQ== X-Received: by 2002:a17:902:7e0b:: with SMTP id b11-v6mr28875383plm.246.1539852775833; Thu, 18 Oct 2018 01:52:55 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id x186-v6sm18467528pfb.125.2018.10.18.01.52.53 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 18 Oct 2018 01:52:54 -0700 (PDT) From: Baolin Wang To: a.zummo@towertech.it, alexandre.belloni@bootlin.com Cc: broonie@kernel.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, baolin.wang@linaro.org Subject: [PATCH 4/5] rtc: sc27xx: Add check to see if need to enable the alarm interrupt Date: Thu, 18 Oct 2018 16:52:29 +0800 Message-Id: <4b0d13b57a64b6ba6ba65c4c2b60319633911427.1539851865.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-rtc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org The RTC interrupt enable register is not put in always-power-on region supplied by VDDRTC, so we should check if we need enable the alarm interrupt when system booting. Signed-off-by: Baolin Wang --- drivers/rtc/rtc-sc27xx.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/rtc/rtc-sc27xx.c b/drivers/rtc/rtc-sc27xx.c index 4ecabe6..72bb002 100644 --- a/drivers/rtc/rtc-sc27xx.c +++ b/drivers/rtc/rtc-sc27xx.c @@ -563,6 +563,32 @@ static int sprd_rtc_check_power_down(struct sprd_rtc *rtc) return 0; } +static int sprd_rtc_check_alarm_int(struct sprd_rtc *rtc) +{ + u32 val; + int ret; + + ret = regmap_read(rtc->regmap, rtc->base + SPRD_RTC_SPG_VALUE, &val); + if (ret) + return ret; + + /* + * The SPRD_RTC_INT_EN register is not put in always-power-on region + * supplied by VDDRTC, so we should check if we need enable the alarm + * interrupt when system booting. + * + * If we have set SPRD_RTC_POWEROFF_ALM_FLAG which is saved in + * always-power-on region, that means we have set one alarm last time, + * so we should enable the alarm interrupt to help RTC core to see if + * there is an alarm already set in RTC hardware. + */ + if (!(val & SPRD_RTC_POWEROFF_ALM_FLAG)) + return 0; + + return regmap_update_bits(rtc->regmap, rtc->base + SPRD_RTC_INT_EN, + SPRD_RTC_ALARM_EN, SPRD_RTC_ALARM_EN); +} + static int sprd_rtc_probe(struct platform_device *pdev) { struct device_node *node = pdev->dev.of_node; @@ -596,6 +622,13 @@ static int sprd_rtc_probe(struct platform_device *pdev) rtc->dev = &pdev->dev; platform_set_drvdata(pdev, rtc); + /* check if we need set the alarm interrupt */ + ret = sprd_rtc_check_alarm_int(rtc); + if (ret) { + dev_err(&pdev->dev, "failed to check RTC alarm interrupt\n"); + return ret; + } + /* check if RTC time values are valid */ ret = sprd_rtc_check_power_down(rtc); if (ret) { From patchwork Thu Oct 18 08:52:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baolin Wang X-Patchwork-Id: 985739 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-rtc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="jrmlzE8X"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42bN9T5n9rz9s0t for ; Thu, 18 Oct 2018 19:53:01 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727489AbeJRQw6 (ORCPT ); Thu, 18 Oct 2018 12:52:58 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:39389 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727987AbeJRQw5 (ORCPT ); Thu, 18 Oct 2018 12:52:57 -0400 Received: by mail-pf1-f194.google.com with SMTP id c25-v6so14572423pfe.6 for ; Thu, 18 Oct 2018 01:52:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=F4klET77vpC5MSEg+hHmdmnyA+1l2CceneKVm/fwxIY=; b=jrmlzE8X9PBk3QfRv1Cfp60C33vylp0lkBxz8T8RarUCjyKz6a1ADpSvyxlGTXcWeA +C7BFa4VEqFP3Vyz+liAkIzoN/XnwIsIYagiL2aZINDGlAV3ltWKccQbbSjfY4yPsChx kOFHxcL8czMaX07ElOvCBIR53cXdDby3bYxXA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=F4klET77vpC5MSEg+hHmdmnyA+1l2CceneKVm/fwxIY=; b=krsyXM74K+Gd9ZD3oktfiwK6bi13duyTdq4bLliATUA3ImcKcPNM4esem6GpwY6T1C GVwXQkmQE5PnsPTNSx5MppqL1JbOcHLTX7y4amRd1iGUt1JCG7VGZflR3nq4X7sBtTPz l4BpsOTOui+YKzC4pfjNOQfnfb197m65aqrY8hW4Cv78N7wFSDW2JOj0GH5jGu9HbJeb 55HhXDnO/vWymROkxY8tWIlUYXBb5WqJvYIKKAUGc3twVzXCBAIZv4PtNI9dnjtW1AjU 4/LNqXBZt2AvkNSQg+TAOYD9D7YHwS2pxIwIkjrECww1wkYPGD13qYYRFlSIDMVsUmuX tK3w== X-Gm-Message-State: ABuFfogU/VQFQe+qJPtVyi02zn0SrSc5kVnQA5bPf1/Q68CS62kx9iUn 5uDP+HTiOWZBg6KUjPTshJpAxg== X-Google-Smtp-Source: ACcGV60C8xYduHyBN2V8RbwQaoV4Y1y1K0cdWqigcTFFD6tafafStdkrNnrtQ+uE4CzPVFThIMXcXQ== X-Received: by 2002:a63:e918:: with SMTP id i24-v6mr27451960pgh.64.1539852778961; Thu, 18 Oct 2018 01:52:58 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id x186-v6sm18467528pfb.125.2018.10.18.01.52.56 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 18 Oct 2018 01:52:58 -0700 (PDT) From: Baolin Wang To: a.zummo@towertech.it, alexandre.belloni@bootlin.com Cc: broonie@kernel.org, linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org, baolin.wang@linaro.org Subject: [PATCH 5/5] rtc: sc27xx: Always read normal alarm when registering RTC device Date: Thu, 18 Oct 2018 16:52:30 +0800 Message-Id: X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-rtc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rtc@vger.kernel.org When registering one RTC device, it will check to see if there is an alarm already set in RTC hardware by reading RTC alarm, at this time we should always read the normal alarm put in always-on region by checking the rtc->registered flag. Signed-off-by: Baolin Wang --- drivers/rtc/rtc-sc27xx.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc-sc27xx.c b/drivers/rtc/rtc-sc27xx.c index 72bb002..b4eb3b3 100644 --- a/drivers/rtc/rtc-sc27xx.c +++ b/drivers/rtc/rtc-sc27xx.c @@ -415,10 +415,14 @@ static int sprd_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) u32 val; /* - * If aie_timer is enabled, we should get the normal alarm time. + * Before RTC device is registered, it will check to see if there is an + * alarm already set in RTC hardware, and we always read the normal + * alarm at this time. + * + * Or if aie_timer is enabled, we should get the normal alarm time. * Otherwise we should get auxiliary alarm time. */ - if (rtc->rtc && rtc->rtc->aie_timer.enabled == 0) + if (rtc->rtc && rtc->rtc->registered && rtc->rtc->aie_timer.enabled == 0) return sprd_rtc_read_aux_alarm(dev, alrm); ret = sprd_rtc_get_secs(rtc, SPRD_RTC_ALARM, &secs);