Browse Source

Merge tag 'juno-updates-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into next/dt

ARMv8 Juno/Vexpress updates for v4.20

1. Enablement of scatter gather mode for CoreSight TMC-ETR routing

2. Usage of updated coresight graph bindings that eliminates loads of
   dtc warnings

* tag 'juno-updates-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  arm64: dts: juno: Enable coresight tmc scatter gather in ETR
  arm64: dts: juno: Update entries to match latest coresight bindings

Signed-off-by: Olof Johansson <olof@lixom.net>
Olof Johansson 7 năm trước cách đây
mục cha
commit
6302cbe759

+ 83 - 79
arch/arm64/boot/dts/arm/juno-base.dtsi

@@ -115,22 +115,17 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
 
 
-			/* input port */
-			port@0 {
-				reg = <0>;
+		in-ports {
+			port {
 				etf0_in_port: endpoint {
 				etf0_in_port: endpoint {
-					slave-mode;
 					remote-endpoint = <&main_funnel_out_port>;
 					remote-endpoint = <&main_funnel_out_port>;
 				};
 				};
 			};
 			};
+		};
 
 
-			/* output port */
-			port@1 {
-				reg = <0>;
+		out-ports {
+			port {
 				etf0_out_port: endpoint {
 				etf0_out_port: endpoint {
 				};
 				};
 			};
 			};
@@ -144,10 +139,11 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		port {
-			tpiu_in_port: endpoint {
-				slave-mode;
-				remote-endpoint = <&replicator_out_port0>;
+		in-ports {
+			port {
+				tpiu_in_port: endpoint {
+					remote-endpoint = <&replicator_out_port0>;
+				};
 			};
 			};
 		};
 		};
 	};
 	};
@@ -160,31 +156,29 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
 
 
-			/* output port */
-			port@0 {
-				reg = <0>;
+		out-ports {
+			port {
 				main_funnel_out_port: endpoint {
 				main_funnel_out_port: endpoint {
 					remote-endpoint = <&etf0_in_port>;
 					remote-endpoint = <&etf0_in_port>;
 				};
 				};
 			};
 			};
+		};
 
 
-			/* input ports */
-			port@1 {
+		main_funnel_in_ports: in-ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
 				reg = <0>;
 				reg = <0>;
 				main_funnel_in_port0: endpoint {
 				main_funnel_in_port0: endpoint {
-					slave-mode;
 					remote-endpoint = <&cluster0_funnel_out_port>;
 					remote-endpoint = <&cluster0_funnel_out_port>;
 				};
 				};
 			};
 			};
 
 
-			port@2 {
+			port@1 {
 				reg = <1>;
 				reg = <1>;
 				main_funnel_in_port1: endpoint {
 				main_funnel_in_port1: endpoint {
-					slave-mode;
 					remote-endpoint = <&cluster1_funnel_out_port>;
 					remote-endpoint = <&cluster1_funnel_out_port>;
 				};
 				};
 			};
 			};
@@ -199,10 +193,12 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		port {
-			etr_in_port: endpoint {
-				slave-mode;
-				remote-endpoint = <&replicator_out_port1>;
+		arm,scatter-gather;
+		in-ports {
+			port {
+				etr_in_port: endpoint {
+					remote-endpoint = <&replicator_out_port1>;
+				};
 			};
 			};
 		};
 		};
 	};
 	};
@@ -216,8 +212,10 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		port {
-			stm_out_port: endpoint {
+		out-ports {
+			port {
+				stm_out_port: endpoint {
+				};
 			};
 			};
 		};
 		};
 	};
 	};
@@ -238,9 +236,11 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		port {
-			cluster0_etm0_out_port: endpoint {
-				remote-endpoint = <&cluster0_funnel_in_port0>;
+		out-ports {
+			port {
+				cluster0_etm0_out_port: endpoint {
+					remote-endpoint = <&cluster0_funnel_in_port0>;
+				};
 			};
 			};
 		};
 		};
 	};
 	};
@@ -252,29 +252,28 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			port@0 {
-				reg = <0>;
+		out-ports {
+			port {
 				cluster0_funnel_out_port: endpoint {
 				cluster0_funnel_out_port: endpoint {
 					remote-endpoint = <&main_funnel_in_port0>;
 					remote-endpoint = <&main_funnel_in_port0>;
 				};
 				};
 			};
 			};
+		};
 
 
-			port@1 {
+		in-ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
 				reg = <0>;
 				reg = <0>;
 				cluster0_funnel_in_port0: endpoint {
 				cluster0_funnel_in_port0: endpoint {
-					slave-mode;
 					remote-endpoint = <&cluster0_etm0_out_port>;
 					remote-endpoint = <&cluster0_etm0_out_port>;
 				};
 				};
 			};
 			};
 
 
