mbox series

[0/3] Enable rk3588 timer support

Message ID 20230418095344.274025-1-cristian.ciocaltea@collabora.com
Headers show
Series Enable rk3588 timer support | expand

Message

Cristian Ciocaltea April 18, 2023, 9:53 a.m. UTC
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(-)

Comments

Heiko Stübner April 18, 2023, 10:26 a.m. UTC | #1
Am Dienstag, 18. April 2023, 11:53:42 CEST schrieb Cristian Ciocaltea:
> The compatible string for Rockchip RK3288 is provided in both the 'enum'
> and the subsequent 'const' item. Drop the unnecessary entry from the
> enum.

And the actual rk3288-timer case is handled in the separate
	- const: rockchip,rk3288-timer
at the top of the list too.

> 
> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>

Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Johan Jonker April 18, 2023, 11:29 a.m. UTC | #2
On 4/18/23 11:53, Cristian Ciocaltea wrote:
> Add DT node for Rockchip RK3588/RK3588S SoC timer.
> 
> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
> ---
>  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>;
Cristian Ciocaltea April 18, 2023, 11:53 a.m. UTC | #3
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 <cristian.ciocaltea@collabora.com>
>> ---
>>  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.
Heiko Stübner April 18, 2023, 2:12 p.m. UTC | #4
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 <cristian.ciocaltea@collabora.com>
> >> ---
> >>  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