Re: [PATCH v2 1/5] dt-bindings: rtc: Add pinctrl for S35390A
Krzysztof Kozlowski <[email protected]> Mon, 3 Aug 2026 11:56:07 +0200
| Newsgroups | org.kernel.vger.linux-rtc,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260803-mottled-pretty-sloth-bf7dbd@quoll> |
On Sat, Aug 01, 2026 at 06:43:00PM +0000, Markus Probst wrote:
> + wakeup-parent: true
> +
> + wakeup-source: true
> +
> +required:
> + - compatible
> + - reg
> +
> +patternProperties:
This goes after "properties:" block.
> + "^pins":
> + type: object
> + patternProperties:
> + "-pins$":
> + type: object
> + properties:
> + pins:
> + $ref: /schemas/pinctrl/pinmux-node.yaml#/properties/pins
> +
> + sii,mode:
> + $ref: /schemas/types.yaml#/definitions/uint32
Use simple string. See pinmux bindings.
> + description: |
> + Modes for the specific pin:
> + - S35390A_MODE_IGNORE: Preserve the previous state.
> + - S35390A_MODE_DISABLE: Disable all interrupts.
> + - S35390A_MODE_WAKEUP: Used for waking up the system.
> + - S35390A_MODE_ALARM: Userspace defined alarm.
> + - S35390A_MODE_FREQ: Periodical at configurable frequency.
> + - S35390A_MODE_PMIN1: Minute periodical output with 50% duty.
> + - S35390A_MODE_PMIN2: Minute periodical output L for 7.81 ms.
> + Can only be used with pin INT1.
> + - S35390A_MODE_32768KHZ: Raw 32.768 kHz output.
> + Can only be used with pin INT1.
> + minimum: 0
> + maximum: 7
> +
> + sii,frequency:
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?).
> + $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
>