2023-04-18 09:55:54

by Cristian Ciocaltea

[permalink] [raw]
Subject: [PATCH 0/3] Enable rk3588 timer support

This patchset enables Rockchip RK3588/RK3588S SoC timer support.
While here, it also handles a minor DT binding issue related to RK3288.

Cristian Ciocaltea (3):
dt-bindings: timer: rockchip: Drop superfluous rk3288 compatible
dt-bindings: timer: rockchip: Add rk3588 compatible
arm64: dts: rockchip: Add rk3588 timer

.../devicetree/bindings/timer/rockchip,rk-timer.yaml | 2 +-
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)

--
2.40.0


2023-04-18 09:55:56

by Cristian Ciocaltea

[permalink] [raw]
Subject: [PATCH 2/3] dt-bindings: timer: rockchip: Add rk3588 compatible

Add compatible string for Rockchip RK3588 timer.

Signed-off-by: Cristian Ciocaltea <[email protected]>
---
Documentation/devicetree/bindings/timer/rockchip,rk-timer.yaml | 1 +
1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/timer/rockchip,rk-timer.yaml b/Documentation/devicetree/bindings/timer/rockchip,rk-timer.yaml
index 2bdb6e6bdb21..19e56b7577a0 100644
--- a/Documentation/devicetree/bindings/timer/rockchip,rk-timer.yaml
+++ b/Documentation/devicetree/bindings/timer/rockchip,rk-timer.yaml
@@ -24,6 +24,7 @@ properties:
- rockchip,rk3228-timer
- rockchip,rk3229-timer
- rockchip,rk3368-timer
+ - rockchip,rk3588-timer
- rockchip,px30-timer
- const: rockchip,rk3288-timer
reg:
--
2.40.0

2023-04-18 09:55:59

by Cristian Ciocaltea

[permalink] [raw]
Subject: [PATCH 3/3] arm64: dts: rockchip: Add rk3588 timer

Add DT node for Rockchip RK3588/RK3588S SoC timer.

Signed-off-by: Cristian Ciocaltea <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
index 657c019d27fa..acd89a55374a 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
@@ -1400,6 +1400,14 @@ i2c5: i2c@fead0000 {
status = "disabled";
};

+ rktimer: timer@feae0000 {
+ compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer";
+ reg = <0x0 0xfeae0000 0x0 0x20>;
+ clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>;
+ clock-names = "pclk", "timer";
+ interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH 0>;
+ };
+
wdt: watchdog@feaf0000 {
compatible = "rockchip,rk3588-wdt", "snps,dw-wdt";
reg = <0x0 0xfeaf0000 0x0 0x100>;
--
2.40.0

2023-04-18 10:28:16

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH 2/3] dt-bindings: timer: rockchip: Add rk3588 compatible

Am Dienstag, 18. April 2023, 11:53:43 CEST schrieb Cristian Ciocaltea:
> Add compatible string for Rockchip RK3588 timer.
>
> Signed-off-by: Cristian Ciocaltea <[email protected]>

Reviewed-by: Heiko Stuebner <[email protected]>


2023-04-18 11:36:35

by Johan Jonker

[permalink] [raw]
Subject: Re: [PATCH 3/3] arm64: dts: rockchip: Add rk3588 timer



On 4/18/23 11:53, Cristian Ciocaltea wrote:
> Add DT node for Rockchip RK3588/RK3588S SoC timer.
>
> Signed-off-by: Cristian Ciocaltea <[email protected]>
> ---
> arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
> index 657c019d27fa..acd89a55374a 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
> @@ -1400,6 +1400,14 @@ i2c5: i2c@fead0000 {
> status = "disabled";
> };
>