-			port@2 {
+			port@1 {
 				reg = <1>;
 				reg = <1>;
 				cluster0_funnel_in_port1: endpoint {
 				cluster0_funnel_in_port1: endpoint {
-					slave-mode;
 					remote-endpoint = <&cluster0_etm1_out_port>;
 					remote-endpoint = <&cluster0_etm1_out_port>;
 				};
 				};
 			};
 			};
@@ -297,9 +296,11 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		port {
-			cluster0_etm1_out_port: endpoint {
-				remote-endpoint = <&cluster0_funnel_in_port1>;
+		out-ports {
+			port {
+				cluster0_etm1_out_port: endpoint {
+					remote-endpoint = <&cluster0_funnel_in_port1>;
+				};
 			};
 			};
 		};
 		};
 	};
 	};
@@ -320,9 +321,11 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		port {
-			cluster1_etm0_out_port: endpoint {
-				remote-endpoint = <&cluster1_funnel_in_port0>;
+		out-ports {
+			port {
+				cluster1_etm0_out_port: endpoint {
+					remote-endpoint = <&cluster1_funnel_in_port0>;
+				};
 			};
 			};
 		};
 		};
 	};
 	};
@@ -334,43 +337,40 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			port@0 {
-				reg = <0>;
+		out-ports {
+			port {
 				cluster1_funnel_out_port: endpoint {
 				cluster1_funnel_out_port: endpoint {
 					remote-endpoint = <&main_funnel_in_port1>;
 					remote-endpoint = <&main_funnel_in_port1>;
 				};
 				};
 			};
 			};
+		};
 
 
-			port@1 {
+		in-ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
 				reg = <0>;
 				reg = <0>;
 				cluster1_funnel_in_port0: endpoint {
 				cluster1_funnel_in_port0: endpoint {
-					slave-mode;
 					remote-endpoint = <&cluster1_etm0_out_port>;
 					remote-endpoint = <&cluster1_etm0_out_port>;
 				};
 				};
 			};
 			};
 
 
-			port@2 {
+			port@1 {
 				reg = <1>;
 				reg = <1>;
 				cluster1_funnel_in_port1: endpoint {
 				cluster1_funnel_in_port1: endpoint {
-					slave-mode;
 					remote-endpoint = <&cluster1_etm1_out_port>;
 					remote-endpoint = <&cluster1_etm1_out_port>;
 				};
 				};
 			};
 			};
-			port@3 {
+			port@2 {
 				reg = <2>;
 				reg = <2>;
 				cluster1_funnel_in_port2: endpoint {
 				cluster1_funnel_in_port2: endpoint {
-					slave-mode;
 					remote-endpoint = <&cluster1_etm2_out_port>;
 					remote-endpoint = <&cluster1_etm2_out_port>;
 				};
 				};
 			};
 			};
-			port@4 {
+			port@3 {
 				reg = <3>;
 				reg = <3>;
 				cluster1_funnel_in_port3: endpoint {
 				cluster1_funnel_in_port3: endpoint {
-					slave-mode;
 					remote-endpoint = <&cluster1_etm3_out_port>;
 					remote-endpoint = <&cluster1_etm3_out_port>;
 				};
 				};
 			};
 			};
@@ -393,9 +393,11 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		port {
-			cluster1_etm1_out_port: endpoint {
-				remote-endpoint = <&cluster1_funnel_in_port1>;
+		out-ports {
+			port {
+				cluster1_etm1_out_port: endpoint {
+					remote-endpoint = <&cluster1_funnel_in_port1>;
+				};
 			};
 			};
 		};
 		};
 	};
 	};
@@ -416,9 +418,11 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		port {
-			cluster1_etm2_out_port: endpoint {
-				remote-endpoint = <&cluster1_funnel_in_port2>;
+		out-ports {
+			port {
+				cluster1_etm2_out_port: endpoint {
+					remote-endpoint = <&cluster1_funnel_in_port2>;
+				};
 			};
 			};
 		};
 		};
 	};
 	};
