Merge tag 'juno-update-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/dt

Arm Juno update for v5.18

Just a single update adding long waited support for SCMI firmware variant
as separate devicetrees. I wanted to deal with this differences in the
firmware interface within the bootloader for long time. But with variety
of bootloaders (u-boot, UEFI, ..etc) and need to add SCMI and SCPI
support for sake of discovery with discrepancies in shared memory layout,
it turned out difficult.

So, finally we are adding it as separate files so that we don't break
support for older SCPI firmware interface.

* tag 'juno-update-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  arm64: dts: juno: Add separate SCMI variants
  arm64: dts: juno: Remove GICv2m dma-range

Link: https://lore.kernel.org/r/20220222201812.3338619-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann
2022-02-25 16:09:24 +01:00
6 changed files with 256 additions and 3 deletions

View File

@@ -2,7 +2,7 @@
dtb-$(CONFIG_ARCH_VEXPRESS) += \
foundation-v8.dtb foundation-v8-psci.dtb \
foundation-v8-gicv3.dtb foundation-v8-gicv3-psci.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += juno.dtb juno-r1.dtb juno-r2.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += juno.dtb juno-r1.dtb juno-r2.dtb juno-scmi.dtb juno-r1-scmi.dtb juno-r2-scmi.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2f-1xv7-ca53x2.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += fvp-base-revc.dtb

View File