> + rktimer: timer@feae0000 {

There are multiple timers.
Use a label in line with the TRM.
Maybe change your label to "timer0" in that trend?

> + compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer";
> + reg = <0x0 0xfeae0000 0x0 0x20>;

> + clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>;
> + clock-names = "pclk", "timer";
> + interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH 0>;

Heiko's sort rules:

compatible
reg
interrupts
[alphabetical]
status [if needed]

> + };
> +
> wdt: watchdog@feaf0000 {
> compatible = "rockchip,rk3588-wdt", "snps,dw-wdt";
> reg = <0x0 0xfeaf0000 0x0 0x100>;

2023-04-18 11:58:57

by Cristian Ciocaltea

[permalink] [raw]
Subject: Re: [PATCH 3/3] arm64: dts: rockchip: Add rk3588 timer


On 4/18/23 14:29, Johan Jonker wrote:
>
>
> On 4/18/23 11:53, Cristian Ciocaltea wrote:
>> Add DT node for Rockchip RK3588/RK3588S SoC timer.
>>
>> Signed-off-by: Cristian Ciocaltea <[email protected]>
>> ---
>> arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
>> index 657c019d27fa..acd89a55374a 100644
>> --- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
>> +++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
>> @@ -1400,6 +1400,14 @@ i2c5: i2c@fead0000 {
>> status = "disabled";
>> };
>>
>
>> + rktimer: timer@feae0000 {
>
> There are multiple timers.
> Use a label in line with the TRM.
> Maybe change your label to "timer0" in that trend?

Sure, will use "timer0".

>> + compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer";
>> + reg = <0x0 0xfeae0000 0x0 0x20>;
>
>> + clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>;
>> + clock-names = "pclk", "timer";
>> + interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH 0>;
>
> Heiko's sort rules:
>
> compatible
> reg
> interrupts
> [alphabetical]
> status [if needed]

Thanks for pointing this out! The sort rule was not obvious as there are
many other nodes that don't conform.

2023-04-18 14:14:36

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH 3/3] arm64: dts: rockchip: Add rk3588 timer

Am Dienstag, 18. April 2023, 13:53:23 CEST schrieb Cristian Ciocaltea:
>
> On 4/18/23 14:29, Johan Jonker wrote:
> >
> >
> > On 4/18/23 11:53, Cristian Ciocaltea wrote:
> >> Add DT node for Rockchip RK3588/RK3588S SoC timer.
> >>
> >> Signed-off-by: Cristian Ciocaltea <[email protected]>
> >> ---
> >> arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 8 ++++++++
> >> 1 file changed, 8 insertions(+)
> >>
> >> diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
> >> index 657c019d27fa..acd89a55374a 100644
> >> --- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
> >> +++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
> >> @@ -1400,6 +1400,14 @@ i2c5: i2c@fead0000 {
> >> status = "disabled";
> >> };
> >>
> >
> >> + rktimer: timer@feae0000 {
> >
> > There are multiple timers.
> > Use a label in line with the TRM.
> > Maybe change your label to "timer0" in that trend?
>
> Sure, will use "timer0".
>
> >> + compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer";
> >> + reg = <0x0 0xfeae0000 0x0 0x20>;
> >
> >> + clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>;
> >> + clock-names = "pclk", "timer";
> >> + interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH 0>;
> >
> > Heiko's sort rules:
> >
> > compatible
> > reg
> > interrupts
> > [alphabetical]
> > status [if needed]
>
> Thanks for pointing this out! The sort rule was not obvious as there are
> many other nodes that don't conform.

hmm, that is probably an oversight then :-) . Though looking through
rk3588s.dtsi and rk3588.dtsi, it looks like most peripherals follow that
sorting quite nicely.

But there is also a bit of leeway ... aka there can be an argument made
that assigned-clocks might want to live near clocks or regulator-properties
could be sorted somewhat differently.

So general ideal is alphabetically for the random properties to give some
guidance on sorting.

And compatible, regs, interrupts at the top + status at the bottom makes
it way easier to establish a reading pattern, when looking for something
in the file :-) .


Heiko