From patchwork Thu Feb 27 13:42:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 13994483 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E94722FE05 for ; Thu, 27 Feb 2025 13:43:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663821; cv=none; b=PlKEvG57Oh7AHuFefaT5U/YmtAkvUAbSXicNVTSbSUT6qdWgkVyduF4Y+FieJ7NUUubhSct4k16GwMBrjv+n1+IguDvrGzYz/PSAwz/ejGw4xI634uRucr1r/SEKWOWZ1WhpoAsuP7vSmfkfvGo2NjcY54Im5743SY3Ljk8zj9Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663821; c=relaxed/simple; bh=opsIEewIztJ1IZyoYzEP+SwNMi+LKIs5nXcMDwD8Uro=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tYdMVf+beWmSWNsuk42xovVNwge/fKoo7L1TZpOxH9TEqB6hiNV8DzG9mZ2y8qiLOhJy03Esjeo/+eirkO+mEL43VKighTBGY18pl1MNV6l8EXLjM0dYXXIvKB0mvcoan3cld7rFWJGyMAZKZ9tLMepa6W4DU4RWTt7hIKD+76E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=hjWu5KVe; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="hjWu5KVe" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=Nt37Sk0W0XmXtsZPL85MIICCq9BwucCIJ7J3iZrg4Fg=; b=hjWu5K Veln0Eobur44VjNVEKdg02Y5pAOr7fl4nHZrjZFw0QKkkFBCWS0JwVmVJb4LamUd 5b5wBzFLt2spHelrj0O9hXElA1ietAUKH9jGD8Am7ZJUcDYgDO43cmkcsSvpRDnR kVzWjnO52oJNMd4Lxm/akpfQ3qovMvK2nB/Qsnl1/pxfbmVolwqh31wSMgmQpcgQ zj/8Mlhv7b7j83msA0jBmAXxPwS09Y60iHfJqBMQDI1q0uocpsripuGR02fQzsf5 7HPYd5vLSfgnPUcIzVFlJ2BRZUxouSLxXZmaKdDcYzgIbMwNFiEoqfRBuVg+ybHj LdDgtvKe+ziFg0pg== Received: (qmail 962291 invoked from network); 27 Feb 2025 14:43:29 +0100 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 27 Feb 2025 14:43:29 +0100 X-UD-Smtp-Session: l3s3148p1@vin+3x8vqyJtKPD9 From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: Wolfram Sang , Alexandre Belloni , Geert Uytterhoeven , Chris Brandt , linux-rtc@vger.kernel.org Subject: [PATCH 1/8] rtc: sh: assign correct interrupts with DT Date: Thu, 27 Feb 2025 14:42:56 +0100 Message-ID: <20250227134256.9167-11-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> References: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The DT bindings for this driver define the interrupts in the order as they are numbered in the interrupt controller. The old platform_data, however, listed them in a different order. So, for DT based platforms, they are mixed up. Assign them specifically for DT, so we can keep the bindings stable. After the fix, 'rtctest' passes again on the Renesas Genmai board (RZ-A1 / R7S72100). Fixes: dab5aec64bf5 ("rtc: sh: add support for rza series") Signed-off-by: Wolfram Sang --- drivers/rtc/rtc-sh.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c index 9ea40f40188f..3409f5764224 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -485,9 +485,15 @@ static int __init sh_rtc_probe(struct platform_device *pdev) return -ENOENT; } - rtc->periodic_irq = ret; - rtc->carry_irq = platform_get_irq(pdev, 1); - rtc->alarm_irq = platform_get_irq(pdev, 2); + if (!pdev->dev.of_node) { + rtc->periodic_irq = ret; + rtc->carry_irq = platform_get_irq(pdev, 1); + rtc->alarm_irq = platform_get_irq(pdev, 2); + } else { + rtc->alarm_irq = ret; + rtc->periodic_irq = platform_get_irq(pdev, 1); + rtc->carry_irq = platform_get_irq(pdev, 2); + } res = platform_get_resource(pdev, IORESOURCE_IO, 0); if (!res) From patchwork Thu Feb 27 13:42:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 13994481 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E405723314B for ; Thu, 27 Feb 2025 13:43:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663820; cv=none; b=Eo+EFYMD4PLkWTf/UHBDSlgwuHVeonIwFBslLGIMEykAXbfx8GXfK8MJgrBf4uzkuuzuUjg7W9JXguEuoVEZGWPT+stMNkqVtmW6LK8O0BizlyHLHTVN9tEPPvCBIRGByM589SgXPUQeJjUHT0S7Ya010bkrxecXznzqLfsgHmI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663820; c=relaxed/simple; bh=P8Yw1yGrxqa7Bvw9rSGPLm2yaGmL/AMged1PXweAGik=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JzFgNKCjcwpRfKlKDpZvqCCbIke+PDscLMJBGCDmYIR5elgY734EO+Sqm9P5Ga+U0fw+egoaKSEXXKF4F4bPuJEoKzTKfEJJ9Mdgm1baNNncQrCvlj8pCUJSsyLoHB+bKrwLm2mAwq2uGvfxQ5tFuTHmWVRehk4Kxz+UDWwe/Z4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=ifUpU8HT; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="ifUpU8HT" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=sVSwqlrd6Jxe4jgfxwSWOcmRIZzQdYsZIwceMu9SgUk=; b=ifUpU8 HTxhUjx/11J3OttHT5xIyLD0RIYY7rnlqfCIlgyatRJeC4l1T2UsxFNtDNAAFySz Ohom+KcpR8ByasrJ1lMprdFPmAqU5jv5R6ca8CYdiEgQON7Wei7mpabGthNCmUIo +OoUpdc22FCnhgDxUDKewSwPWa1eUAsgNBusDjUaRAnrgApn9IYZegeUpXlDrDOX NiVEKmTSeYjKHdGfLrS4DzfKJ/RA6eoGgpCRvZc3wJjK0yZF6Gtb4usqqXd1iY7T AzO4xDzUvgAPgmOXOyqf4BCsymiU5VXT3S14W8Z/7gI1ijCxI1IBTTy3N8PQkoHn GDLVrlFR9vnvCsIA== Received: (qmail 962328 invoked from network); 27 Feb 2025 14:43:30 +0100 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 27 Feb 2025 14:43:30 +0100 X-UD-Smtp-Session: l3s3148p1@nOYQ4B8v3Q5tKPD9 From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: Wolfram Sang , Alexandre Belloni , linux-rtc@vger.kernel.org Subject: [PATCH 2/8] rtc: sh: remove update interrupt handling Date: Thu, 27 Feb 2025 14:42:57 +0100 Message-ID: <20250227134256.9167-12-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> References: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Since commit e428c6a2772b ("RTC: Clean out UIE icotl implementations"), the flag for UIE cannot be set anymore. Because UIE is now handled via regular alarms and a timerqueue by the RTC core, the UIE handling code can simply go away now. Signed-off-by: Wolfram Sang --- drivers/rtc/rtc-sh.c | 48 +------------------------------------------- 1 file changed, 1 insertion(+), 47 deletions(-) diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c index 3409f5764224..f8227a71084a 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -75,7 +75,6 @@ /* Period Bits */ #define PF_HP 0x100 /* Enable Half Period to support 8,32,128Hz */ #define PF_COUNT 0x200 /* Half periodic counter */ -#define PF_OXS 0x400 /* Periodic One x Second */ #define PF_KOU 0x800 /* Kernel or User periodic request 1=kernel */ #define PF_MASK 0xf00 @@ -107,22 +106,6 @@ struct sh_rtc { unsigned short periodic_freq; }; -static int __sh_rtc_interrupt(struct sh_rtc *rtc) -{ - unsigned int tmp, pending; - - tmp = readb(rtc->regbase + RCR1); - pending = tmp & RCR1_CF; - tmp &= ~RCR1_CF; - writeb(tmp, rtc->regbase + RCR1); - - /* Users have requested One x Second IRQ */ - if (pending && rtc->periodic_freq & PF_OXS) - rtc_update_irq(rtc->rtc_dev, 1, RTC_UF | RTC_IRQF); - - return pending; -} - static int __sh_rtc_alarm(struct sh_rtc *rtc) { unsigned int tmp, pending; @@ -162,18 +145,6 @@ static int __sh_rtc_periodic(struct sh_rtc *rtc) return pending; } -static irqreturn_t sh_rtc_interrupt(int irq, void *dev_id) -{ - struct sh_rtc *rtc = dev_id; - int ret; - - spin_lock(&rtc->lock); - ret = __sh_rtc_interrupt(rtc); - spin_unlock(&rtc->lock); - - return IRQ_RETVAL(ret); -} - static irqreturn_t sh_rtc_alarm(int irq, void *dev_id) { struct sh_rtc *rtc = dev_id; @@ -204,8 +175,7 @@ static irqreturn_t sh_rtc_shared(int irq, void *dev_id) int ret; spin_lock(&rtc->lock); - ret = __sh_rtc_interrupt(rtc); - ret |= __sh_rtc_alarm(rtc); + ret = __sh_rtc_alarm(rtc); ret |= __sh_rtc_periodic(rtc); spin_unlock(&rtc->lock); @@ -236,9 +206,6 @@ static int sh_rtc_proc(struct device *dev, struct seq_file *seq) struct sh_rtc *rtc = dev_get_drvdata(dev); unsigned int tmp; - tmp = readb(rtc->regbase + RCR1); - seq_printf(seq, "carry_IRQ\t: %s\n", (tmp & RCR1_CIE) ? "yes" : "no"); - tmp = readb(rtc->regbase + RCR2); seq_printf(seq, "periodic_IRQ\t: %s\n", (tmp & RCR2_PESMASK) ? "yes" : "no"); @@ -320,10 +287,6 @@ static int sh_rtc_read_time(struct device *dev, struct rtc_time *tm) tm->tm_sec--; #endif - /* only keep the carry interrupt enabled if UIE is on */ - if (!(rtc->periodic_freq & PF_OXS)) - sh_rtc_setcie(dev, 0); - dev_dbg(dev, "%s: tm is secs=%d, mins=%d, hours=%d, " "mday=%d, mon=%d, year=%d, wday=%d\n", __func__, @@ -577,15 +540,6 @@ static int __init sh_rtc_probe(struct platform_device *pdev) goto err_unmap; } - ret = devm_request_irq(&pdev->dev, rtc->carry_irq, - sh_rtc_interrupt, 0, "sh-rtc carry", rtc); - if (unlikely(ret)) { - dev_err(&pdev->dev, - "request carry IRQ failed with %d, IRQ %d\n", - ret, rtc->carry_irq); - goto err_unmap; - } - ret = devm_request_irq(&pdev->dev, rtc->alarm_irq, sh_rtc_alarm, 0, "sh-rtc alarm", rtc); if (unlikely(ret)) { From patchwork Thu Feb 27 13:42:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 13994489 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4029F23315D for ; Thu, 27 Feb 2025 13:43:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663823; cv=none; b=PzjYuppkllKNldqvWnJLa6pQxEb4e41cTHK0WnnrqiydfjlzixXviStxN0WAWJCUF6MapUfaElhOHatmRHm/h5vPKB+qkATjuvLUuYUhckV4x+5hH9/gmMboLjIhJjWDZ/T2z4uA25qqzNImvWCJHgvvF0v0BDGWPzQnGp04DGw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663823; c=relaxed/simple; bh=+lEKNSXns2Off88iLN0X5fJz/356oQrWq+GzbGKJ+XY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=m+USICIPufpzQNLf/W8eoPUyWp+kTkYLjLW4wPKpgo/DUmpBBxFUXP9c8XHRHLhC4PO3qeQXjtueEylVXiHE0S8WnHkmxTNCEsgGd4oiVA1DEI8TwZk6dhbmdZWQlRm0pvIeZ/wjDyPmtQv+e7+xQwLfbilq3d3tSRVhGJU/s14= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=L2MtVc91; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="L2MtVc91" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=UOkcpbt2gZQQhOLLvm8OY4HPmFHBF1NYMhttkhTDfLw=; b=L2MtVc 9120dwZelJ1Nb3ArvJ1HOZXvXsWy6nlE3muXPHL1tKJ5xkUOnW21TQbEFIEeGz5X J6ALwrqhWo1HL+ZYo0OysekjwRAg3ZKNCRv04TLYeFU+ZokE7iOtx2AJfMEWKFQG Y/iJajMTe4BfjBxkGtg0xFZEfleQaeyzqLXHmZX2JWLd/6Z7YYzjTtg7HhtdYxAd AjsLA6cIh8yggkJpxMw5BuVSnZirj+ht/0d5laHbocj0LgnUO1fxofMmvkLYSA+n 3iMkRt+k0PDVl0EsA84rhj35jR/F+L119+lLJNhQuFl6XPpUyQXc795yzqWfCAE9 138AhT+6E+yrDvaQ== Received: (qmail 962352 invoked from network); 27 Feb 2025 14:43:31 +0100 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 27 Feb 2025 14:43:31 +0100 X-UD-Smtp-Session: l3s3148p1@/cgh4B8vA0RtKPD9 From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: Wolfram Sang , Alexandre Belloni , linux-rtc@vger.kernel.org Subject: [PATCH 3/8] rtc: sh: only disable carry interrupts in probe() Date: Thu, 27 Feb 2025 14:42:58 +0100 Message-ID: <20250227134256.9167-13-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> References: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 With old, custom UIE handling removed, we can now disable the carry interrupt in probe() and leave it like this. No further handling is required. Signed-off-by: Wolfram Sang --- drivers/rtc/rtc-sh.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c index f8227a71084a..469806604f31 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -213,25 +213,6 @@ static int sh_rtc_proc(struct device *dev, struct seq_file *seq) return 0; } -static inline void sh_rtc_setcie(struct device *dev, unsigned int enable) -{ - struct sh_rtc *rtc = dev_get_drvdata(dev); - unsigned int tmp; - - spin_lock_irq(&rtc->lock); - - tmp = readb(rtc->regbase + RCR1); - - if (!enable) - tmp &= ~RCR1_CIE; - else - tmp |= RCR1_CIE; - - writeb(tmp, rtc->regbase + RCR1); - - spin_unlock_irq(&rtc->lock); -} - static int sh_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled) { sh_rtc_setaie(dev, enabled); @@ -434,6 +415,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev) struct resource *res; char clk_name[14]; int clk_id, ret; + unsigned int tmp; rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL); if (unlikely(!rtc)) @@ -553,8 +535,9 @@ static int __init sh_rtc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, rtc); /* everything disabled by default */ - sh_rtc_setaie(&pdev->dev, 0); - sh_rtc_setcie(&pdev->dev, 0); + tmp = readb(rtc->regbase + RCR1); + tmp &= ~(RCR1_CIE | RCR1_AIE); + writeb(tmp, rtc->regbase + RCR1); rtc->rtc_dev->ops = &sh_rtc_ops; rtc->rtc_dev->max_user_freq = 256; @@ -585,7 +568,6 @@ static void __exit sh_rtc_remove(struct platform_device *pdev) struct sh_rtc *rtc = platform_get_drvdata(pdev); sh_rtc_setaie(&pdev->dev, 0); - sh_rtc_setcie(&pdev->dev, 0); clk_disable(rtc->clk); } From patchwork Thu Feb 27 13:42:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 13994488 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00E66233D88 for ; Thu, 27 Feb 2025 13:43:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663823; cv=none; b=OHDdB4B9RVri32ThFp7hvPp6STylKHt3NVlowF15Xh8GERAvIPAI7+l5B8wTg3HGahaoK5/lzyCz2PIfQU+r1LQiySLNlrG+h+uP6XHD4L8ANfQOMiX2DyCcS+Fpdx6XYgptHOT1DPO3/d7e/UHIw4gUm/XTS10fvxRezPiEUK0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663823; c=relaxed/simple; bh=U6n/H40musBB5lnG+MWME+/V8NSXjxciFG3PenyFzm0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sfVJBS9e19vS2+bvBFL1cRYG0ekWkSZI0IsDZXZP67/GZVNF3b8bbb3S4XttTzvWfE6qW+s/NYzG1STQ9Z7inVFnlBnfJsL8g6p8+sLy08OzWnVPHkhtO1gmh25q1PC3Bc1QnydS3hN6bVp5kxOL+GC4XDPMOp94w5974XHqAMY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=iXPWfMd+; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="iXPWfMd+" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=PBspQWhBgZsPi9uOPbHH9ZhmabqvDjdep8eQaQ/UPOA=; b=iXPWfM d+dMW3yA4sZFc4tYhBb2RuSewn/n8gP1Lqxlrfe3SEfnIx/QW0Oaywd57UTQoEHr cEIj2uE8DrkQSsPqGCL10fQzF4Je+LN+dE48VtlxYkWnNRkL1UbeomfD55Ia91ms dzI5wsQKaDJqDFL4iwAS1EHjIm/nd0R5tyOa3RVDW2IuBSYoEVDhx5BBEbUHz+oK wkbDAYvE6hyJC2/C3rOpPvoMQ9rL4PL3ZlyaSHPeZqD7+Xqxmwyg3VPc33ErpVAv 8PCHCFwDFb6X7BVNDouHIgS11cjV6F8mYmlvkjRx+e4meJrBhgPHVZVAbjKnSF26 osVF88Kh00/hdNdA== Received: (qmail 962376 invoked from network); 27 Feb 2025 14:43:32 +0100 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 27 Feb 2025 14:43:32 +0100 X-UD-Smtp-Session: l3s3148p1@4+Ay4B8vQQltKPD9 From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: Wolfram Sang , Alexandre Belloni , linux-rtc@vger.kernel.org Subject: [PATCH 4/8] rtc: sh: remove periodic interrupt handling Date: Thu, 27 Feb 2025 14:42:59 +0100 Message-ID: <20250227134256.9167-14-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> References: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Because periodic interrupts are emulated by the RTC core, the PIE handling code can simply go away now. And with it the custom proc-file. Signed-off-by: Wolfram Sang --- drivers/rtc/rtc-sh.c | 69 -------------------------------------------- 1 file changed, 69 deletions(-) diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c index 469806604f31..e80d4ae979c9 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -72,12 +72,6 @@ /* ALARM Bits - or with BCD encoded value */ #define AR_ENB 0x80 /* Enable for alarm cmp */ -/* Period Bits */ -#define PF_HP 0x100 /* Enable Half Period to support 8,32,128Hz */ -#define PF_COUNT 0x200 /* Half periodic counter */ -#define PF_KOU 0x800 /* Kernel or User periodic request 1=kernel */ -#define PF_MASK 0xf00 - /* RCR1 Bits */ #define RCR1_CF 0x80 /* Carry Flag */ #define RCR1_CIE 0x10 /* Carry Interrupt Enable */ @@ -85,8 +79,6 @@ #define RCR1_AF 0x01 /* Alarm Flag */ /* RCR2 Bits */ -#define RCR2_PEF 0x80 /* PEriodic interrupt Flag */ -#define RCR2_PESMASK 0x70 /* Periodic interrupt Set */ #define RCR2_RTCEN 0x08 /* ENable RTC */ #define RCR2_ADJ 0x04 /* ADJustment (30-second) */ #define RCR2_RESET 0x02 /* Reset bit */ @@ -103,7 +95,6 @@ struct sh_rtc { struct rtc_device *rtc_dev; spinlock_t lock; unsigned long capabilities; /* See asm/rtc.h for cap bits */ - unsigned short periodic_freq; }; static int __sh_rtc_alarm(struct sh_rtc *rtc) @@ -121,30 +112,6 @@ static int __sh_rtc_alarm(struct sh_rtc *rtc) return pending; } -static int __sh_rtc_periodic(struct sh_rtc *rtc) -{ - unsigned int tmp, pending; - - tmp = readb(rtc->regbase + RCR2); - pending = tmp & RCR2_PEF; - tmp &= ~RCR2_PEF; - writeb(tmp, rtc->regbase + RCR2); - - if (!pending) - return 0; - - /* Half period enabled than one skipped and the next notified */ - if ((rtc->periodic_freq & PF_HP) && (rtc->periodic_freq & PF_COUNT)) - rtc->periodic_freq &= ~PF_COUNT; - else { - if (rtc->periodic_freq & PF_HP) - rtc->periodic_freq |= PF_COUNT; - rtc_update_irq(rtc->rtc_dev, 1, RTC_PF | RTC_IRQF); - } - - return pending; -} - static irqreturn_t sh_rtc_alarm(int irq, void *dev_id) { struct sh_rtc *rtc = dev_id; @@ -157,18 +124,6 @@ static irqreturn_t sh_rtc_alarm(int irq, void *dev_id) return IRQ_RETVAL(ret); } -static irqreturn_t sh_rtc_periodic(int irq, void *dev_id) -{ - struct sh_rtc *rtc = dev_id; - int ret; - - spin_lock(&rtc->lock); - ret = __sh_rtc_periodic(rtc); - spin_unlock(&rtc->lock); - - return IRQ_RETVAL(ret); -} - static irqreturn_t sh_rtc_shared(int irq, void *dev_id) { struct sh_rtc *rtc = dev_id; @@ -176,7 +131,6 @@ static irqreturn_t sh_rtc_shared(int irq, void *dev_id) spin_lock(&rtc->lock); ret = __sh_rtc_alarm(rtc); - ret |= __sh_rtc_periodic(rtc); spin_unlock(&rtc->lock); return IRQ_RETVAL(ret); @@ -201,18 +155,6 @@ static inline void sh_rtc_setaie(struct device *dev, unsigned int enable) spin_unlock_irq(&rtc->lock); } -static int sh_rtc_proc(struct device *dev, struct seq_file *seq) -{ - struct sh_rtc *rtc = dev_get_drvdata(dev); - unsigned int tmp; - - tmp = readb(rtc->regbase + RCR2); - seq_printf(seq, "periodic_IRQ\t: %s\n", - (tmp & RCR2_PESMASK) ? "yes" : "no"); - - return 0; -} - static int sh_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled) { sh_rtc_setaie(dev, enabled); @@ -405,7 +347,6 @@ static const struct rtc_class_ops sh_rtc_ops = { .set_time = sh_rtc_set_time, .read_alarm = sh_rtc_read_alarm, .set_alarm = sh_rtc_set_alarm, - .proc = sh_rtc_proc, .alarm_irq_enable = sh_rtc_alarm_irq_enable, }; @@ -512,16 +453,6 @@ static int __init sh_rtc_probe(struct platform_device *pdev) goto err_unmap; } } else { - /* register periodic/carry/alarm irqs */ - ret = devm_request_irq(&pdev->dev, rtc->periodic_irq, - sh_rtc_periodic, 0, "sh-rtc period", rtc); - if (unlikely(ret)) { - dev_err(&pdev->dev, - "request period IRQ failed with %d, IRQ %d\n", - ret, rtc->periodic_irq); - goto err_unmap; - } - ret = devm_request_irq(&pdev->dev, rtc->alarm_irq, sh_rtc_alarm, 0, "sh-rtc alarm", rtc); if (unlikely(ret)) { From patchwork Thu Feb 27 13:43:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 13994486 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5808F22F397 for ; Thu, 27 Feb 2025 13:43:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663821; cv=none; b=DYt1CRRZ2tqSQSO1dGXZkw3y3h0r0AHPWcOrSRSDFRA3nmOpau1ZQqZAk04tr/s+PIapiiw7910u+qyIhTRedFPpEiU5x0NA6TLaKaBVtYcT+haj4nN1gUthH3pFtYQ9jSf7M3LvU381GcKrLEQJ4eFQefy/MKxXragoB8KioUc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663821; c=relaxed/simple; bh=ebuycd53Uuy9ErE8bBFYSIEQ+sv4g0fNhgwDIe8DZt8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XjesGipbxrGNofnplwbgkqUbvx/4UY+U6dYZXXeFxLeYwvqrlex3jzfvjhBQI3G4fOYQpqglHmSU3qzUBz2U+LXhtHq66YLt+Ia6ebkkPfsnZtaQY9fk1HUwIeus2wre5x/yUXpuVShR8w5lv1gfn/blYOjm3LHSR+nl0ACBmzE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=WRpLOFVr; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="WRpLOFVr" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=par3vHelOry1lwwazqkFXO3/p86mskpoGl7kGns0BBw=; b=WRpLOF VruUNZz5ZiwT1lFEgdjlusD4x8/M6dk/btoPgewBqj/FUXQ9y1XsFlSSoYdS2ZaZ Ds6wAsRf0TP1NGYS/AEzbJpCxxdaGToO1E3mOWYQ1nVCKgXCLtXhqaGtFLhqQlaN F0J2qTZ966yETC2MfsywcL0hKBZ1iMwcvMroBlwKdYiBMTYD6YpDZgt74HDT+1DJ Oh7C+G7UVbrWNVs/CFiXb62V201KHNWlDiF0a50gkLgPdd+oJv0YdLbGf0w5f4JD 1afSa+em+Z99pQE2kcM8lyOieaaI0BMuebQcwu7zRHSgmhN6fLZu6bmRS5tTvM3B 24rG2qjpV/+l6/6A== Received: (qmail 962402 invoked from network); 27 Feb 2025 14:43:33 +0100 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 27 Feb 2025 14:43:33 +0100 X-UD-Smtp-Session: l3s3148p1@7EVE4B8vqHFtKPD9 From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: Wolfram Sang , Alexandre Belloni , linux-rtc@vger.kernel.org Subject: [PATCH 5/8] rtc: sh: simplify irq setup after refactoring Date: Thu, 27 Feb 2025 14:43:00 +0100 Message-ID: <20250227134256.9167-15-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> References: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 We only need the alarm_irq handler. That means we can remove everything related to periodic_irq and carry_irq. Also, the shared handler can go since we only we need the alarm interrupt in any case. Signed-off-by: Wolfram Sang --- drivers/rtc/rtc-sh.c | 83 +++++++++----------------------------------- 1 file changed, 17 insertions(+), 66 deletions(-) diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c index e80d4ae979c9..bf49dbd09cab 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -89,18 +89,19 @@ struct sh_rtc { unsigned long regsize; struct resource *res; int alarm_irq; - int periodic_irq; - int carry_irq; struct clk *clk; struct rtc_device *rtc_dev; spinlock_t lock; unsigned long capabilities; /* See asm/rtc.h for cap bits */ }; -static int __sh_rtc_alarm(struct sh_rtc *rtc) +static irqreturn_t sh_rtc_alarm(int irq, void *dev_id) { + struct sh_rtc *rtc = dev_id; unsigned int tmp, pending; + spin_lock(&rtc->lock); + tmp = readb(rtc->regbase + RCR1); pending = tmp & RCR1_AF; tmp &= ~(RCR1_AF | RCR1_AIE); @@ -109,31 +110,9 @@ static int __sh_rtc_alarm(struct sh_rtc *rtc) if (pending) rtc_update_irq(rtc->rtc_dev, 1, RTC_AF | RTC_IRQF); - return pending; -} - -static irqreturn_t sh_rtc_alarm(int irq, void *dev_id) -{ - struct sh_rtc *rtc = dev_id; - int ret; - - spin_lock(&rtc->lock); - ret = __sh_rtc_alarm(rtc); - spin_unlock(&rtc->lock); - - return IRQ_RETVAL(ret); -} - -static irqreturn_t sh_rtc_shared(int irq, void *dev_id) -{ - struct sh_rtc *rtc = dev_id; - int ret; - - spin_lock(&rtc->lock); - ret = __sh_rtc_alarm(rtc); spin_unlock(&rtc->lock); - return IRQ_RETVAL(ret); + return IRQ_RETVAL(pending); } static inline void sh_rtc_setaie(struct device *dev, unsigned int enable) @@ -364,22 +343,16 @@ static int __init sh_rtc_probe(struct platform_device *pdev) spin_lock_init(&rtc->lock); - /* get periodic/carry/alarm irqs */ ret = platform_get_irq(pdev, 0); if (unlikely(ret <= 0)) { dev_err(&pdev->dev, "No IRQ resource\n"); return -ENOENT; } - if (!pdev->dev.of_node) { - rtc->periodic_irq = ret; - rtc->carry_irq = platform_get_irq(pdev, 1); + if (!pdev->dev.of_node) rtc->alarm_irq = platform_get_irq(pdev, 2); - } else { + else rtc->alarm_irq = ret; - rtc->periodic_irq = platform_get_irq(pdev, 1); - rtc->carry_irq = platform_get_irq(pdev, 2); - } res = platform_get_resource(pdev, IORESOURCE_IO, 0); if (!res) @@ -442,25 +415,11 @@ static int __init sh_rtc_probe(struct platform_device *pdev) } #endif - if (rtc->carry_irq <= 0) { - /* register shared periodic/carry/alarm irq */ - ret = devm_request_irq(&pdev->dev, rtc->periodic_irq, - sh_rtc_shared, 0, "sh-rtc", rtc); - if (unlikely(ret)) { - dev_err(&pdev->dev, - "request IRQ failed with %d, IRQ %d\n", ret, - rtc->periodic_irq); - goto err_unmap; - } - } else { - ret = devm_request_irq(&pdev->dev, rtc->alarm_irq, - sh_rtc_alarm, 0, "sh-rtc alarm", rtc); - if (unlikely(ret)) { - dev_err(&pdev->dev, - "request alarm IRQ failed with %d, IRQ %d\n", - ret, rtc->alarm_irq); - goto err_unmap; - } + ret = devm_request_irq(&pdev->dev, rtc->alarm_irq, sh_rtc_alarm, 0, "sh-rtc", rtc); + if (ret) { + dev_err(&pdev->dev, "request alarm IRQ failed with %d, IRQ %d\n", + ret, rtc->alarm_irq); + goto err_unmap; } platform_set_drvdata(pdev, rtc); @@ -503,30 +462,22 @@ static void __exit sh_rtc_remove(struct platform_device *pdev) clk_disable(rtc->clk); } -static void sh_rtc_set_irq_wake(struct device *dev, int enabled) +static int __maybe_unused sh_rtc_suspend(struct device *dev) { struct sh_rtc *rtc = dev_get_drvdata(dev); - irq_set_irq_wake(rtc->periodic_irq, enabled); - - if (rtc->carry_irq > 0) { - irq_set_irq_wake(rtc->carry_irq, enabled); - irq_set_irq_wake(rtc->alarm_irq, enabled); - } -} - -static int __maybe_unused sh_rtc_suspend(struct device *dev) -{ if (device_may_wakeup(dev)) - sh_rtc_set_irq_wake(dev, 1); + irq_set_irq_wake(rtc->alarm_irq, 1); return 0; } static int __maybe_unused sh_rtc_resume(struct device *dev) { + struct sh_rtc *rtc = dev_get_drvdata(dev); + if (device_may_wakeup(dev)) - sh_rtc_set_irq_wake(dev, 0); + irq_set_irq_wake(rtc->alarm_irq, 0); return 0; } From patchwork Thu Feb 27 13:43:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 13994484 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38E73233144 for ; Thu, 27 Feb 2025 13:43:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663821; cv=none; b=JnyV5Q53mUIY1EX95HRoGCpbV2ptzwwJ7KRJssY/r9586oWU1ZPLgy7CTJwz1yEDFXMx/5RYwKVYxJpJIRHsfwSm3a/AsL8Z4/GoWqJJH29j0NIUikuIgL1hGReHNQngHDMhwDqHt9rUn1trElcHTGzvJek8sPEpcOfYJ4ypDwU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663821; c=relaxed/simple; bh=mlEOI5HRHdA0r+khPOFstglI4Q0KaINDuTiOi53x7fQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XQcB0MLqLDRFCSU9++dJWpBXUugld2Vg7C1JyLUTsimnArDwvHkt84cUgVPMEfuKDfI1nJkpRkpQcW8x+sJd+tcIL0sb1LIpIv26iwYN15gLyMqCjGd4Nvhj5jXM4iW51xo8ZjZ/bQY4aZkoo6FdxdwyJ/DsCOiQ6ROQ81fVU+s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=jxij3+A6; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="jxij3+A6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=fEqcBkTeEAbMdoXRszSD0T9cx6kWOcSndq0YAOBoylM=; b=jxij3+ A6lNj42B54P5b19/sPw5604x+0VeWf+ql7iMw7/KqR7xqhbOnAceyYCh3qke4OT6 r9ywDNqgF5uSL7SSrJZe6psKrYZAaShFbUk8u77QjDW700auftS1HMy6PdYWKatQ PAFXgYA2zV7f9jLRrMoT1GJryItfbY22OIMDPmsS+iFw9RYIgUB7V11Upo3hP14v xwPBAzmVYnOv96dMpCaLlW36AQ6WH0fD1WKP96tP7LyslGTtyfKaKExdz1pHzgFn I3Sm95js8lbZ/EuIVaiwF0Lv9vitVivlSnkwumN7gYIVedKYWz8S0GGm3rphrnpq NWuFNdlhdcy/lfDg== Received: (qmail 962427 invoked from network); 27 Feb 2025 14:43:34 +0100 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 27 Feb 2025 14:43:34 +0100 X-UD-Smtp-Session: l3s3148p1@/AxV4B8vjGFtKPD9 From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: Wolfram Sang , Alexandre Belloni , linux-rtc@vger.kernel.org Subject: [PATCH 6/8] rtc: sh: remove useless wrapper function Date: Thu, 27 Feb 2025 14:43:01 +0100 Message-ID: <20250227134256.9167-16-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> References: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The wrapper to enable interrupts is so thin that we can use it directly. Also gets rid of an 'inline' which doesn't make sense here. Signed-off-by: Wolfram Sang --- drivers/rtc/rtc-sh.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c index bf49dbd09cab..033bdfc83e42 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -115,7 +115,7 @@ static irqreturn_t sh_rtc_alarm(int irq, void *dev_id) return IRQ_RETVAL(pending); } -static inline void sh_rtc_setaie(struct device *dev, unsigned int enable) +static int sh_rtc_alarm_irq_enable(struct device *dev, unsigned int enable) { struct sh_rtc *rtc = dev_get_drvdata(dev); unsigned int tmp; @@ -132,11 +132,7 @@ static inline void sh_rtc_setaie(struct device *dev, unsigned int enable) writeb(tmp, rtc->regbase + RCR1); spin_unlock_irq(&rtc->lock); -} -static int sh_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled) -{ - sh_rtc_setaie(dev, enabled); return 0; } @@ -457,7 +453,7 @@ static void __exit sh_rtc_remove(struct platform_device *pdev) { struct sh_rtc *rtc = platform_get_drvdata(pdev); - sh_rtc_setaie(&pdev->dev, 0); + sh_rtc_alarm_irq_enable(&pdev->dev, 0); clk_disable(rtc->clk); } From patchwork Thu Feb 27 13:43:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 13994482 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E40E423314E for ; Thu, 27 Feb 2025 13:43:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663820; cv=none; b=XaMKp4aatfJE9oI+aaH0b1XJ9qzdJD/yBzpSMWkrOXb/+h2bvgFNQICS73Bd1A7C2xnXqfEjvjcX5vBUGoIb/qmqiq/Ve1ecIx4R5p678hY1a7wZHlAI5UmtItLHGkgFeGy8hbnYAmjzqIQTu7jH4/Pf+QfkhLjqLxohqJgoeh4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663820; c=relaxed/simple; bh=vAFzxwkXeTzesQ+x3tdBqDDfeRpINbz2vW0aMsCwE64=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FOijOezlIqyw1E2DppzAmoVxvt8By3CN4CBUOWoMDFXbP4+lV8VeTitQSVkHaZ30CUinP2zRHVRGUp35wtbjLHdOpKNZl8r9HLaa5dY5gSUSHBzcnFmJaVY9UoS/2zn59yBkRkkR/8sWCEy7EGtjyM72x36MONMiLvHZDB3r9jo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=S3FUzG8Q; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="S3FUzG8Q" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=/+X4d+2tCAXnFT+wF0nRgsn1iikYvQLvyAR0+y9C9ls=; b=S3FUzG 8QIVyI/z2bJomT0FZMsP6m01mRlqp6YxllY87Ddlf84l1QJ6069JE+/75OE3MMf5 8YxrqzXy14RQjPipz6FBMNeG41V5ZgvdlMA/ntnEk5Z6avhJ5tLp88H9h7Oc9V7k +Qu4k0jnWCFU8o1LRepzifhjB1fJdE6I8jO/1pC6sL1Cu2DR2NovCoL0f3e63RdF n7CD8wKOiReebW7bEyKdtqcPb/RzhgZX+0HLWksPegSXXIogcFI1Vn6wLhNV4G3b 96QWhQvtr3umpS/OIDR06Ou+vIT/jSupp9Se90eJ8Ql8I1hsHgj0kzHcRgmK/tAt oumI4bvqTAfN/eGw== Received: (qmail 962451 invoked from network); 27 Feb 2025 14:43:35 +0100 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 27 Feb 2025 14:43:35 +0100 X-UD-Smtp-Session: l3s3148p1@mYtl4B8vPGJtKPD9 From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: Wolfram Sang , Alexandre Belloni , linux-rtc@vger.kernel.org Subject: [PATCH 7/8] rtc: sh: use local variables in probe() for mapping IO Date: Thu, 27 Feb 2025 14:43:02 +0100 Message-ID: <20250227134256.9167-17-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> References: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 No need to store the resource for the registers in the per-device struct because we only need it during probe. Remove some unneeded unlikely() while here and correct the type of 'regsize'. Signed-off-by: Wolfram Sang --- drivers/rtc/rtc-sh.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c index 033bdfc83e42..3bafb2a0659d 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -86,8 +86,6 @@ struct sh_rtc { void __iomem *regbase; - unsigned long regsize; - struct resource *res; int alarm_irq; struct clk *clk; struct rtc_device *rtc_dev; @@ -328,10 +326,11 @@ static const struct rtc_class_ops sh_rtc_ops = { static int __init sh_rtc_probe(struct platform_device *pdev) { struct sh_rtc *rtc; - struct resource *res; + struct resource *res, *req_res; char clk_name[14]; int clk_id, ret; unsigned int tmp; + resource_size_t regsize; rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL); if (unlikely(!rtc)) @@ -353,20 +352,18 @@ static int __init sh_rtc_probe(struct platform_device *pdev) res = platform_get_resource(pdev, IORESOURCE_IO, 0); if (!res) res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (unlikely(res == NULL)) { + if (!res) { dev_err(&pdev->dev, "No IO resource\n"); return -ENOENT; } - rtc->regsize = resource_size(res); - - rtc->res = devm_request_mem_region(&pdev->dev, res->start, - rtc->regsize, pdev->name); - if (unlikely(!rtc->res)) + regsize = resource_size(res); + req_res = devm_request_mem_region(&pdev->dev, res->start, regsize, pdev->name); + if (!req_res) return -EBUSY; - rtc->regbase = devm_ioremap(&pdev->dev, rtc->res->start, rtc->regsize); - if (unlikely(!rtc->regbase)) + rtc->regbase = devm_ioremap(&pdev->dev, req_res->start, regsize); + if (!rtc->regbase) return -EINVAL; if (!pdev->dev.of_node) { From patchwork Thu Feb 27 13:43:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfram Sang X-Patchwork-Id: 13994487 X-Patchwork-Delegate: geert@linux-m68k.org Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A67023313E for ; Thu, 27 Feb 2025 13:43:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663821; cv=none; b=Msv+/BpUw5uhJhFrs5MTiuvzXL+h6Ow4B+uBcaxRhP46PT91tibcNcYIZ0i5VXV93j0kgHcIg2YnOL+KQJrx9od9E+R9H3pWp8O96CEe+/uOrp6JBZK4o1G9XW5cf9cLoktrPPB3kfdnkC71kfBXD4jxcVxeNnkllNtoo7Jqzmo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740663821; c=relaxed/simple; bh=U01MmYcykOio02hH5Iam3dBQe4D52OjWeMXxSQipVgo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i+lMvMwczWdXqe+kHbO5lwa5aG9WgR9gqQjMdX5thNXWX09L+cy4AxfusR7utE22xYUHWRtWjdRWsVlAzONFQm/d/V3SPH1dcDdnrP2Og/rUeiuIoi0Ury9HQvGBtl4EMPMbydc4KehdWNjKUT7MmoB+9kZFVmiLXg5PuvKCBRc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=gX8Dsmg7; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="gX8Dsmg7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=bEUxNHlKC6W56Uy15CrG0xWxKg+OIhIXHlA/sYPS2xg=; b=gX8Dsm g7ff2qBjAFU6KtfC1vwxELAR6mPvG0kqlWe93qDPtsjYioa0lcaSS5VXuChukvoC KuQAkoLLE395tUJ3pl+2vLgHRMmB00Jq6fl4m0Soc0GYVQBZQgNfPLLfTIQqNugO 7m/MOBrivr9COST35uauBFVkFqxE0yet3HpFczsb8HAN6N+GXYSJeJbZhh12/V+H DyqZnAw0Qp+gsEbXdP2AdmjH8dihaeIux/ZJzRyfsnavtppZrqgA+2/qvs9cVADh TKN1gDIFdTp/77iLV9OhS2mxDv+L1BztYZdR0tXj2JoE4K57Fhp039EazDK6Rsev yx1iUfSXHzqwQmrw== Received: (qmail 962485 invoked from network); 27 Feb 2025 14:43:37 +0100 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 27 Feb 2025 14:43:37 +0100 X-UD-Smtp-Session: l3s3148p1@mil44B8vbDVtKPD9 From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: Wolfram Sang , Alexandre Belloni , linux-rtc@vger.kernel.org Subject: [PATCH 8/8] rtc: sh: minor fixes to adhere to coding style Date: Thu, 27 Feb 2025 14:43:03 +0100 Message-ID: <20250227134256.9167-18-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> References: <20250227134256.9167-10-wsa+renesas@sang-engineering.com> Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Use the BIT macro, use curly braces for else-blocks, don't split strings over multiple lines, annotate the lock, update copyright. Signed-off-by: Wolfram Sang --- drivers/rtc/rtc-sh.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c index 3bafb2a0659d..f15ef3aa82a0 100644 --- a/drivers/rtc/rtc-sh.c +++ b/drivers/rtc/rtc-sh.c @@ -5,6 +5,7 @@ * Copyright (C) 2006 - 2009 Paul Mundt * Copyright (C) 2006 Jamie Lenehan * Copyright (C) 2008 Angelo Castello + * Copyright (C) 2025 Wolfram Sang, Renesas Electronics Corporation * * Based on the old arch/sh/kernel/cpu/rtc.c by: * @@ -31,7 +32,7 @@ /* Default values for RZ/A RTC */ #define rtc_reg_size sizeof(u16) #define RTC_BIT_INVERTED 0 /* no chip bugs */ -#define RTC_CAP_4_DIGIT_YEAR (1 << 0) +#define RTC_CAP_4_DIGIT_YEAR BIT(0) #define RTC_DEF_CAPABILITIES RTC_CAP_4_DIGIT_YEAR #endif @@ -70,26 +71,26 @@ */ /* ALARM Bits - or with BCD encoded value */ -#define AR_ENB 0x80 /* Enable for alarm cmp */ +#define AR_ENB BIT(7) /* Enable for alarm cmp */ /* RCR1 Bits */ -#define RCR1_CF 0x80 /* Carry Flag */ -#define RCR1_CIE 0x10 /* Carry Interrupt Enable */ -#define RCR1_AIE 0x08 /* Alarm Interrupt Enable */ -#define RCR1_AF 0x01 /* Alarm Flag */ +#define RCR1_CF BIT(7) /* Carry Flag */ +#define RCR1_CIE BIT(4) /* Carry Interrupt Enable */ +#define RCR1_AIE BIT(3) /* Alarm Interrupt Enable */ +#define RCR1_AF BIT(0) /* Alarm Flag */ /* RCR2 Bits */ -#define RCR2_RTCEN 0x08 /* ENable RTC */ -#define RCR2_ADJ 0x04 /* ADJustment (30-second) */ -#define RCR2_RESET 0x02 /* Reset bit */ -#define RCR2_START 0x01 /* Start bit */ +#define RCR2_RTCEN BIT(3) /* ENable RTC */ +#define RCR2_ADJ BIT(2) /* ADJustment (30-second) */ +#define RCR2_RESET BIT(1) /* Reset bit */ +#define RCR2_START BIT(0) /* Start bit */ struct sh_rtc { void __iomem *regbase; int alarm_irq; struct clk *clk; struct rtc_device *rtc_dev; - spinlock_t lock; + spinlock_t lock; /* protecting register access */ unsigned long capabilities; /* See asm/rtc.h for cap bits */ }; @@ -183,10 +184,8 @@ static int sh_rtc_read_time(struct device *dev, struct rtc_time *tm) tm->tm_sec--; #endif - dev_dbg(dev, "%s: tm is secs=%d, mins=%d, hours=%d, " - "mday=%d, mon=%d, year=%d, wday=%d\n", - __func__, - tm->tm_sec, tm->tm_min, tm->tm_hour, + dev_dbg(dev, "%s: tm is secs=%d, mins=%d, hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", + __func__, tm->tm_sec, tm->tm_min, tm->tm_hour, tm->tm_mday, tm->tm_mon + 1, tm->tm_year, tm->tm_wday); return 0; @@ -373,8 +372,9 @@ static int __init sh_rtc_probe(struct platform_device *pdev) clk_id = 0; snprintf(clk_name, sizeof(clk_name), "rtc%d", clk_id); - } else + } else { snprintf(clk_name, sizeof(clk_name), "fck"); + } rtc->clk = devm_clk_get(&pdev->dev, clk_name); if (IS_ERR(rtc->clk)) { @@ -501,8 +501,8 @@ static struct platform_driver sh_rtc_platform_driver __refdata = { module_platform_driver_probe(sh_rtc_platform_driver, sh_rtc_probe); MODULE_DESCRIPTION("SuperH on-chip RTC driver"); -MODULE_AUTHOR("Paul Mundt , " - "Jamie Lenehan , " - "Angelo Castello "); +MODULE_AUTHOR("Paul Mundt "); +MODULE_AUTHOR("Jamie Lenehan "); +MODULE_AUTHOR("Angelo Castello "); MODULE_LICENSE("GPL v2"); MODULE_ALIAS("platform:" DRV_NAME);