Re: [PATCH v2 1/5] dt-bindings: rtc: Add pinctrl for S35390A
Alexandre Belloni <[email protected]> Wed, 5 Aug 2026 00:16:12 +0200
| Newsgroups | gmane.linux.drivers.devicetree,gmane.linux.ports.arm.kernel,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
On 03/08/2026 23:33:05+0000, Markus Probst wrote:
> > Frequency needs -hz, but anyway if this is becoming a clock, then you
> > must have clocks property and this is simply not needed... unless this
> > is some periodical wakeup call, not a clock? Then simply -hz and
> > property must be more descriptive (frequency of what? pulse?).
> Yes, it would become a clock if configured. But in this case, the
> "clocks" property seems to be a clock consumer property. It would be
> providing the clock signal.
>
> Anyway, it was added since it was only ~10 lines of code. Looking
> through documentation, using the clock subsystem might be a bit more
> driver work.
> Since I don't have a specific use for it, I will drop it in the next
> revision.
Usually, the clock is registered in the CCF so it is disabled
automatically when not used.
You can simply add #clock-cells in the bindings and leave out the
implementation in the driver.
>
> Thanks
> - Markus Probst
> >
> >
> > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > + description: Frequency in Hz to be used with mode S35390A_MODE_FREQ.
> > > + minimum: 1
> > > + maximum: 31
> > > +
> > > + required:
> > > + - sii,mode
> > > +
> > > + if:
> > > + properties:
> > > + sii,mode:
> > > + const: 4
> > > + then:
> > > + required:
> > > + - sii,frequency
> > > + else:
> > > + properties:
> > > + sii,frequency: false
> > > +
> > > + additionalProperties: false
> > > +
> > > + additionalProperties: false
> > > +
> > > +unevaluatedProperties: false
> > > +
> > > +examples:
> > > + - |
> > > + #include <dt-bindings/rtc/s35390a.h>
> > > +
> > > + i2c {
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > +
> > > + rtc: rtc@30 {
> >
> > Drop unused label
> >
> > > + compatible = "sii,s35390a";
> > > + reg = <0x30>;
> > > + pinctrl-0 = <&rtc_pins_default>;
> > > + pinctrl-names = "default";
> > > +
> > > + wakeup-parent = <&int>;
> > > +
> > > + rtc_pins_default: pins {
> > > + int1-pins {
> > > + pins = S35390A_PIN_INT1;
> > > + sii,mode = <S35390A_MODE_WAKEUP>;
> > > + };
> > > + int2-pins {
> > > + pins = S35390A_PIN_INT2;
> > > + sii,mode = <S35390A_MODE_DISABLE>;
> > > + };
> > > + };
> > > + };
> > > + };
> > > 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 716acfc3d7c1..c85be1eefdb1 100644
> > > --- a/MAINTAINERS
> > > +++ b/MAINTAINERS
> > > @@ -22696,6 +22696,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..dcd0ca15f9e9
> > > --- /dev/null
> > > +++ b/include/dt-bindings/rtc/s35390a.h
> > > @@ -0,0 +1,23 @@
> > > +/* SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) */
> > > +
> > > +#ifndef __DT_BINDINGS_RTC_S35390A_H
> > > +#define __DT_BINDINGS_RTC_S35390A_H
> > > +
> > > +#define S35390A_MODE_IGNORE 0x0
> > > +#define S35390A_MODE_DISABLE 0x1
> > > +#define S35390A_MODE_WAKEUP 0x2
> > > +#define S35390A_MODE_ALARM 0x3
> > > +#define S35390A_MODE_FREQ 0x4
> > > +#define S35390A_MODE_PMIN1 0x5
> > > +#define S35390A_MODE_PMIN2 0x6
> > > +#define S35390A_MODE_32768KHZ 0x7
> > > +
> > > +#define S35390A_MODE_INT1_MAX 0x7
> > > +#define S35390A_MODE_INT2_MAX 0x5
> > > +
> > > +#define S35390A_FREQ_MASK 0x1F
> >
> > don't get why this grew. None of these look like bindings.
> >
> >
> > > +
> > > +#define S35390A_PIN_INT1 "int1"
> > > +#define S35390A_PIN_INT2 "int2"
> >
> > Drop entire header.
> >
> > > +
> > > +#endif /* __DT_BINDINGS_RTC_S35390A_H */
> > >
> > > --
> > > 2.54.0
> > >
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com