diff mbox series

[1/3] ARM: dts: renesas: r8a73a4: Add TMU nodes

Message ID 1a60832f3ba37afb4a5791f4e5db4610ab31beb3.1710864964.git.geert+renesas@glider.be (mailing list archive)
State New, archived
Headers show
Series ARM: dts: renesas: Add more TMU support | expand

Commit Message

Geert Uytterhoeven March 19, 2024, 4:29 p.m. UTC
Add device nodes for the Timer Units (TMU) on the R-Mobile APE6 SoC,
and the clocks serving them.

Note that TMU channels 1 and 2 are not added, as their interrupts are
not wired to the interrupt controller for the AP-System Core (INTC-SYS),
only to the interrupt controller for the AP-Realtime Core (INTC-RT).

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 arch/arm/boot/dts/renesas/r8a73a4.dtsi    | 37 +++++++++++++++++++++++
 include/dt-bindings/clock/r8a73a4-clock.h |  4 +++
 2 files changed, 41 insertions(+)

Comments

Niklas Söderlund March 19, 2024, 10:42 p.m. UTC | #1
Hi Geert,

Thanks for your patch.

On 2024-03-19 17:29:05 +0100, Geert Uytterhoeven wrote:
> Add device nodes for the Timer Units (TMU) on the R-Mobile APE6 SoC,
> and the clocks serving them.
> 
> Note that TMU channels 1 and 2 are not added, as their interrupts are
> not wired to the interrupt controller for the AP-System Core (INTC-SYS),
> only to the interrupt controller for the AP-Realtime Core (INTC-RT).
> 
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>

Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