@@ -439,9 +443,11 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		port {
-			cluster1_etm3_out_port: endpoint {
-				remote-endpoint = <&cluster1_funnel_in_port3>;
+		out-ports {
+			port {
+				cluster1_etm3_out_port: endpoint {
+					remote-endpoint = <&cluster1_funnel_in_port3>;
+				};
 			};
 			};
 		};
 		};
 	};
 	};
@@ -454,7 +460,7 @@
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
 
 
-		ports {
+		out-ports {
 			#address-cells = <1>;
 			#address-cells = <1>;
 			#size-cells = <0>;
 			#size-cells = <0>;
 
 
@@ -472,12 +478,10 @@
 					remote-endpoint = <&etr_in_port>;
 					remote-endpoint = <&etr_in_port>;
 				};
 				};
 			};
 			};
-
-			/* replicator input port */
-			port@2 {
-				reg = <0>;
+		};
+		in-ports {
+			port {
 				replicator_in_port0: endpoint {
 				replicator_in_port0: endpoint {
-					slave-mode;
 				};
 				};
 			};
 			};
 		};
 		};

+ 18 - 34
arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi

@@ -7,23 +7,16 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			/* output port */
-			port@0 {
-				reg = <0>;
+		out-ports {
+			port {
 				csys1_funnel_out_port: endpoint {
 				csys1_funnel_out_port: endpoint {
 					remote-endpoint = <&etf1_in_port>;
 					remote-endpoint = <&etf1_in_port>;
 				};
 				};
 			};
 			};
-
-			/* input port */
-			port@1 {
-				reg = <0>;
+		};
+		in-ports {
+			port {
 				csys1_funnel_in_port0: endpoint {
 				csys1_funnel_in_port0: endpoint {
-					slave-mode;
 				};
 				};
 			};
 			};
 
 
@@ -37,22 +30,15 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			/* input port */
-			port@0 {
-				reg = <0>;
+		in-ports {
+			port {
 				etf1_in_port: endpoint {
 				etf1_in_port: endpoint {
-					slave-mode;
 					remote-endpoint = <&csys1_funnel_out_port>;
 					remote-endpoint = <&csys1_funnel_out_port>;
 				};
 				};
 			};
 			};
-
-			/* output port */
-			port@1 {
-				reg = <0>;
+		};
+		out-ports {
+			port {
 				etf1_out_port: endpoint {
 				etf1_out_port: endpoint {
 					remote-endpoint = <&csys2_funnel_in_port1>;
 					remote-endpoint = <&csys2_funnel_in_port1>;
 				};
 				};
@@ -67,20 +53,18 @@
 		clocks = <&soc_smc50mhz>;
 		clocks = <&soc_smc50mhz>;
 		clock-names = "apb_pclk";
 		clock-names = "apb_pclk";
 		power-domains = <&scpi_devpd 0>;
 		power-domains = <&scpi_devpd 0>;
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			/* output port */
-			port@0 {
-				reg = <0>;
+		out-ports {
+			port {
 				csys2_funnel_out_port: endpoint {
 				csys2_funnel_out_port: endpoint {
 					remote-endpoint = <&replicator_in_port0>;
 					remote-endpoint = <&replicator_in_port0>;
 				};
 				};
 			};
 			};
+		};
 
 
-			/* input ports */
-			port@1 {
+		in-ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			port@0 {
 				reg = <0>;
 				reg = <0>;
 				csys2_funnel_in_port0: endpoint {
 				csys2_funnel_in_port0: endpoint {
 					slave-mode;
 					slave-mode;
@@ -88,7 +72,7 @@
 				};
 				};
 			};
 			};
 
 
-			port@2 {
+			port@1 {
 				reg = <1>;
 				reg = <1>;
 				csys2_funnel_in_port1: endpoint {
 				csys2_funnel_in_port1: endpoint {
 					slave-mode;
 					slave-mode;

+ 5 - 8
arch/arm64/boot/dts/arm/juno.dts

@@ -257,14 +257,11 @@
 	remote-endpoint = <&main_funnel_in_port2>;
 	remote-endpoint = <&main_funnel_in_port2>;
 };
 };
 
 
-&main_funnel {
-	ports {
-		port@3 {
-			reg = <2>;
-			main_funnel_in_port2: endpoint {
-				slave-mode;
-				remote-endpoint = <&stm_out_port>;
-			};
+&main_funnel_in_ports {
+	port@2 {
+		reg = <2>;
+		main_funnel_in_port2: endpoint {
+			remote-endpoint = <&stm_out_port>;
 		};
 		};
 	};
 	};
 };
 };