aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/rtc
diff options
context:
space:
mode:
authorAlexandre Belloni <alexandre.belloni@bootlin.com>2023-12-17 23:58:31 +0100
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2024-01-08 01:33:27 +0100
commite9a2162495ce387647bae565483f978369a29839 (patch)
tree50d61e8dafd2c8e0b0f8339fbc6dfcd15180cc73 /drivers/rtc
parentdt-bindings: rtc: qcom-pm8xxx: fix inconsistent example (diff)
downloadwireguard-linux-e9a2162495ce387647bae565483f978369a29839.tar.xz
wireguard-linux-e9a2162495ce387647bae565483f978369a29839.zip
rtc: ma35d1: remove hardcoded UIE support
Let the core handle UIE instead of enabling it forcefully at probe which means the RTC will generate an interrupt every second even when nobody cares. Link: https://lore.kernel.org/r/20231217225831.48581-1-alexandre.belloni@bootlin.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/rtc-ma35d1.c20
1 files changed, 0 insertions, 20 deletions
diff --git a/drivers/rtc/rtc-ma35d1.c b/drivers/rtc/rtc-ma35d1.c
index 07c9a083a9d5..cfcfc28060f6 100644
--- a/drivers/rtc/rtc-ma35d1.c
+++ b/drivers/rtc/rtc-ma35d1.c
@@ -79,11 +79,6 @@ static irqreturn_t ma35d1_rtc_interrupt(int irq, void *data)
events |= RTC_AF | RTC_IRQF;
}
- if (rtc_irq & RTC_INTSTS_UIF) {
- rtc_reg_write(rtc, MA35_REG_RTC_INTSTS, RTC_INTSTS_UIF);
- events |= RTC_UF | RTC_IRQF;
- }
-
rtc_update_irq(rtc->rtcdev, 1, events);
return IRQ_HANDLED;
@@ -216,7 +211,6 @@ static int ma35d1_rtc_probe(struct platform_device *pdev)
{
struct ma35_rtc *rtc;
struct clk *clk;
- u32 regval;
int ret;
rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL);
@@ -264,40 +258,26 @@ static int ma35d1_rtc_probe(struct platform_device *pdev)
if (ret)
return dev_err_probe(&pdev->dev, ret, "Failed to register rtc device\n");
- regval = rtc_reg_read(rtc, MA35_REG_RTC_INTEN);
- regval |= RTC_INTEN_UIEN;
- rtc_reg_write(rtc, MA35_REG_RTC_INTEN, regval);
-
return 0;
}
static int ma35d1_rtc_suspend(struct platform_device *pdev, pm_message_t state)
{
struct ma35_rtc *rtc = platform_get_drvdata(pdev);
- u32 regval;
if (device_may_wakeup(&pdev->dev))
enable_irq_wake(rtc->irq_num);
- regval = rtc_reg_read(rtc, MA35_REG_RTC_INTEN);
- regval &= ~RTC_INTEN_UIEN;
- rtc_reg_write(rtc, MA35_REG_RTC_INTEN, regval);
-
return 0;
}
static int ma35d1_rtc_resume(struct platform_device *pdev)
{
struct ma35_rtc *rtc = platform_get_drvdata(pdev);
- u32 regval;
if (device_may_wakeup(&pdev->dev))
disable_irq_wake(rtc->irq_num);
- regval = rtc_reg_read(rtc, MA35_REG_RTC_INTEN);
- regval |= RTC_INTEN_UIEN;
- rtc_reg_write(rtc, MA35_REG_RTC_INTEN, regval);
-
return 0;
}