@@ -543,8 +543,7 @@ pcie_ctlr: pcie@40000000 {
<0x02000000 0x00 0x50000000 0x00 0x50000000 0x0 0x08000000>,
<0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
/* Standard AXI Translation entries as programmed by EDK2 */
dma-ranges = <0x02000000 0x0 0x2c1c0000 0x0 0x2c1c0000 0x0 0x00040000>,
<0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
dma-ranges = <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
<0x43000000 0x8 0x00000000 0x8 0x00000000 0x2 0x00000000>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;

View File

@@ -0,0 +1,23 @@
#include "juno-r1.dts"
#include "juno-scmi.dtsi"
/ {
funnel@20130000 {
power-domains = <&scmi_devpd 8>;
};
etf@20140000 {
power-domains = <&scmi_devpd 0>;
};
funnel@20150000 {
power-domains = <&scmi_devpd 0>;
};
};
&A57_0 {
clocks = <&scmi_dvfs 0>;
};
&A57_1 {
clocks = <&scmi_dvfs 0>;
};

View File

@@ -0,0 +1,23 @@
#include "juno-r2.dts"
#include "juno-scmi.dtsi"
/ {
funnel@20130000 {
power-domains = <&scmi_devpd 8>;
};
etf@20140000 {
power-domains = <&scmi_devpd 0>;
};
funnel@20150000 {
power-domains = <&scmi_devpd 0>;
};
};
&A72_0 {
clocks = <&scmi_dvfs 0>;
};
&A72_1 {
clocks = <&scmi_dvfs 0>;
};

View File

@@ -0,0 +1,9 @@
#include "juno.dts"
#include "juno-scmi.dtsi"
&A57_0 {
clocks = <&scmi_dvfs 0>;
};
&A57_1 {
clocks = <&scmi_dvfs 0>;
};

View File

@@ -0,0 +1,199 @@
/ {
etf@20010000 {
power-domains = <&scmi_devpd 8>;
};
tpiu@20030000 {
power-domains = <&scmi_devpd 8>;
};
funnel@20040000 {
power-domains = <&scmi_devpd 8>;
};
etr@20070000 {
power-domains = <&scmi_devpd 8>;
};
stm@20100000 {
power-domains = <&scmi_devpd 8>;
};
replicator@20120000 {
power-domains = <&scmi_devpd 8>;
};
funnel@220c0000 {
power-domains = <&scmi_devpd 8>;
};
funnel@230c0000 {
power-domains = <&scmi_devpd 8>;
};
hdlcd@7ff50000 {
clocks = <&scmi_clk 3>;
};
hdlcd@7ff60000 {
clocks = <&scmi_clk 3>;
};
/delete-node/ scpi;
firmware {
scmi {
compatible = "arm,scmi";
mbox-names = "tx", "rx";
mboxes = <&mailbox 0 0 &mailbox 0 1>;
shmem = <&cpu_scp_lpri0 &cpu_scp_lpri1>;
#address-cells = <1>;
#size-cells = <0>;
scmi_devpd: protocol@11 {
reg = <0x11>;
#power-domain-cells = <1>;
};
scmi_dvfs: protocol@13 {
reg = <0x13>;
#clock-cells = <1>;
mbox-names = "tx", "rx";
mboxes = <&mailbox 1 0 &mailbox 1 1>;
shmem = <&cpu_scp_hpri0 &cpu_scp_hpri1>;
};
scmi_clk: protocol@14 {
reg = <0x14>;
#clock-cells = <1>;
};
scmi_sensors0: protocol@15 {
reg = <0x15>;
#thermal-sensor-cells = <1>;
};
};
};
thermal-zones {
pmic {
thermal-sensors = <&scmi_sensors0 0>;
};
soc {
thermal-sensors = <&scmi_sensors0 3>;
};
big-cluster {
thermal-sensors = <&scmi_sensors0 21>;
};
little-cluster {
thermal-sensors = <&scmi_sensors0 22>;
};
gpu0 {
thermal-sensors = <&scmi_sensors0 23>;
};
gpu1 {
thermal-sensors = <&scmi_sensors0 24>;
};
};
};
&A53_0 {
clocks = <&scmi_dvfs 1>;
};
&A53_1 {
clocks = <&scmi_dvfs 1>;
};
&A53_2 {
clocks = <&scmi_dvfs 1>;
};
&A53_3 {
clocks = <&scmi_dvfs 1>;
};
&cpu_debug0 {
power-domains = <&scmi_devpd 8>;
};
&cpu_debug1 {
power-domains = <&scmi_devpd 8>;
};
&cpu_debug2 {
power-domains = <&scmi_devpd 8>;
};
&cpu_debug3 {
power-domains = <&scmi_devpd 8>;
};
&cpu_debug4 {
power-domains = <&scmi_devpd 8>;
};
&cpu_debug5 {
power-domains = <&scmi_devpd 8>;
};
&etm0 {
power-domains = <&scmi_devpd 8>;
};
&etm1 {
power-domains = <&scmi_devpd 8>;
};
&etm2 {
power-domains = <&scmi_devpd 8>;
};
&etm3 {
power-domains = <&scmi_devpd 8>;
};
&etm4 {
power-domains = <&scmi_devpd 8>;
};
&etm5 {
power-domains = <&scmi_devpd 8>;
};
&gpu {
clocks = <&scmi_dvfs 2>;
power-domains = <&scmi_devpd 9>;
};
&mailbox {
compatible = "arm,mhu-doorbell", "arm,primecell";
#mbox-cells = <2>;
mbox-name = "ARM-MHU";
};
&smmu_etr {
power-domains = <&scmi_devpd 8>;
};
&smmu_gpu {
power-domains = <&scmi_devpd 9>;
};
&sram {
/delete-node/ scp-sram@0;
/delete-node/ scp-sram@200;
cpu_scp_lpri0: scp-sram@0 {
compatible = "arm,scmi-shmem";
reg = <0x0 0x80>;
};
cpu_scp_lpri1: scp-sram@80 {
compatible = "arm,scmi-shmem";
reg = <0x80 0x80>;
};
cpu_scp_hpri0: scp-sram@100 {
compatible = "arm,scmi-shmem";
reg = <0x100 0x80>;
};
cpu_scp_hpri1: scp-sram@180 {
compatible = "arm,scmi-shmem";
reg = <0x180 0x80>;
};
};