]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: dts: renesas: r8a7740: Describe coresight
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Wed, 22 Apr 2026 23:36:30 +0000 (01:36 +0200)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 12 May 2026 09:51:48 +0000 (11:51 +0200)
Describe the coresight topology on R-Mobile A1.  Extend the current PTM
node with connection funnel, TPIU, ETB and replicator.  Coresight on
this hardware is clocked from the ZT/ZTR trace clocks.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260422233744.149872-5-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
arch/arm/boot/dts/renesas/r8a7740.dtsi

index f7136db7a2eaec0df1781388038110db3d8ea7f6..c7056b96ec0b7a33fdc295a15e9980e996a6d692 100644 (file)
@@ -18,7 +18,7 @@
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
-               cpu@0 {
+               cpu0: cpu@0 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <0x0>;
                interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
        };
 
-       ptm {
-               compatible = "arm,coresight-etm3x";
+       replicator {
+               compatible = "arm,coresight-static-replicator";
+               clocks = <&cpg_clocks R8A7740_CLK_ZTR>;
+               clock-names = "atclk";
                power-domains = <&pd_d4>;
+
+               out-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* replicator output ports */
+                       port@0 {
+                               reg = <0>;
+
+                               replicator_out_port0: endpoint {
+                                       remote-endpoint = <&tpiu_in_port>;
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+
+                               replicator_out_port1: endpoint {
+                                       remote-endpoint = <&etb_in_port>;
+                               };
+                       };
+               };
+
+               in-ports {
+                       /* replicator input port */
+                       port {
+                               replicator_in_port0: endpoint {
+                                       remote-endpoint = <&funnel_out_port>;
+                               };
+                       };
+               };
+       };
+
+       etb@e6fa1000 {
+               compatible = "arm,coresight-etb10", "arm,primecell";
+               reg = <0xe6fa1000 0x1000>;
+               clocks = <&cpg_clocks R8A7740_CLK_ZT>, <&cpg_clocks R8A7740_CLK_ZTR>;
+               clock-names = "apb_pclk", "atclk";
+               power-domains = <&pd_d4>;
+
+               in-ports {
+                       port {
+                               etb_in_port: endpoint {
+                                       remote-endpoint = <&replicator_out_port1>;
+                               };
+                       };
+               };
+       };
+
+       tpiu@e6fa3000 {
+               compatible = "arm,coresight-tpiu", "arm,primecell";
+               reg = <0xe6fa3000 0x1000>;
+               clocks = <&cpg_clocks R8A7740_CLK_ZT>, <&cpg_clocks R8A7740_CLK_ZTR>;
+               clock-names = "apb_pclk", "atclk";
+               power-domains = <&pd_d4>;
+
+               in-ports {
+                       port {
+                               tpiu_in_port: endpoint {
+                                       remote-endpoint = <&replicator_out_port0>;
+                               };
+                       };
+               };
+       };
+
+       funnel {
+               compatible = "arm,coresight-static-funnel";
+
+               /* funnel output ports */
+               out-ports {
+                       port {
+                               funnel_out_port: endpoint {
+                                       remote-endpoint =
+                                               <&replicator_in_port0>;
+                               };
+                       };
+               };
+
+               in-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* funnel input ports */
+                       port@0 {
+                               reg = <0>;
+                               funnel0_in_port0: endpoint {
+                                       remote-endpoint = <&ptm0_out_port>;
+                               };
+                       };
+               };
+       };
+
+       ptm@e6fbc000 {
+               compatible = "arm,coresight-etm3x", "arm,primecell";
+               reg = <0xe6fbc000 0x1000>;
+               clocks = <&cpg_clocks R8A7740_CLK_ZT>, <&cpg_clocks R8A7740_CLK_ZTR>;
+               clock-names = "apb_pclk", "atclk";
+               cpu = <&cpu0>;
+               power-domains = <&pd_d4>;
+
+               out-ports {
+                       port {
+                               ptm0_out_port: endpoint {
+                                       remote-endpoint = <&funnel0_in_port0>;
+                               };
+                       };
+               };
        };
 
        ceu0: ceu@fe910000 {