mirror_ubuntu-kernels/Documentation/devicetree/bindings/rtc/s3c-rtc.yaml
Krzysztof Kozlowski 1d2c16e1ab dt-bindings: rtc: s3c-rtc: add specific compatibles for existing SoC
Samsung Exynos SoC reuses several devices from older designs, thus
historically we kept the old (block's) compatible only.  This works fine
and there is no bug here, however guidelines expressed in
Documentation/devicetree/bindings/writing-bindings.rst state that:
1. Compatibles should be specific.
2. We should add new compatibles in case of bugs or features.

Add compatibles specific to each SoC in front of all old-SoC-like
compatibles.

Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20231108104343.24192-7-krzysztof.kozlowski@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2023-11-15 12:50:19 +01:00

97 lines
2.3 KiB
YAML

# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/rtc/s3c-rtc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung S3C, S5P and Exynos Real Time Clock controller
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
oneOf:
- enum:
- samsung,s3c2410-rtc
- samsung,s3c2416-rtc
- samsung,s3c2443-rtc
- samsung,s3c6410-rtc
- items:
- enum:
- samsung,exynos7-rtc
- samsung,exynos850-rtc
- const: samsung,s3c6410-rtc
- const: samsung,exynos3250-rtc
deprecated: true
reg:
maxItems: 1
clocks:
description:
Must contain a list of phandle and clock specifier for the rtc
clock and in the case of a s3c6410 compatible controller, also
a source clock.
minItems: 1
maxItems: 2
clock-names:
description:
Must contain "rtc" and for a s3c6410 compatible controller
also "rtc_src".
minItems: 1
maxItems: 2
interrupts:
description:
Two interrupt numbers to the cpu should be specified. First
interrupt number is the rtc alarm interrupt and second interrupt number
is the rtc tick interrupt. The number of cells representing a interrupt
depends on the parent interrupt controller.
minItems: 2
maxItems: 2
allOf:
- $ref: rtc.yaml#
- if:
properties:
compatible:
contains:
enum:
- samsung,s3c6410-rtc
- samsung,exynos3250-rtc
then:
properties:
clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: rtc
- const: rtc_src
else:
properties:
clocks:
minItems: 1
maxItems: 1
clock-names:
items:
- const: rtc
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/exynos5420.h>
#include <dt-bindings/clock/samsung,s2mps11.h>
rtc@10070000 {
compatible = "samsung,s3c6410-rtc";
reg = <0x10070000 0x100>;
interrupts = <0 44 4>, <0 45 4>;
clocks = <&clock CLK_RTC>,
<&s2mps11_osc S2MPS11_CLK_AP>;
clock-names = "rtc", "rtc_src";
};