[PATCH v5 0/6] rtc: s35390a: Allow use of output pin for interrupt signal 1 for wakealarm
From: Markus Probst
Date: Wed Aug 19 2026 - 18:06:35 EST
Add pinctrl to allow the use of output pin for interrupt signal 1
for wakealarm. This is needed for wakealarms to work on Synology NAS
devices.
I could only partially test the pinctrl patch. My testing system runs
ACPI, which makes it impossible for me to configure pinctrl there. I did
however verify that with missing pinctrl configuration in the devicetree,
the register were correctly set. So there should be no regressions.
Every other function than ignore, disable and wakeup should also be
considered untested.
Also If I am not mistaken, wake alarms on these systems are currently broken:
(not tested, judged by looking at the devicetrees).
- arch/arm/boot/dts/marvell/armada-370-synology-ds213j.dts
- arch/arm/boot/dts/marvell/armada-xp-synology-ds414.dts
- arch/arm/boot/dts/marvell/kirkwood-synology.dtsi
- arch/arm/boot/dts/marvell/kirkwood-ds110jv10.dts
- arch/arm/boot/dts/marvell/kirkwood-ds111.dts
- arch/arm/boot/dts/marvell/kirkwood-ds112.dts
- arch/arm/boot/dts/marvell/kirkwood-ds210.dts
- arch/arm/boot/dts/marvell/kirkwood-ds212.dts
- arch/arm/boot/dts/marvell/kirkwood-ds212j.dts
- arch/arm/boot/dts/marvell/kirkwood-ds411.dts
- arch/arm/boot/dts/marvell/kirkwood-ds411j.dts
- arch/arm/boot/dts/marvell/kirkwood-ds411slim.dts
- arch/arm/boot/dts/marvell/kirkwood-rs212.dts
- arch/arm/boot/dts/marvell/kirkwood-rs411.dts
If thats the case it can be fixed by using this patch series and adding
the example in the devicetree to the s35390a devicetree.
If somebody still runs one of these systems, please test.
Thanks
- Markus Probst
Signed-off-by: Markus Probst <markus.probst@xxxxxxxxx>
---
Changes in v5:
- fix issues reported by Sashiko
- fix time corruption on setting 24-hour mode
- fix setting 24-hour even if uninitialized
- Link to v4: https://patch.msgid.link/20260815-rtc_s35390a_int1-v4-0-3133309c365f@xxxxxxxxx
Changes in v4:
- fix issues reported by Sashiko
- require "pins" property in dt
- remove maintainers entry for include/dt-bindings/rtc (which only
existed in previous iterations)
- fix multiple reads to status1, which clears interrupt flags
- fix not waiting for Power-On Circuit check
- fix missing pinctrl dt callbacks
- enforce minimum length of "pins" property in dt
- fix pmin2 on int2 affecting int1
- force use of 24-hour mode
- Link to v3: https://patch.msgid.link/20260805-rtc_s35390a_int1-v3-0-e836faba3e25@xxxxxxxxx
Changes in v3:
- fix issues reported by Sashiko
- fix use of uninitialized time data
- remove dependence on `CONFIG_OF`
- add missing `pinctrl_enable` call
- fix wrong index used in `s35390a_pinconf_set`
- fix interrupt not cleared
- fix `device_set_wakeup_capable` called to late in probe
- fix mode caching even on failure
- fix failure on synology quirk mode update ignored
- only set irq in alarm_irq_enable callback
- fix alarm time not set if set_alarm is called with alarm disabled
- use pinmux instead of pinconf
- move patternProperties below properties in dt
- remove dt-bindings header
- add '#clock-cells' dt property
- merge 32768khz and user frequency mode into "clock"
- remove alarm mode
- refer to mode now as function in the code, to match phrasing in pinmux
- resolve checkpatches --strict warnings
- remove mode_init bool and instead set initial function to -1
- remove err_read probe variable and reuse err
- rebase onto v6.2-rc6
- Link to v2: https://patch.msgid.link/20260801-rtc_s35390a_int1-v2-0-f10c99ad1d6c@xxxxxxxxx
Changes in v2:
- remove sii,wakealarm-output-pin property
- add pinctrl
- add fix to allow disabling of wake alarms
- add synology quirk
- Link to v1: https://patch.msgid.link/20260630-rtc_s35390a_int1-v1-0-1b2239e16be2@xxxxxxxxx
---
Markus Probst (6):
dt-bindings: rtc: Add pinctrl for S35390A
rtc: s35390a: Add missing newline to dev_err
rtc: s35390a: Fix alarm not disabling
rtc: s35390a: force 24-hour mode
rtc: s35390a: Add pinctrl
rtc: s35390a: Add synology quirk
.../devicetree/bindings/rtc/sii,s35390a.yaml | 111 +++++
.../devicetree/bindings/rtc/trivial-rtc.yaml | 3 -
drivers/rtc/Kconfig | 2 +
drivers/rtc/rtc-s35390a.c | 478 ++++++++++++++++-----
4 files changed, 488 insertions(+), 106 deletions(-)
---
base-commit: 237a1c39e8dfd3e1c6f1f023eea37a48ec04cc63
change-id: 20260630-rtc_s35390a_int1-556ccb308d3f