Hi,
On Thu, Jan 12, 2017 at 7:20 AM, Sudeep Holla sudeep.holla@arm.com wrote:
From: Mike Leach mike.leach@linaro.org
The CoreSight support added for Juno is valid for only Juno r0. The Juno r1 and r2 variants have additional components and alternative connection routes between trace source and sinks.
This patch builds on top of the existing r0 support and extends it to Juno r1/r2 variants.
Signed-off-by: Mike Leach mike.leach@linaro.org [sudeep.holla@arm.com: minor changelog update and reorganising the common coresight components back into juno-base.dtsi to avoid duplication] Signed-off-by: Sudeep Holla sudeep.holla@arm.com
arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi | 102 ++++++++++++++++++++++++++++++ arch/arm64/boot/dts/arm/juno-r1.dts | 9 +++ arch/arm64/boot/dts/arm/juno-r2.dts | 9 +++ 3 files changed, 120 insertions(+) create mode 100644 arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi
diff --git a/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi b/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi new file mode 100644 index 000000000000..89fcef366ff9 --- /dev/null +++ b/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi @@ -0,0 +1,102 @@
csys1_funnel@20130000 {
compatible = "arm,coresight-funnel", "arm,primecell";
reg = <0 0x20130000 0 0x1000>;
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
power-domains = <&scpi_devpd 0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
/* input port */
port@0 {
reg = <0>;
csys1_funnel_out_port: endpoint {
remote-endpoint =
<&etf1_in_port>;
};
};
/* output port */
port@1 {
reg = <0>;
csys1_funnel_in_port0: endpoint {
slave-mode;
};
};
};
};
etf1@20140000 {
The concept behind device-tree is that you name the nodes based on the type of device they are. "i2c", "ethernet", etc. Not "eth0", "i2c3", and so on.
So, this should probably be something else than "etf1", and the etf->etf0 rename you did somewhere else shouldn't be made either.
csys1_funnel should probably/maybe be named something more generic as well.
compatible = "arm,coresight-tmc", "arm,primecell";
reg = <0 0x20140000 0 0x1000>;
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
power-domains = <&scpi_devpd 0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
/* input port */
port@0 {
reg = <0>;
etf1_in_port: endpoint {
slave-mode;
remote-endpoint =
<&csys1_funnel_out_port>;
};
};
/* output port */
port@1 {
reg = <0>;
etf1_out_port: endpoint {
remote-endpoint =
<&csys2_funnel_in_port1>;
};
};
};
};
csys2_funnel@20150000 {
compatible = "arm,coresight-funnel", "arm,primecell";
reg = <0 0x20150000 0 0x1000>;
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
power-domains = <&scpi_devpd 0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
/* output port */
port@0 {
reg = <0>;
csys2_funnel_out_port: endpoint {
remote-endpoint =
<&replicator_in_port0>;
};
};
/* input ports */
port@1 {
reg = <0>;
csys2_funnel_in_port0: endpoint {
slave-mode;
remote-endpoint = <&etf0_out_port>;
};
};
port@2 {
reg = <1>;
csys2_funnel_in_port1: endpoint {
slave-mode;
remote-endpoint = <&etf1_out_port>;
};
};
};
};
diff --git a/arch/arm64/boot/dts/arm/juno-r1.dts b/arch/arm64/boot/dts/arm/juno-r1.dts index eec37feee8fc..d4b85d9d343e 100644 --- a/arch/arm64/boot/dts/arm/juno-r1.dts +++ b/arch/arm64/boot/dts/arm/juno-r1.dts @@ -178,6 +178,7 @@ };
#include "juno-base.dtsi"
#include "juno-cs-r1r2.dtsi"
Please don't nest dtsi inside a structure like this. We normally let them stand by themselves at the top of the file instead.
(yes, please fix for juno-base too).
-Olof