* [PATCH v3] dt-bindings: rtc: epson,rx6110: Convert to DT Schema
@ 2026-05-09 18:18 Udaya Kiran Challa
2026-05-09 18:28 ` sashiko-bot
0 siblings, 1 reply; 3+ messages in thread
From: Udaya Kiran Challa @ 2026-05-09 18:18 UTC (permalink / raw)
To: alexandre.belloni, robh, krzk+dt, conor+dt
Cc: skhan, me, linux-rtc, devicetree, linux-kernel,
Udaya Kiran Challa
Convert the Epson RX6110 Real Time Clock devicetree binding
from the legacy text format to DT schema.
Signed-off-by: Udaya Kiran Challa <challauday369@gmail.com>
---
Changelog:
Changes since v2:
- Reference rtc.yaml for common RTC properties
- Add conditional validation for SPI mode properties
Link to v2:https://lore.kernel.org/all/20260509095713.5818-1-challauday369@gmail.com/
Changes since v1:
- Reuse common SPI peripheral properties
- Drop redundant SPI-specific comment
- Remove unused labels from examples
Link to v1:https://lore.kernel.org/all/20260504183728.27412-1-challauday369@gmail.com/
---
.../devicetree/bindings/rtc/epson,rx6110.txt | 39 ---------
.../devicetree/bindings/rtc/epson,rx6110.yaml | 79 +++++++++++++++++++
2 files changed, 79 insertions(+), 39 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/rtc/epson,rx6110.txt
create mode 100644 Documentation/devicetree/bindings/rtc/epson,rx6110.yaml
diff --git a/Documentation/devicetree/bindings/rtc/epson,rx6110.txt b/Documentation/devicetree/bindings/rtc/epson,rx6110.txt
deleted file mode 100644
index 3dc313e01f77..000000000000
--- a/Documentation/devicetree/bindings/rtc/epson,rx6110.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-Epson RX6110 Real Time Clock
-============================
-
-The Epson RX6110 can be used with SPI or I2C busses. The kind of
-bus depends on the SPISEL pin and can not be configured via software.
-
-I2C mode
---------
-
-Required properties:
- - compatible: should be: "epson,rx6110"
- - reg : the I2C address of the device for I2C
-
-Example:
-
- rtc: rtc@32 {
- compatible = "epson,rx6110"
- reg = <0x32>;
- };
-
-SPI mode
---------
-
-Required properties:
- - compatible: should be: "epson,rx6110"
- - reg: chip select number
- - spi-cs-high: RX6110 needs chipselect high
- - spi-cpha: RX6110 works with SPI shifted clock phase
- - spi-cpol: RX6110 works with SPI inverse clock polarity
-
-Example:
-
- rtc: rtc@3 {
- compatible = "epson,rx6110"
- reg = <3>
- spi-cs-high;
- spi-cpha;
- spi-cpol;
- };
diff --git a/Documentation/devicetree/bindings/rtc/epson,rx6110.yaml b/Documentation/devicetree/bindings/rtc/epson,rx6110.yaml
new file mode 100644
index 000000000000..09578de45d8d
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/epson,rx6110.yaml
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/epson,rx6110.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Epson RX6110 Real Time Clock
+
+description: |
+ The Epson RX6110 can be used with SPI or I2C busses.
+ The kind of bus depends on the SPISEL pin and can not be
+ configured via software.
+
+maintainers:
+ - Alexandre Belloni <alexandre.belloni@bootlin.com>
+
+allOf:
+ - $ref: rtc.yaml#
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+ compatible:
+ const: epson,rx6110
+
+ reg:
+ maxItems: 1
+
+ spi-cs-high: true
+ spi-cpha: true
+ spi-cpol: true
+
+required:
+ - compatible
+ - reg
+
+if:
+ oneOf:
+ - required:
+ - spi-cs-high
+ - required:
+ - spi-cpha
+ - required:
+ - spi-cpol
+
+then:
+ required:
+ - spi-cs-high
+ - spi-cpha
+ - spi-cpol
+
+unevaluatedProperties: false
+
+examples:
+ # I2C mode
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ rtc@32 {
+ compatible = "epson,rx6110";
+ reg = <0x32>;
+ };
+ };
+
+ # SPI mode
+ - |
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ rtc@3 {
+ compatible = "epson,rx6110";
+ reg = <3>;
+ spi-cs-high;
+ spi-cpha;
+ spi-cpol;
+ };
+ };
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v3] dt-bindings: rtc: epson,rx6110: Convert to DT Schema
2026-05-09 18:18 [PATCH v3] dt-bindings: rtc: epson,rx6110: Convert to DT Schema Udaya Kiran Challa
@ 2026-05-09 18:28 ` sashiko-bot
2026-05-09 18:32 ` Conor Dooley
0 siblings, 1 reply; 3+ messages in thread
From: sashiko-bot @ 2026-05-09 18:28 UTC (permalink / raw)
To: Udaya Kiran Challa; +Cc: krzk+dt, conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The use of `oneOf` in the `if` condition allows invalid configurations with exactly two SPI properties to silently bypass validation.
--
commit 61c42b03c451c90501fbc1f5dfb0ec651bc79cc8
Author: Udaya Kiran Challa <challauday369@gmail.com>
dt-bindings: rtc: epson,rx6110: Convert to DT Schema
Convert the Epson RX6110 Real Time Clock devicetree binding
from the legacy text format to DT schema.
> diff --git a/Documentation/devicetree/bindings/rtc/epson,rx6110.yaml b/Documentation/devicetree/bindings/rtc/epson,rx6110.yaml
> new file mode 100644
> index 0000000000000..09578de45d8db
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/rtc/epson,rx6110.yaml
[ ... ]
> +required:
> + - compatible
> + - reg
> +
> +if:
> + oneOf:
> + - required:
> + - spi-cs-high
> + - required:
> + - spi-cpha
> + - required:
> + - spi-cpol
Does this oneOf condition allow invalid configurations with exactly two
SPI properties to silently bypass validation?
In JSON schema, oneOf requires exactly one of the subschemas to evaluate
to true. If a device tree node provides exactly two of the three SPI
properties (e.g., spi-cs-high and spi-cpha, but omitting spi-cpol), the
node satisfies two of the required conditions.
Because it matches two subschemas rather than one, the oneOf condition
evaluates to false. Consequently, the if condition fails, the then block
is skipped, and the schema successfully validates the incomplete node.
Would it be better to use anyOf here instead, to correctly trigger the
requirement that all three properties must be present if at least one is
provided?
> +
> +then:
> + required:
> + - spi-cs-high
> + - spi-cpha
> + - spi-cpol
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260509181909.21871-1-challauday369@gmail.com?part=1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v3] dt-bindings: rtc: epson,rx6110: Convert to DT Schema
2026-05-09 18:28 ` sashiko-bot
@ 2026-05-09 18:32 ` Conor Dooley
0 siblings, 0 replies; 3+ messages in thread
From: Conor Dooley @ 2026-05-09 18:32 UTC (permalink / raw)
To: sashiko; +Cc: Udaya Kiran Challa, krzk+dt, conor+dt, devicetree, robh
[-- Attachment #1: Type: text/plain, Size: 2003 bytes --]
On Sat, May 09, 2026 at 06:28:29PM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] The use of `oneOf` in the `if` condition allows invalid configurations with exactly two SPI properties to silently bypass validation.
> --
>
> commit 61c42b03c451c90501fbc1f5dfb0ec651bc79cc8
> Author: Udaya Kiran Challa <challauday369@gmail.com>
>
> dt-bindings: rtc: epson,rx6110: Convert to DT Schema
>
> Convert the Epson RX6110 Real Time Clock devicetree binding
> from the legacy text format to DT schema.
>
> > diff --git a/Documentation/devicetree/bindings/rtc/epson,rx6110.yaml b/Documentation/devicetree/bindings/rtc/epson,rx6110.yaml
> > new file mode 100644
> > index 0000000000000..09578de45d8db
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/rtc/epson,rx6110.yaml
>
> [ ... ]
>
> > +required:
> > + - compatible
> > + - reg
> > +
> > +if:
> > + oneOf:
> > + - required:
> > + - spi-cs-high
> > + - required:
> > + - spi-cpha
> > + - required:
> > + - spi-cpol
>
> Does this oneOf condition allow invalid configurations with exactly two
> SPI properties to silently bypass validation?
>
> In JSON schema, oneOf requires exactly one of the subschemas to evaluate
> to true. If a device tree node provides exactly two of the three SPI
> properties (e.g., spi-cs-high and spi-cpha, but omitting spi-cpol), the
> node satisfies two of the required conditions.
>
> Because it matches two subschemas rather than one, the oneOf condition
> evaluates to false. Consequently, the if condition fails, the then block
> is skipped, and the schema successfully validates the incomplete node.
>
> Would it be better to use anyOf here instead, to correctly trigger the
> requirement that all three properties must be present if at least one is
> provided?
^^^ This is correct, I should have suggested anyOf not oneOf.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-05-09 18:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-09 18:18 [PATCH v3] dt-bindings: rtc: epson,rx6110: Convert to DT Schema Udaya Kiran Challa
2026-05-09 18:28 ` sashiko-bot
2026-05-09 18:32 ` Conor Dooley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox