From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Add the DT node for the RTC IP available on the Renesas RZ/G3S SoC.
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
Changes in v3:
- added CPG clock, power domain, reset
- and assigned-clocks, assigned-clock-parents to configure the
VBATTCLK
- included dt-bindings/clock/r9a08g045-vbattb.h
Changes in v2:
- updated compatibles
arch/arm64/boot/dts/renesas/r9a08g045.dtsi | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a08g045.dtsi b/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
index 247fa80a4f53..ac9b6733d289 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
@@ -7,6 +7,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/r9a08g045-cpg.h>
+#include <dt-bindings/clock/r9a08g045-vbattb.h>
/ {
compatible = "renesas,r9a08g045";
@@ -160,6 +161,22 @@ i2c3: i2c@10090c00 {
status = "disabled";
};
+ rtc: rtc@1004ec00 {
+ compatible = "renesas,r9a08g045-rtca3", "renesas,rz-rtca3";
+ reg = <0 0x1004ec00 0 0x400>;
+ interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "alarm", "period", "carry";
+ clocks = <&cpg CPG_MOD R9A08G045_VBAT_BCLK>, <&vbattb VBATTB_VBATTCLK>;
+ clock-names = "bus", "counter";
+ assigned-clocks = <&vbattb VBATTB_MUX>;
+ assigned-clock-parents = <&vbattb VBATTB_XC>;
+ power-domains = <&cpg>;
+ resets = <&cpg R9A08G045_VBAT_BRESETN>;
+ status = "disabled";
+ };
+
vbattb: vbattb@1005c000 {
compatible = "renesas,r9a08g045-vbattb";
reg = <0 0x1005c000 0 0x1000>;
--
2.39.2
Hi Claudiu,
On Fri, Aug 30, 2024 at 3:02 PM Claudiu <claudiu.beznea@tuxon.dev> wrote:
> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>
> Add the DT node for the RTC IP available on the Renesas RZ/G3S SoC.
>
> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
> ---
>
> Changes in v3:
> - added CPG clock, power domain, reset
> - and assigned-clocks, assigned-clock-parents to configure the
> VBATTCLK
> - included dt-bindings/clock/r9a08g045-vbattb.h
Thanks for your patch!
> --- a/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
> @@ -160,6 +161,22 @@ i2c3: i2c@10090c00 {
> status = "disabled";
> };
>
> + rtc: rtc@1004ec00 {
Please insert this after serial@1004b800, to preserve sort order.
> + compatible = "renesas,r9a08g045-rtca3", "renesas,rz-rtca3";
> + reg = <0 0x1004ec00 0 0x400>;
> + interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "alarm", "period", "carry";
> + clocks = <&cpg CPG_MOD R9A08G045_VBAT_BCLK>, <&vbattb VBATTB_VBATTCLK>;
> + clock-names = "bus", "counter";
> + assigned-clocks = <&vbattb VBATTB_MUX>;
> + assigned-clock-parents = <&vbattb VBATTB_XC>;
Don't the assigned-clock* properties belong in the board DTS?
In addition, I think they should be documented in the DT bindings,
and be made required, so board developers don't forget about them.
> + power-domains = <&cpg>;
> + resets = <&cpg R9A08G045_VBAT_BRESETN>;
> + status = "disabled";
> + };
> +
> vbattb: vbattb@1005c000 {
> compatible = "renesas,r9a08g045-vbattb";
> reg = <0 0x1005c000 0 0x1000>;
The rest LGTM.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Hi, Geert,
On 10.10.2024 18:22, Geert Uytterhoeven wrote:
> Hi Claudiu,
>
> On Fri, Aug 30, 2024 at 3:02 PM Claudiu <claudiu.beznea@tuxon.dev> wrote:
>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>>
>> Add the DT node for the RTC IP available on the Renesas RZ/G3S SoC.
>>
>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>> ---
>>
>> Changes in v3:
>> - added CPG clock, power domain, reset
>> - and assigned-clocks, assigned-clock-parents to configure the
>> VBATTCLK
>> - included dt-bindings/clock/r9a08g045-vbattb.h
>
> Thanks for your patch!
>
>> --- a/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
>> +++ b/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
>> @@ -160,6 +161,22 @@ i2c3: i2c@10090c00 {
>> status = "disabled";
>> };
>>
>> + rtc: rtc@1004ec00 {
>
> Please insert this after serial@1004b800, to preserve sort order.
You're right. I though I have already checked this.
>
>> + compatible = "renesas,r9a08g045-rtca3", "renesas,rz-rtca3";
>> + reg = <0 0x1004ec00 0 0x400>;
>> + interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
>> + interrupt-names = "alarm", "period", "carry";
>> + clocks = <&cpg CPG_MOD R9A08G045_VBAT_BCLK>, <&vbattb VBATTB_VBATTCLK>;
>> + clock-names = "bus", "counter";
>> + assigned-clocks = <&vbattb VBATTB_MUX>;
>> + assigned-clock-parents = <&vbattb VBATTB_XC>;
>
> Don't the assigned-clock* properties belong in the board DTS?
It makes sense to be in the board DTS, indeed.
> In addition, I think they should be documented in the DT bindings,
> and be made required, so board developers don't forget about them.
It would be better, indeed.
Thank you,
Claudiu Beznea
>
>> + power-domains = <&cpg>;
>> + resets = <&cpg R9A08G045_VBAT_BRESETN>;
>> + status = "disabled";
>> + };
>> +
>> vbattb: vbattb@1005c000 {
>> compatible = "renesas,r9a08g045-vbattb";
>> reg = <0 0x1005c000 0 0x1000>;
>
> The rest LGTM.
>
> Gr{oetje,eeting}s,
>
> Geert
>
On 11/10/2024 13:28:55+0300, claudiu beznea wrote: > >> + compatible = "renesas,r9a08g045-rtca3", "renesas,rz-rtca3"; > >> + reg = <0 0x1004ec00 0 0x400>; > >> + interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>, > >> + <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>, > >> + <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>; > >> + interrupt-names = "alarm", "period", "carry"; > >> + clocks = <&cpg CPG_MOD R9A08G045_VBAT_BCLK>, <&vbattb VBATTB_VBATTCLK>; > >> + clock-names = "bus", "counter"; > >> + assigned-clocks = <&vbattb VBATTB_MUX>; > >> + assigned-clock-parents = <&vbattb VBATTB_XC>; > > > > Don't the assigned-clock* properties belong in the board DTS? > > It makes sense to be in the board DTS, indeed. > > > In addition, I think they should be documented in the DT bindings, > > and be made required, so board developers don't forget about them. > > It would be better, indeed. There were multiple recent emails from Rob saying that assigned-clocks should not be part of the bindings. -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
Hi Alexandre,
On Thu, Oct 17, 2024 at 12:03 AM Alexandre Belloni
<alexandre.belloni@bootlin.com> wrote:
> On 11/10/2024 13:28:55+0300, claudiu beznea wrote:
> > >> + compatible = "renesas,r9a08g045-rtca3", "renesas,rz-rtca3";
> > >> + reg = <0 0x1004ec00 0 0x400>;
> > >> + interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
> > >> + <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
> > >> + <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
> > >> + interrupt-names = "alarm", "period", "carry";
> > >> + clocks = <&cpg CPG_MOD R9A08G045_VBAT_BCLK>, <&vbattb VBATTB_VBATTCLK>;
> > >> + clock-names = "bus", "counter";
> > >> + assigned-clocks = <&vbattb VBATTB_MUX>;
> > >> + assigned-clock-parents = <&vbattb VBATTB_XC>;
> > >
> > > Don't the assigned-clock* properties belong in the board DTS?
> >
> > It makes sense to be in the board DTS, indeed.
> >
> > > In addition, I think they should be documented in the DT bindings,
> > > and be made required, so board developers don't forget about them.
> >
> > It would be better, indeed.
>
> There were multiple recent emails from Rob saying that assigned-clocks
> should not be part of the bindings.
You mean "In general, assigned-clocks* do not need to be documented
and should never be required."[1] and "Whatever clock setup needed is
outside the scope of a binding"[2]?
In this case, it's not generic, and not specific to "renesas,rz-rtca3",
but related to the integration of RTC-A3 on the RZ/G3S SoC.
Which is indeed not relevant for the RTC-A3 bindings, so I agree the
assigned-clock* properties should not be part of this binding.
At least they're present in the example in the bindings ;-)
[1] https://lore.kernel.org/all/20241015211540.GA1968867-robh@kernel.org
[2] https://lore.kernel.org/all/20241015164609.GA1235530-robh@kernel.org
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
© 2016 - 2025 Red Hat, Inc.