Skip to content

Commit 37704f2

Browse files
Doug Bergerpull[bot]
authored andcommitted
rtc: brcmstb-waketimer: introduce WKTMR_ALARM_EVENT flag
This commit defines bit 0 as the bit of interest within the BRCMSTB_WKTMR_EVENT register to make the implementation more readable. Signed-off-by: Doug Berger <opendmb@gmail.com> Acked-by: Florian Fainelli <f.fainelli@gmail.com> Link: https://lore.kernel.org/r/20230120190147.718976-2-opendmb@gmail.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
1 parent 3426d6e commit 37704f2

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

drivers/rtc/rtc-brcmstb-waketimer.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,25 @@ struct brcmstb_waketmr {
3434
};
3535

3636
#define BRCMSTB_WKTMR_EVENT 0x00
37+
#define WKTMR_ALARM_EVENT BIT(0)
3738
#define BRCMSTB_WKTMR_COUNTER 0x04
3839
#define BRCMSTB_WKTMR_ALARM 0x08
3940
#define BRCMSTB_WKTMR_PRESCALER 0x0C
4041
#define BRCMSTB_WKTMR_PRESCALER_VAL 0x10
4142

4243
#define BRCMSTB_WKTMR_DEFAULT_FREQ 27000000
4344

45+
static inline bool brcmstb_waketmr_is_pending(struct brcmstb_waketmr *timer)
46+
{
47+
u32 reg;
48+
49+
reg = readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT);
50+
return !!(reg & WKTMR_ALARM_EVENT);
51+
}
52+
4453
static inline void brcmstb_waketmr_clear_alarm(struct brcmstb_waketmr *timer)
4554
{
46-
writel_relaxed(1, timer->base + BRCMSTB_WKTMR_EVENT);
55+
writel_relaxed(WKTMR_ALARM_EVENT, timer->base + BRCMSTB_WKTMR_EVENT);
4756
(void)readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT);
4857
}
4958

@@ -147,7 +156,6 @@ static int brcmstb_waketmr_getalarm(struct device *dev,
147156
{
148157
struct brcmstb_waketmr *timer = dev_get_drvdata(dev);
149158
time64_t sec;
150-
u32 reg;
151159

152160
sec = readl_relaxed(timer->base + BRCMSTB_WKTMR_ALARM);
153161
if (sec != 0) {
@@ -156,8 +164,7 @@ static int brcmstb_waketmr_getalarm(struct device *dev,
156164
rtc_time64_to_tm(sec, &alarm->time);
157165
}
158166

159-
reg = readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT);
160-
alarm->pending = !!(reg & 1);
167+
alarm->pending = brcmstb_waketmr_is_pending(timer);
161168

162169
return 0;
163170
}

0 commit comments

Comments
 (0)