> ---
>  arch/arm/boot/dts/renesas/r8a73a4.dtsi    | 37 +++++++++++++++++++++++
>  include/dt-bindings/clock/r8a73a4-clock.h |  4 +++
>  2 files changed, 41 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/renesas/r8a73a4.dtsi b/arch/arm/boot/dts/renesas/r8a73a4.dtsi
> index ac654ff45d0e9a9c..9a2ae282a46ba4b1 100644
> --- a/arch/arm/boot/dts/renesas/r8a73a4.dtsi
> +++ b/arch/arm/boot/dts/renesas/r8a73a4.dtsi
> @@ -60,6 +60,32 @@ timer {
>  			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
>  	};
>  
> +	tmu0: timer@e61e0000 {
> +		compatible = "renesas,tmu-r8a73a4", "renesas,tmu";
> +		reg = <0 0xe61e0000 0 0x30>;
> +		interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
> +			     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
> +			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
> +		interrupt-names = "tuni0", "tuni1", "tuni2";
> +		clocks = <&mstp1_clks R8A73A4_CLK_TMU0>;
> +		clock-names = "fck";
> +		power-domains = <&pd_c5>;
> +		status = "disabled";
> +	};
> +
> +	tmu3: timer@fff80000 {
> +		compatible = "renesas,tmu-r8a73a4", "renesas,tmu";
> +		reg = <0 0xfff80000 0 0x30>;
> +		interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
> +			     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
> +			     <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
> +		interrupt-names = "tuni0", "tuni1", "tuni2";
> +		clocks = <&mstp1_clks R8A73A4_CLK_TMU3>;
> +		clock-names = "fck";
> +		power-domains = <&pd_a3r>;
> +		status = "disabled";
> +	};
> +
>  	dbsc1: memory-controller@e6790000 {
>  		compatible = "renesas,dbsc-r8a73a4";
>  		reg = <0 0xe6790000 0 0x10000>;
> @@ -654,6 +680,17 @@ extal1_div2_clk: extal1_div2 {
>  		};
>  
>  		/* Gate clocks */
> +		mstp1_clks: mstp1_clks@e6150134 {
> +			compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
> +			reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
> +			clocks = <&cp_clk>, <&mp_clk>;
> +			#clock-cells = <1>;
> +			clock-indices = <
> +				R8A73A4_CLK_TMU0 R8A73A4_CLK_TMU3
> +			>;
> +			clock-output-names =
> +				"tmu0", "tmu3";
> +		};
>  		mstp2_clks: mstp2_clks@e6150138 {
>  			compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
>  			reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
> diff --git a/include/dt-bindings/clock/r8a73a4-clock.h b/include/dt-bindings/clock/r8a73a4-clock.h
> index 1ec4827b80916054..655440a3e7c6868a 100644
> --- a/include/dt-bindings/clock/r8a73a4-clock.h
> +++ b/include/dt-bindings/clock/r8a73a4-clock.h
> @@ -24,6 +24,10 @@
>  #define R8A73A4_CLK_ZS		14
>  #define R8A73A4_CLK_HP		15
>  
> +/* MSTP1 */
> +#define R8A73A4_CLK_TMU0	25
> +#define R8A73A4_CLK_TMU3	21
> +
>  /* MSTP2 */
>  #define R8A73A4_CLK_DMAC	18
>  #define R8A73A4_CLK_SCIFB3	17
> -- 
> 2.34.1
>
Krzysztof Kozlowski March 20, 2024, 9:33 a.m. UTC | #2
On 19/03/2024 23:42, Niklas Söderlund wrote:
> Hi Geert,
> 
> Thanks for your patch.
> 
> On 2024-03-19 17:29:05 +0100, Geert Uytterhoeven wrote:
>> Add device nodes for the Timer Units (TMU) on the R-Mobile APE6 SoC,
>> and the clocks serving them.
>>
>> Note that TMU channels 1 and 2 are not added, as their interrupts are
>> not wired to the interrupt controller for the AP-System Core (INTC-SYS),
>> only to the interrupt controller for the AP-Realtime Core (INTC-RT).
>>
>> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> 
> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

Please run scripts/checkpatch.pl and fix reported warnings. Some
warnings can be ignored, but the code here looks like it needs a fix.
Feel free to get in touch if the warning is not clear.

DT bindings are separate patches.

Best regards,
Krzysztof
Geert Uytterhoeven March 20, 2024, 10:06 a.m. UTC | #3
Hi Krzysztof,

On Wed, Mar 20, 2024 at 10:33 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
> On 19/03/2024 23:42, Niklas Söderlund wrote:
> > On 2024-03-19 17:29:05 +0100, Geert Uytterhoeven wrote:
> >> Add device nodes for the Timer Units (TMU) on the R-Mobile APE6 SoC,
> >> and the clocks serving them.
> >>
> >> Note that TMU channels 1 and 2 are not added, as their interrupts are
> >> not wired to the interrupt controller for the AP-System Core (INTC-SYS),
> >> only to the interrupt controller for the AP-Realtime Core (INTC-RT).
> >>
> >> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> >
> > Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
>
> Please run scripts/checkpatch.pl and fix reported warnings. Some
> warnings can be ignored, but the code here looks like it needs a fix.
> Feel free to get in touch if the warning is not clear.
>
> DT bindings are separate patches.

Sorry, I don't see a point in making that a separate patch: the
clock-indices in the DT binding header are only used by the DTS.
R-Mobile APE6 still uses the legacy CPG/MSTP DT bindings. The DTS
for newer SoCs just hardcodes the indices (as part of the full module
clock number, straight from the hardware documentation).

Gr{oetje,eeting}s,

                        Geert
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/renesas/r8a73a4.dtsi b/arch/arm/boot/dts/renesas/r8a73a4.dtsi
index ac654ff45d0e9a9c..9a2ae282a46ba4b1 100644
--- a/arch/arm/boot/dts/renesas/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/renesas/r8a73a4.dtsi
@@ -60,6 +60,32 @@  timer {
 			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
 	};
 
+	tmu0: timer@e61e0000 {
+		compatible = "renesas,tmu-r8a73a4", "renesas,tmu";
+		reg = <0 0xe61e0000 0 0x30>;
+		interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "tuni0", "tuni1", "tuni2";
+		clocks = <&mstp1_clks R8A73A4_CLK_TMU0>;
+		clock-names = "fck";
+		power-domains = <&pd_c5>;
+		status = "disabled";
+	};
+
+	tmu3: timer@fff80000 {
+		compatible = "renesas,tmu-r8a73a4", "renesas,tmu";
+		reg = <0 0xfff80000 0 0x30>;
+		interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "tuni0", "tuni1", "tuni2";
+		clocks = <&mstp1_clks R8A73A4_CLK_TMU3>;
+		clock-names = "fck";
+		power-domains = <&pd_a3r>;
+		status = "disabled";
+	};
+
 	dbsc1: memory-controller@e6790000 {
 		compatible = "renesas,dbsc-r8a73a4";
 		reg = <0 0xe6790000 0 0x10000>;
@@ -654,6 +680,17 @@  extal1_div2_clk: extal1_div2 {
 		};
 
 		/* Gate clocks */
+		mstp1_clks: mstp1_clks@e6150134 {
+			compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
+			reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
+			clocks = <&cp_clk>, <&mp_clk>;
+			#clock-cells = <1>;
+			clock-indices = <
+				R8A73A4_CLK_TMU0 R8A73A4_CLK_TMU3
+			>;
+			clock-output-names =
+				"tmu0", "tmu3";
+		};
 		mstp2_clks: mstp2_clks@e6150138 {
 			compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
 			reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
diff --git a/include/dt-bindings/clock/r8a73a4-clock.h b/include/dt-bindings/clock/r8a73a4-clock.h
index 1ec4827b80916054..655440a3e7c6868a 100644
--- a/include/dt-bindings/clock/r8a73a4-clock.h
+++ b/include/dt-bindings/clock/r8a73a4-clock.h
@@ -24,6 +24,10 @@ 
 #define R8A73A4_CLK_ZS		14
 #define R8A73A4_CLK_HP		15
 
+/* MSTP1 */
+#define R8A73A4_CLK_TMU0	25
+#define R8A73A4_CLK_TMU3	21
+
 /* MSTP2 */
 #define R8A73A4_CLK_DMAC	18
 #define R8A73A4_CLK_SCIFB3	17