* [PATCH 0/3] rtc: s35390a: Allow use of output pin for interrupt signal 1 for wakealarm
@ 2026-06-30 19:22 Markus Probst
2026-06-30 19:22 ` [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A Markus Probst
` (2 more replies)
0 siblings, 3 replies; 17+ messages in thread
From: Markus Probst @ 2026-06-30 19:22 UTC (permalink / raw)
To: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Uwe Kleine-König, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth
Cc: linux-arm-kernel, linux-rtc, devicetree, linux-kernel,
Markus Probst
Add a dt property to allow the use of output pin for interrupt signal 1
for wakealarm. This is needed for wakealarms to work on Synology NAS
devices.
It appears there is currently no entry in the MAINTAINERS file for the
S35390A driver. I assume the driver is currently maintained by
Alexandre Belloni.
I hope its fine I added him as maintainer for the newly added devicetree
binding, in order to keep it maintained by the same person.
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
`sii,wakealarm-output-pin = <S35390A_OUTPUT_PIN_INT1>;` to the
s35390a devicetree.
If somebody still runs one of these systems, please test.
Thanks
- Markus Probst
Signed-off-by: Markus Probst <markus.probst@posteo.de>
---
Markus Probst (3):
dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A
rtc: s35390a: Add missing newline to dev_err
rtc: s35390a: make use of interrupt signal 1
.../devicetree/bindings/rtc/sii,s35390a.yaml | 54 +++++++++++++++++++
.../devicetree/bindings/rtc/trivial-rtc.yaml | 3 --
MAINTAINERS | 1 +
drivers/rtc/rtc-s35390a.c | 63 +++++++++++++++++-----
include/dt-bindings/rtc/s35390a.h | 9 ++++
5 files changed, 114 insertions(+), 16 deletions(-)
---
base-commit: 728e68a889bcf257b1e67298b12c360e5c3a13e0
change-id: 20260630-rtc_s35390a_int1-556ccb308d3f
^ permalink raw reply [flat|nested] 17+ messages in thread* [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-06-30 19:22 [PATCH 0/3] rtc: s35390a: Allow use of output pin for interrupt signal 1 for wakealarm Markus Probst @ 2026-06-30 19:22 ` Markus Probst 2026-07-01 7:35 ` Krzysztof Kozlowski 2026-07-01 15:06 ` Alexandre Belloni 2026-06-30 19:22 ` [PATCH 2/3] rtc: s35390a: Add missing newline to dev_err Markus Probst 2026-06-30 19:22 ` [PATCH 3/3] rtc: s35390a: make use of interrupt signal 1 Markus Probst 2 siblings, 2 replies; 17+ messages in thread From: Markus Probst @ 2026-06-30 19:22 UTC (permalink / raw) To: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth Cc: linux-arm-kernel, linux-rtc, devicetree, linux-kernel, Markus Probst Synology NAS devices use the output pin for interrupt signal 1 to wake up the system. Move devicetree bindings for sii,s35390a into its own file. Add sii,wakealarm-output-pin property to enable the use of the output pin for interrupt signal 1 for the wake alarm, which makes it possible to set an wake alarm on Synology NAS devices. Signed-off-by: Markus Probst <markus.probst@posteo.de> --- .../devicetree/bindings/rtc/sii,s35390a.yaml | 54 ++++++++++++++++++++++ .../devicetree/bindings/rtc/trivial-rtc.yaml | 3 -- MAINTAINERS | 1 + include/dt-bindings/rtc/s35390a.h | 9 ++++ 4 files changed, 64 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml new file mode 100644 index 000000000000..31a578673870 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml @@ -0,0 +1,54 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/rtc/sii,s35390a.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: S-35390A 2-WIRE REAL-TIME CLOCK + +maintainers: + - Alexandre Belloni <alexandre.belloni@bootlin.com> + +description: + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the + very low current consumption in the wide range of operation voltage. + +allOf: + - $ref: rtc.yaml# + +properties: + compatible: + const: sii,s35390a + + reg: + maxItems: 1 + + sii,wakealarm-output-pin: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [1, 2] + description: | + The output pin to wake up the system. + Default will use the output pin for interrupt signal 2. + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 + +required: + - compatible + - reg + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/rtc/s35390a.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + rtc: rtc@30 { + compatible = "sii,s35390a"; + reg = <0x30>; + sii,wakealarm-output-pin = <S35390A_OUTPUT_PIN_INT2>; + }; + }; diff --git a/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml b/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml index f4d0eed98a08..7b3f682ef4d5 100644 --- a/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml +++ b/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml @@ -81,8 +81,6 @@ properties: - ricoh,rv5c386 # I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC - ricoh,rv5c387a - # 2-wire CMOS real-time clock - - sii,s35390a # ST SPEAr Real-time Clock - st,spear600-rtc # VIA/Wondermedia VT8500 Real-time Clock @@ -105,5 +103,4 @@ required: - reg additionalProperties: false - ... diff --git a/MAINTAINERS b/MAINTAINERS index 15011f5752a9..46a19a0873e0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -22690,6 +22690,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git F: Documentation/admin-guide/rtc.rst F: Documentation/devicetree/bindings/rtc/ F: drivers/rtc/ +F: include/dt-bindings/rtc/ F: include/linux/rtc.h F: include/linux/rtc/ F: include/uapi/linux/rtc.h diff --git a/include/dt-bindings/rtc/s35390a.h b/include/dt-bindings/rtc/s35390a.h new file mode 100644 index 000000000000..bd99db118d31 --- /dev/null +++ b/include/dt-bindings/rtc/s35390a.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) */ + +#ifndef __DT_BINDINGS_RTC_S35390A_H +#define __DT_BINDINGS_RTC_S35390A_H + +#define S35390A_OUTPUT_PIN_INT1 1 +#define S35390A_OUTPUT_PIN_INT2 2 + +#endif /* __DT_BINDINGS_RTC_S35390A_H */ -- 2.54.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-06-30 19:22 ` [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A Markus Probst @ 2026-07-01 7:35 ` Krzysztof Kozlowski 2026-07-01 13:25 ` Markus Probst 2026-07-01 15:06 ` Alexandre Belloni 1 sibling, 1 reply; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-07-01 7:35 UTC (permalink / raw) To: Markus Probst Cc: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel On Tue, Jun 30, 2026 at 07:22:21PM +0000, Markus Probst wrote: > Synology NAS devices use the output pin for interrupt signal 1 to wake up > the system. > > Move devicetree bindings for sii,s35390a into its own file. > Add sii,wakealarm-output-pin property to enable the use of the output > pin for interrupt signal 1 for the wake alarm, which makes it possible to > set an wake alarm on Synology NAS devices. > > Signed-off-by: Markus Probst <markus.probst@posteo.de> > --- > .../devicetree/bindings/rtc/sii,s35390a.yaml | 54 ++++++++++++++++++++++ > .../devicetree/bindings/rtc/trivial-rtc.yaml | 3 -- > MAINTAINERS | 1 + > include/dt-bindings/rtc/s35390a.h | 9 ++++ > 4 files changed, 64 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > new file mode 100644 > index 000000000000..31a578673870 > --- /dev/null > +++ b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > @@ -0,0 +1,54 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/rtc/sii,s35390a.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: S-35390A 2-WIRE REAL-TIME CLOCK > + > +maintainers: > + - Alexandre Belloni <alexandre.belloni@bootlin.com> This should be someone caring about this hardware. > + > +description: > + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the > + very low current consumption in the wide range of operation voltage. > + > +allOf: > + - $ref: rtc.yaml# > + > +properties: > + compatible: > + const: sii,s35390a > + > + reg: > + maxItems: 1 > + > + sii,wakealarm-output-pin: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2] > + description: | > + The output pin to wake up the system. > + Default will use the output pin for interrupt signal 2. > + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 > + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 Does that mean device generates the interrupts? Best regards, Krzysztof ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-01 7:35 ` Krzysztof Kozlowski @ 2026-07-01 13:25 ` Markus Probst 2026-07-01 15:11 ` Alexandre Belloni 2026-07-01 15:14 ` Krzysztof Kozlowski 0 siblings, 2 replies; 17+ messages in thread From: Markus Probst @ 2026-07-01 13:25 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 2712 bytes --] On Wed, 2026-07-01 at 09:35 +0200, Krzysztof Kozlowski wrote: > On Tue, Jun 30, 2026 at 07:22:21PM +0000, Markus Probst wrote: > > Synology NAS devices use the output pin for interrupt signal 1 to wake up > > the system. > > > > Move devicetree bindings for sii,s35390a into its own file. > > Add sii,wakealarm-output-pin property to enable the use of the output > > pin for interrupt signal 1 for the wake alarm, which makes it possible to > > set an wake alarm on Synology NAS devices. > > > > Signed-off-by: Markus Probst <markus.probst@posteo.de> > > --- > > .../devicetree/bindings/rtc/sii,s35390a.yaml | 54 ++++++++++++++++++++++ > > .../devicetree/bindings/rtc/trivial-rtc.yaml | 3 -- > > MAINTAINERS | 1 + > > include/dt-bindings/rtc/s35390a.h | 9 ++++ > > 4 files changed, 64 insertions(+), 3 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > > new file mode 100644 > > index 000000000000..31a578673870 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > > @@ -0,0 +1,54 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/rtc/sii,s35390a.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: S-35390A 2-WIRE REAL-TIME CLOCK > > + > > +maintainers: > > + - Alexandre Belloni <alexandre.belloni@bootlin.com> > > This should be someone caring about this hardware. He does have the majority of commits on this driver (excluding merge commits and commits not exclusive to this driver), although most of them are pretty tiny. Who would you suggest instead? > > > + > > +description: > > + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the > > + very low current consumption in the wide range of operation voltage. > > + > > +allOf: > > + - $ref: rtc.yaml# > > + > > +properties: > > + compatible: > > + const: sii,s35390a > > + > > + reg: > > + maxItems: 1 > > + > > + sii,wakealarm-output-pin: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + enum: [1, 2] > > + description: | > > + The output pin to wake up the system. > > + Default will use the output pin for interrupt signal 2. > > + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 > > + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 > > Does that mean device generates the interrupts? Yes. Thanks - Markus Probst > > Best regards, > Krzysztof [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 870 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-01 13:25 ` Markus Probst @ 2026-07-01 15:11 ` Alexandre Belloni 2026-07-01 15:14 ` Krzysztof Kozlowski 1 sibling, 0 replies; 17+ messages in thread From: Alexandre Belloni @ 2026-07-01 15:11 UTC (permalink / raw) To: Markus Probst Cc: Krzysztof Kozlowski, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel On 01/07/2026 13:25:41+0000, Markus Probst wrote: > On Wed, 2026-07-01 at 09:35 +0200, Krzysztof Kozlowski wrote: > > On Tue, Jun 30, 2026 at 07:22:21PM +0000, Markus Probst wrote: > > > Synology NAS devices use the output pin for interrupt signal 1 to wake up > > > the system. > > > > > > Move devicetree bindings for sii,s35390a into its own file. > > > Add sii,wakealarm-output-pin property to enable the use of the output > > > pin for interrupt signal 1 for the wake alarm, which makes it possible to > > > set an wake alarm on Synology NAS devices. > > > > > > Signed-off-by: Markus Probst <markus.probst@posteo.de> > > > --- > > > .../devicetree/bindings/rtc/sii,s35390a.yaml | 54 ++++++++++++++++++++++ > > > .../devicetree/bindings/rtc/trivial-rtc.yaml | 3 -- > > > MAINTAINERS | 1 + > > > include/dt-bindings/rtc/s35390a.h | 9 ++++ > > > 4 files changed, 64 insertions(+), 3 deletions(-) > > > > > > diff --git a/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > > > new file mode 100644 > > > index 000000000000..31a578673870 > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > > > @@ -0,0 +1,54 @@ > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/rtc/sii,s35390a.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: S-35390A 2-WIRE REAL-TIME CLOCK > > > + > > > +maintainers: > > > + - Alexandre Belloni <alexandre.belloni@bootlin.com> > > > > This should be someone caring about this hardware. > He does have the majority of commits on this driver (excluding merge > commits and commits not exclusive to this driver), although most of > them are pretty tiny. > > Who would you suggest instead? I can take it but the point of Krzysztof is mainly that the ones working on the driver don't necessarily have to be the DT bindings maintainers as both are well separated. I mostly did clean ups in the driver, Lorenz Brun submitted something way more interesting. > > > > > + > > > +description: > > > + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the > > > + very low current consumption in the wide range of operation voltage. > > > + > > > +allOf: > > > + - $ref: rtc.yaml# > > > + > > > +properties: > > > + compatible: > > > + const: sii,s35390a > > > + > > > + reg: > > > + maxItems: 1 > > > + > > > + sii,wakealarm-output-pin: > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > > + enum: [1, 2] > > > + description: | > > > + The output pin to wake up the system. > > > + Default will use the output pin for interrupt signal 2. > > > + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 > > > + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 > > > > Does that mean device generates the interrupts? > Yes. > > Thanks > - Markus Probst > > > > > Best regards, > > Krzysztof -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-01 13:25 ` Markus Probst 2026-07-01 15:11 ` Alexandre Belloni @ 2026-07-01 15:14 ` Krzysztof Kozlowski 2026-07-01 16:43 ` Markus Probst 1 sibling, 1 reply; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-07-01 15:14 UTC (permalink / raw) To: Markus Probst Cc: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel On 01/07/2026 15:25, Markus Probst wrote: >>> + >>> +maintainers: >>> + - Alexandre Belloni <alexandre.belloni@bootlin.com> >> >> This should be someone caring about this hardware. > He does have the majority of commits on this driver (excluding merge > commits and commits not exclusive to this driver), although most of > them are pretty tiny. > > Who would you suggest instead? Someone adding features for this driver, maybe driver maintainers. But if Alexandre is fine, you can leave him. >> >>> + >>> +description: >>> + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the >>> + very low current consumption in the wide range of operation voltage. >>> + >>> +allOf: >>> + - $ref: rtc.yaml# >>> + >>> +properties: >>> + compatible: >>> + const: sii,s35390a >>> + >>> + reg: >>> + maxItems: 1 >>> + >>> + sii,wakealarm-output-pin: >>> + $ref: /schemas/types.yaml#/definitions/uint32 >>> + enum: [1, 2] >>> + description: | >>> + The output pin to wake up the system. >>> + Default will use the output pin for interrupt signal 2. >>> + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 >>> + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 >> >> Does that mean device generates the interrupts? > Yes. > Then I think you miss interrupts property. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-01 15:14 ` Krzysztof Kozlowski @ 2026-07-01 16:43 ` Markus Probst 2026-07-01 16:48 ` Alexandre Belloni 0 siblings, 1 reply; 17+ messages in thread From: Markus Probst @ 2026-07-01 16:43 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1865 bytes --] On Wed, 2026-07-01 at 17:14 +0200, Krzysztof Kozlowski wrote: > On 01/07/2026 15:25, Markus Probst wrote: > > > > + > > > > +maintainers: > > > > + - Alexandre Belloni <alexandre.belloni@bootlin.com> > > > > > > This should be someone caring about this hardware. > > He does have the majority of commits on this driver (excluding merge > > commits and commits not exclusive to this driver), although most of > > them are pretty tiny. > > > > Who would you suggest instead? > > Someone adding features for this driver, maybe driver maintainers. But > if Alexandre is fine, you can leave him. > > > > > > > > + > > > > +description: > > > > + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the > > > > + very low current consumption in the wide range of operation voltage. > > > > + > > > > +allOf: > > > > + - $ref: rtc.yaml# > > > > + > > > > +properties: > > > > + compatible: > > > > + const: sii,s35390a > > > > + > > > > + reg: > > > > + maxItems: 1 > > > > + > > > > + sii,wakealarm-output-pin: > > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > > > + enum: [1, 2] > > > > + description: | > > > > + The output pin to wake up the system. > > > > + Default will use the output pin for interrupt signal 2. > > > > + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 > > > > + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 > > > > > > Does that mean device generates the interrupts? > > Yes. > > > > > Then I think you miss interrupts property. From what I can tell the line is used to generate a system wakeup event. There would be no obvious benefit of connecting it to an interrupt controller, so this property would be obsolete? Thanks - Markus Probst > > Best regards, > Krzysztof [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 870 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-01 16:43 ` Markus Probst @ 2026-07-01 16:48 ` Alexandre Belloni 2026-07-01 17:08 ` Markus Probst 0 siblings, 1 reply; 17+ messages in thread From: Alexandre Belloni @ 2026-07-01 16:48 UTC (permalink / raw) To: Markus Probst Cc: Krzysztof Kozlowski, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel On 01/07/2026 16:43:07+0000, Markus Probst wrote: > On Wed, 2026-07-01 at 17:14 +0200, Krzysztof Kozlowski wrote: > > On 01/07/2026 15:25, Markus Probst wrote: > > > > > + > > > > > +maintainers: > > > > > + - Alexandre Belloni <alexandre.belloni@bootlin.com> > > > > > > > > This should be someone caring about this hardware. > > > He does have the majority of commits on this driver (excluding merge > > > commits and commits not exclusive to this driver), although most of > > > them are pretty tiny. > > > > > > Who would you suggest instead? > > > > Someone adding features for this driver, maybe driver maintainers. But > > if Alexandre is fine, you can leave him. > > > > > > > > > > > + > > > > > +description: > > > > > + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the > > > > > + very low current consumption in the wide range of operation voltage. > > > > > + > > > > > +allOf: > > > > > + - $ref: rtc.yaml# > > > > > + > > > > > +properties: > > > > > + compatible: > > > > > + const: sii,s35390a > > > > > + > > > > > + reg: > > > > > + maxItems: 1 > > > > > + > > > > > + sii,wakealarm-output-pin: > > > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > > > > + enum: [1, 2] > > > > > + description: | > > > > > + The output pin to wake up the system. > > > > > + Default will use the output pin for interrupt signal 2. > > > > > + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 > > > > > + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 > > > > > > > > Does that mean device generates the interrupts? > > > Yes. > > > > > > > > > Then I think you miss interrupts property. > From what I can tell the line is used to generate a system wakeup > event. > > There would be no obvious benefit of connecting it to an interrupt > controller, so this property would be obsolete? > Then you need proper wakeup-source support -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-01 16:48 ` Alexandre Belloni @ 2026-07-01 17:08 ` Markus Probst 2026-07-02 6:09 ` Krzysztof Kozlowski 0 siblings, 1 reply; 17+ messages in thread From: Markus Probst @ 2026-07-01 17:08 UTC (permalink / raw) To: Alexandre Belloni Cc: Krzysztof Kozlowski, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 2417 bytes --] On Wed, 2026-07-01 at 18:48 +0200, Alexandre Belloni wrote: > On 01/07/2026 16:43:07+0000, Markus Probst wrote: > > On Wed, 2026-07-01 at 17:14 +0200, Krzysztof Kozlowski wrote: > > > On 01/07/2026 15:25, Markus Probst wrote: > > > > > > + > > > > > > +maintainers: > > > > > > + - Alexandre Belloni <alexandre.belloni@bootlin.com> > > > > > > > > > > This should be someone caring about this hardware. > > > > He does have the majority of commits on this driver (excluding merge > > > > commits and commits not exclusive to this driver), although most of > > > > them are pretty tiny. > > > > > > > > Who would you suggest instead? > > > > > > Someone adding features for this driver, maybe driver maintainers. But > > > if Alexandre is fine, you can leave him. > > > > > > > > > > > > > > + > > > > > > +description: > > > > > > + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the > > > > > > + very low current consumption in the wide range of operation voltage. > > > > > > + > > > > > > +allOf: > > > > > > + - $ref: rtc.yaml# > > > > > > + > > > > > > +properties: > > > > > > + compatible: > > > > > > + const: sii,s35390a > > > > > > + > > > > > > + reg: > > > > > > + maxItems: 1 > > > > > > + > > > > > > + sii,wakealarm-output-pin: > > > > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > > > > > + enum: [1, 2] > > > > > > + description: | > > > > > > + The output pin to wake up the system. > > > > > > + Default will use the output pin for interrupt signal 2. > > > > > > + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 > > > > > > + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 > > > > > > > > > > Does that mean device generates the interrupts? > > > > Yes. > > > > > > > > > > > > > Then I think you miss interrupts property. > > From what I can tell the line is used to generate a system wakeup > > event. > > > > There would be no obvious benefit of connecting it to an interrupt > > controller, so this property would be obsolete? > > > > Then you need proper wakeup-source support Wouldn't that break existing devicetrees? The current driver allows to wake up the system, even without having wakeup-source set. As an example: arch/arm/boot/dts/marvell/kirkwood-ts219.dtsi Thanks - Markus Probst > > [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 870 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-01 17:08 ` Markus Probst @ 2026-07-02 6:09 ` Krzysztof Kozlowski 2026-07-02 8:17 ` Alexandre Belloni 0 siblings, 1 reply; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-07-02 6:09 UTC (permalink / raw) To: Markus Probst, Alexandre Belloni Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel On 01/07/2026 19:08, Markus Probst wrote: > On Wed, 2026-07-01 at 18:48 +0200, Alexandre Belloni wrote: >> On 01/07/2026 16:43:07+0000, Markus Probst wrote: >>> On Wed, 2026-07-01 at 17:14 +0200, Krzysztof Kozlowski wrote: >>>> On 01/07/2026 15:25, Markus Probst wrote: >>>>>>> + >>>>>>> +maintainers: >>>>>>> + - Alexandre Belloni <alexandre.belloni@bootlin.com> >>>>>> >>>>>> This should be someone caring about this hardware. >>>>> He does have the majority of commits on this driver (excluding merge >>>>> commits and commits not exclusive to this driver), although most of >>>>> them are pretty tiny. >>>>> >>>>> Who would you suggest instead? >>>> >>>> Someone adding features for this driver, maybe driver maintainers. But >>>> if Alexandre is fine, you can leave him. >>>> >>>>>> >>>>>>> + >>>>>>> +description: >>>>>>> + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the >>>>>>> + very low current consumption in the wide range of operation voltage. >>>>>>> + >>>>>>> +allOf: >>>>>>> + - $ref: rtc.yaml# >>>>>>> + >>>>>>> +properties: >>>>>>> + compatible: >>>>>>> + const: sii,s35390a >>>>>>> + >>>>>>> + reg: >>>>>>> + maxItems: 1 >>>>>>> + >>>>>>> + sii,wakealarm-output-pin: >>>>>>> + $ref: /schemas/types.yaml#/definitions/uint32 >>>>>>> + enum: [1, 2] >>>>>>> + description: | >>>>>>> + The output pin to wake up the system. >>>>>>> + Default will use the output pin for interrupt signal 2. >>>>>>> + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 >>>>>>> + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 >>>>>> >>>>>> Does that mean device generates the interrupts? >>>>> Yes. >>>>> >>>> >>>> >>>> Then I think you miss interrupts property. >>> From what I can tell the line is used to generate a system wakeup >>> event. >>> >>> There would be no obvious benefit of connecting it to an interrupt >>> controller, so this property would be obsolete? >>> >> >> Then you need proper wakeup-source support > Wouldn't that break existing devicetrees? How? > > The current driver allows to wake up the system, even without > having wakeup-source set. Anyway, wakeup-source is already there in rtc, so this would be done. I don't get though, why there is no benefit of routing it to interrupt controller (interrupt controllers do wake up the system). Additionally, if you do not connect it to any interrupt, then how does it wake up the system? Best regards, Krzysztof ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-02 6:09 ` Krzysztof Kozlowski @ 2026-07-02 8:17 ` Alexandre Belloni 2026-07-02 8:20 ` Krzysztof Kozlowski 0 siblings, 1 reply; 17+ messages in thread From: Alexandre Belloni @ 2026-07-02 8:17 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Markus Probst, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel On 02/07/2026 08:09:55+0200, Krzysztof Kozlowski wrote: > >> Then you need proper wakeup-source support > > Wouldn't that break existing devicetrees? > > How? > > > > > The current driver allows to wake up the system, even without > > having wakeup-source set. > > Anyway, wakeup-source is already there in rtc, so this would be done. I > don't get though, why there is no benefit of routing it to interrupt > controller (interrupt controllers do wake up the system). Additionally, > if you do not connect it to any interrupt, then how does it wake up the > system? > Some systems are routing the interrupt output of the RTC directly to the PMIC and the PMIC is the one responsible for waking the rest of the system, including the SoC. -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-02 8:17 ` Alexandre Belloni @ 2026-07-02 8:20 ` Krzysztof Kozlowski 2026-07-02 8:35 ` Alexandre Belloni 0 siblings, 1 reply; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-07-02 8:20 UTC (permalink / raw) To: Alexandre Belloni Cc: Markus Probst, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel On 02/07/2026 10:17, Alexandre Belloni wrote: > On 02/07/2026 08:09:55+0200, Krzysztof Kozlowski wrote: >>>> Then you need proper wakeup-source support >>> Wouldn't that break existing devicetrees? >> >> How? >> >>> >>> The current driver allows to wake up the system, even without >>> having wakeup-source set. >> >> Anyway, wakeup-source is already there in rtc, so this would be done. I >> don't get though, why there is no benefit of routing it to interrupt >> controller (interrupt controllers do wake up the system). Additionally, >> if you do not connect it to any interrupt, then how does it wake up the >> system? >> > > Some systems are routing the interrupt output of the RTC directly to the > PMIC and the PMIC is the one responsible for waking the rest of the > system, including the SoC. Yeah, then the PMIC has interrupt line to the SoC and the PMIC is the wakeup-source, not RTC. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-02 8:20 ` Krzysztof Kozlowski @ 2026-07-02 8:35 ` Alexandre Belloni 0 siblings, 0 replies; 17+ messages in thread From: Alexandre Belloni @ 2026-07-02 8:35 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Markus Probst, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel On 02/07/2026 10:20:20+0200, Krzysztof Kozlowski wrote: > On 02/07/2026 10:17, Alexandre Belloni wrote: > > On 02/07/2026 08:09:55+0200, Krzysztof Kozlowski wrote: > >>>> Then you need proper wakeup-source support > >>> Wouldn't that break existing devicetrees? > >> > >> How? > >> > >>> > >>> The current driver allows to wake up the system, even without > >>> having wakeup-source set. > >> > >> Anyway, wakeup-source is already there in rtc, so this would be done. I > >> don't get though, why there is no benefit of routing it to interrupt > >> controller (interrupt controllers do wake up the system). Additionally, > >> if you do not connect it to any interrupt, then how does it wake up the > >> system? > >> > > > > Some systems are routing the interrupt output of the RTC directly to the > > PMIC and the PMIC is the one responsible for waking the rest of the > > system, including the SoC. > > Yeah, then the PMIC has interrupt line to the SoC and the PMIC is the > wakeup-source, not RTC. > This would be case 3 of Documentation/devicetree/bindings/power/wakeup-source.txt > Best regards, > Krzysztof -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-06-30 19:22 ` [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A Markus Probst 2026-07-01 7:35 ` Krzysztof Kozlowski @ 2026-07-01 15:06 ` Alexandre Belloni 2026-07-01 17:34 ` Markus Probst 1 sibling, 1 reply; 17+ messages in thread From: Alexandre Belloni @ 2026-07-01 15:06 UTC (permalink / raw) To: Markus Probst Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel On 30/06/2026 19:22:21+0000, Markus Probst wrote: > Synology NAS devices use the output pin for interrupt signal 1 to wake up > the system. > > Move devicetree bindings for sii,s35390a into its own file. > Add sii,wakealarm-output-pin property to enable the use of the output > pin for interrupt signal 1 for the wake alarm, which makes it possible to > set an wake alarm on Synology NAS devices. > > Signed-off-by: Markus Probst <markus.probst@posteo.de> > --- > .../devicetree/bindings/rtc/sii,s35390a.yaml | 54 ++++++++++++++++++++++ > .../devicetree/bindings/rtc/trivial-rtc.yaml | 3 -- > MAINTAINERS | 1 + > include/dt-bindings/rtc/s35390a.h | 9 ++++ > 4 files changed, 64 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > new file mode 100644 > index 000000000000..31a578673870 > --- /dev/null > +++ b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > @@ -0,0 +1,54 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/rtc/sii,s35390a.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: S-35390A 2-WIRE REAL-TIME CLOCK > + > +maintainers: > + - Alexandre Belloni <alexandre.belloni@bootlin.com> > + > +description: > + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the > + very low current consumption in the wide range of operation voltage. > + > +allOf: > + - $ref: rtc.yaml# > + > +properties: > + compatible: > + const: sii,s35390a > + > + reg: > + maxItems: 1 > + > + sii,wakealarm-output-pin: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2] > + description: | > + The output pin to wake up the system. > + Default will use the output pin for interrupt signal 2. > + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 > + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 > + Ideally, we'd get a proper pinctrl driver part for this because what happens if you want interrupts on both pin or clock output on both pins or any combination of interrupts and clocks? -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A 2026-07-01 15:06 ` Alexandre Belloni @ 2026-07-01 17:34 ` Markus Probst 0 siblings, 0 replies; 17+ messages in thread From: Markus Probst @ 2026-07-01 17:34 UTC (permalink / raw) To: Alexandre Belloni Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, linux-arm-kernel, linux-rtc, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 2564 bytes --] On Wed, 2026-07-01 at 17:06 +0200, Alexandre Belloni wrote: > On 30/06/2026 19:22:21+0000, Markus Probst wrote: > > Synology NAS devices use the output pin for interrupt signal 1 to wake up > > the system. > > > > Move devicetree bindings for sii,s35390a into its own file. > > Add sii,wakealarm-output-pin property to enable the use of the output > > pin for interrupt signal 1 for the wake alarm, which makes it possible to > > set an wake alarm on Synology NAS devices. > > > > Signed-off-by: Markus Probst <markus.probst@posteo.de> > > --- > > .../devicetree/bindings/rtc/sii,s35390a.yaml | 54 ++++++++++++++++++++++ > > .../devicetree/bindings/rtc/trivial-rtc.yaml | 3 -- > > MAINTAINERS | 1 + > > include/dt-bindings/rtc/s35390a.h | 9 ++++ > > 4 files changed, 64 insertions(+), 3 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > > new file mode 100644 > > index 000000000000..31a578673870 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/rtc/sii,s35390a.yaml > > @@ -0,0 +1,54 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/rtc/sii,s35390a.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: S-35390A 2-WIRE REAL-TIME CLOCK > > + > > +maintainers: > > + - Alexandre Belloni <alexandre.belloni@bootlin.com> > > + > > +description: > > + The S-35390A is a CMOS 2-wire real-time clock IC which operates with the > > + very low current consumption in the wide range of operation voltage. > > + > > +allOf: > > + - $ref: rtc.yaml# > > + > > +properties: > > + compatible: > > + const: sii,s35390a > > + > > + reg: > > + maxItems: 1 > > + > > + sii,wakealarm-output-pin: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + enum: [1, 2] > > + description: | > > + The output pin to wake up the system. > > + Default will use the output pin for interrupt signal 2. > > + <S35390A_OUTPUT_PIN_INT1> : Output pin for interrupt signal 1 > > + <S35390A_OUTPUT_PIN_INT2> : Output pin for interrupt signal 2 > > + > > Ideally, we'd get a proper pinctrl driver part for this because what > happens if you want interrupts on both pin or clock output on both pins > or any combination of interrupts and clocks? > Yes. Thanks - Markus Probst [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 870 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 2/3] rtc: s35390a: Add missing newline to dev_err 2026-06-30 19:22 [PATCH 0/3] rtc: s35390a: Allow use of output pin for interrupt signal 1 for wakealarm Markus Probst 2026-06-30 19:22 ` [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A Markus Probst @ 2026-06-30 19:22 ` Markus Probst 2026-06-30 19:22 ` [PATCH 3/3] rtc: s35390a: make use of interrupt signal 1 Markus Probst 2 siblings, 0 replies; 17+ messages in thread From: Markus Probst @ 2026-06-30 19:22 UTC (permalink / raw) To: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth Cc: linux-arm-kernel, linux-rtc, devicetree, linux-kernel, Markus Probst Fixes: 3bd32722c827d ("rtc: s35390a: improve irq handling") Signed-off-by: Markus Probst <markus.probst@posteo.de> --- drivers/rtc/rtc-s35390a.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-s35390a.c b/drivers/rtc/rtc-s35390a.c index b72eef4fb099..4cfe7034c516 100644 --- a/drivers/rtc/rtc-s35390a.c +++ b/drivers/rtc/rtc-s35390a.c @@ -494,7 +494,7 @@ static int s35390a_probe(struct i2c_client *client) buf = 0; err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &buf, 1); if (err < 0) { - dev_err(dev, "error disabling alarm"); + dev_err(dev, "error disabling alarm\n"); return err; } } else { -- 2.54.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 3/3] rtc: s35390a: make use of interrupt signal 1 2026-06-30 19:22 [PATCH 0/3] rtc: s35390a: Allow use of output pin for interrupt signal 1 for wakealarm Markus Probst 2026-06-30 19:22 ` [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A Markus Probst 2026-06-30 19:22 ` [PATCH 2/3] rtc: s35390a: Add missing newline to dev_err Markus Probst @ 2026-06-30 19:22 ` Markus Probst 2 siblings, 0 replies; 17+ messages in thread From: Markus Probst @ 2026-06-30 19:22 UTC (permalink / raw) To: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Uwe Kleine-König, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth Cc: linux-arm-kernel, linux-rtc, devicetree, linux-kernel, Markus Probst If configured, use output pin for interrupt signal 1 for the wake alarm. Successfully Tested on a Synology DS923+. Signed-off-by: Markus Probst <markus.probst@posteo.de> --- drivers/rtc/rtc-s35390a.c | 61 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 12 deletions(-) diff --git a/drivers/rtc/rtc-s35390a.c b/drivers/rtc/rtc-s35390a.c index 4cfe7034c516..6875bf039cbf 100644 --- a/drivers/rtc/rtc-s35390a.c +++ b/drivers/rtc/rtc-s35390a.c @@ -12,11 +12,13 @@ #include <linux/bcd.h> #include <linux/slab.h> #include <linux/delay.h> +#include <dt-bindings/rtc/s35390a.h> #define S35390A_CMD_STATUS1 0 #define S35390A_CMD_STATUS2 1 #define S35390A_CMD_TIME1 2 #define S35390A_CMD_TIME2 3 +#define S35390A_CMD_INT1_REG1 4 #define S35390A_CMD_INT2_REG1 5 #define S35390A_CMD_FREE_REG 7 @@ -36,6 +38,7 @@ #define S35390A_FLAG_POC BIT(0) #define S35390A_FLAG_BLD BIT(1) #define S35390A_FLAG_INT2 BIT(2) +#define S35390A_FLAG_INT1 BIT(3) #define S35390A_FLAG_24H BIT(6) #define S35390A_FLAG_RESET BIT(7) @@ -50,6 +53,14 @@ #define S35390A_INT2_MODE_FREQ BIT(3) /* INT2FE */ #define S35390A_INT2_MODE_PMIN (BIT(3) | BIT(2)) /* INT2FE | INT2ME */ +/* INT1 pin output mode */ +#define S35390A_INT1_MODE_MASK 0xE0 +#define S35390A_INT1_MODE_NOINTR 0x00 +#define S35390A_INT1_MODE_ALARM BIT(5) /* INT1AE */ +#define S35390A_INT1_MODE_PMIN_EDG BIT(6) /* INT1ME */ +#define S35390A_INT1_MODE_FREQ BIT(7) /* INT1FE */ +#define S35390A_INT1_MODE_PMIN (BIT(7) | BIT(6)) /* INT1FE | INT1ME */ + static const struct i2c_device_id s35390a_id[] = { { .name = "s35390a" }, { } @@ -65,6 +76,7 @@ MODULE_DEVICE_TABLE(of, s35390a_of_match); struct s35390a { struct i2c_client *client[8]; int twentyfourhour; + bool wakealarm_use_int1; }; static int s35390a_set_reg(struct s35390a *s35390a, int reg, u8 *buf, int len) @@ -275,7 +287,7 @@ static int s35390a_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) struct i2c_client *client = to_i2c_client(dev); struct s35390a *s35390a = i2c_get_clientdata(client); u8 buf[3], sts = 0; - int err, i; + int err, i, reg; dev_dbg(&client->dev, "%s: alm is secs=%d, mins=%d, hours=%d mday=%d, "\ "mon=%d, year=%d, wday=%d\n", __func__, alm->time.tm_sec, @@ -293,9 +305,13 @@ static int s35390a_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) return err; if (alm->enabled) - sts = S35390A_INT2_MODE_ALARM; + sts = s35390a->wakealarm_use_int1 + ? S35390A_INT1_MODE_ALARM + : S35390A_INT2_MODE_ALARM; else - sts = S35390A_INT2_MODE_NOINTR; + sts = s35390a->wakealarm_use_int1 + ? S35390A_INT1_MODE_NOINTR + : S35390A_INT2_MODE_NOINTR; /* set interrupt mode*/ err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts)); @@ -317,8 +333,11 @@ static int s35390a_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) for (i = 0; i < 3; ++i) buf[i] = bitrev8(buf[i]); - err = s35390a_set_reg(s35390a, S35390A_CMD_INT2_REG1, buf, - sizeof(buf)); + reg = s35390a->wakealarm_use_int1 + ? S35390A_CMD_INT1_REG1 + : S35390A_CMD_INT2_REG1; + + err = s35390a_set_reg(s35390a, reg, buf, sizeof(buf)); return err; } @@ -328,13 +347,21 @@ static int s35390a_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm) struct i2c_client *client = to_i2c_client(dev); struct s35390a *s35390a = i2c_get_clientdata(client); u8 buf[3], sts; - int i, err; + int i, err, reg, mask, mode; err = s35390a_get_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts)); if (err < 0) return err; - if ((sts & S35390A_INT2_MODE_MASK) != S35390A_INT2_MODE_ALARM) { + mask = s35390a->wakealarm_use_int1 + ? S35390A_INT1_MODE_MASK + : S35390A_INT2_MODE_MASK; + + mode = s35390a->wakealarm_use_int1 + ? S35390A_INT1_MODE_ALARM + : S35390A_INT2_MODE_ALARM; + + if ((sts & mask) != mode) { /* * When the alarm isn't enabled, the register to configure * the alarm time isn't accessible. @@ -345,7 +372,11 @@ static int s35390a_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm) alm->enabled = 1; } - err = s35390a_get_reg(s35390a, S35390A_CMD_INT2_REG1, buf, sizeof(buf)); + reg = s35390a->wakealarm_use_int1 + ? S35390A_CMD_INT1_REG1 + : S35390A_CMD_INT2_REG1; + + err = s35390a_get_reg(s35390a, reg, buf, sizeof(buf)); if (err < 0) return err; @@ -437,10 +468,10 @@ static int s35390a_nvmem_write(void *priv, unsigned int offset, void *val, static int s35390a_probe(struct i2c_client *client) { int err, err_read; - unsigned int i; + unsigned int i, wakealarm_output_pin = 0; struct s35390a *s35390a; struct rtc_device *rtc; - u8 buf, status1; + u8 buf, status1, flag; struct device *dev = &client->dev; struct nvmem_config nvmem_cfg = { .name = "s35390a_nvram", @@ -452,6 +483,9 @@ static int s35390a_probe(struct i2c_client *client) .reg_write = s35390a_nvmem_write, }; + fwnode_property_read_u32(dev->fwnode, "sii,wakealarm-output-pin", + &wakealarm_output_pin); + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) return -ENODEV; @@ -460,6 +494,7 @@ static int s35390a_probe(struct i2c_client *client) return -ENOMEM; s35390a->client[0] = client; + s35390a->wakealarm_use_int1 = wakealarm_output_pin == S35390A_OUTPUT_PIN_INT1; i2c_set_clientdata(client, s35390a); /* This chip uses multiple addresses, use dummy devices for them */ @@ -489,7 +524,9 @@ static int s35390a_probe(struct i2c_client *client) else s35390a->twentyfourhour = 0; - if (status1 & S35390A_FLAG_INT2) { + flag = s35390a->wakealarm_use_int1 ? S35390A_FLAG_INT1 : S35390A_FLAG_INT2; + + if (status1 & flag) { /* disable alarm (and maybe test mode) */ buf = 0; err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &buf, 1); @@ -514,7 +551,7 @@ static int s35390a_probe(struct i2c_client *client) set_bit(RTC_FEATURE_ALARM_RES_MINUTE, rtc->features); clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->features); - if (status1 & S35390A_FLAG_INT2) + if (status1 & flag) rtc_update_irq(rtc, 1, RTC_AF); nvmem_cfg.priv = s35390a; -- 2.54.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
end of thread, other threads:[~2026-07-02 8:35 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-30 19:22 [PATCH 0/3] rtc: s35390a: Allow use of output pin for interrupt signal 1 for wakealarm Markus Probst 2026-06-30 19:22 ` [PATCH 1/3] dt-bindings: rtc: Add sii,wakealarm-output-pin property for S35390A Markus Probst 2026-07-01 7:35 ` Krzysztof Kozlowski 2026-07-01 13:25 ` Markus Probst 2026-07-01 15:11 ` Alexandre Belloni 2026-07-01 15:14 ` Krzysztof Kozlowski 2026-07-01 16:43 ` Markus Probst 2026-07-01 16:48 ` Alexandre Belloni 2026-07-01 17:08 ` Markus Probst 2026-07-02 6:09 ` Krzysztof Kozlowski 2026-07-02 8:17 ` Alexandre Belloni 2026-07-02 8:20 ` Krzysztof Kozlowski 2026-07-02 8:35 ` Alexandre Belloni 2026-07-01 15:06 ` Alexandre Belloni 2026-07-01 17:34 ` Markus Probst 2026-06-30 19:22 ` [PATCH 2/3] rtc: s35390a: Add missing newline to dev_err Markus Probst 2026-06-30 19:22 ` [PATCH 3/3] rtc: s35390a: make use of interrupt signal 1 Markus Probst
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox