Skip to content

Commit 33c56ed

Browse files
committed
Merge tag 'mvebu-dt64-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/dt
mvebu dt64 for 5.9 (part 1) Add SMMU support for the Marvell AP806 based SoCs (Armada 70xx and Armada 80xx) * tag 'mvebu-dt64-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu: arm64: dts: marvell: add SMMU support
2 parents a127fda + 83a3545 commit 33c56ed

File tree

3 files changed

+86
-0
lines changed

3 files changed

+86
-0
lines changed

arch/arm64/boot/dts/marvell/armada-7040.dtsi

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,31 @@
1414
compatible = "marvell,armada7040", "marvell,armada-ap806-quad",
1515
"marvell,armada-ap806";
1616
};
17+
18+
&smmu {
19+
status = "okay";
20+
};
21+
22+
&cp0_pcie0 {
23+
iommu-map =
24+
<0x0 &smmu 0x480 0x20>,
25+
<0x100 &smmu 0x4a0 0x20>,
26+
<0x200 &smmu 0x4c0 0x20>;
27+
iommu-map-mask = <0x031f>;
28+
};
29+
30+
&cp0_sata0 {
31+
iommus = <&smmu 0x444>;
32+
};
33+
34+
&cp0_sdhci0 {
35+
iommus = <&smmu 0x445>;
36+
};
37+
38+
&cp0_usb3_0 {
39+
iommus = <&smmu 0x440>;
40+
};
41+
42+
&cp0_usb3_1 {
43+
iommus = <&smmu 0x441>;
44+
};

arch/arm64/boot/dts/marvell/armada-8040.dtsi

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,18 @@
1515
"marvell,armada-ap806";
1616
};
1717

18+
&smmu {
19+
status = "okay";
20+
};
21+
22+
&cp0_pcie0 {
23+
iommu-map =
24+
<0x0 &smmu 0x480 0x20>,
25+
<0x100 &smmu 0x4a0 0x20>,
26+
<0x200 &smmu 0x4c0 0x20>;
27+
iommu-map-mask = <0x031f>;
28+
};
29+
1830
/* The RTC requires external oscillator. But on Aramda 80x0, the RTC clock
1931
* in CP master is not connected (by package) to the oscillator. So
2032
* disable it. However, the RTC clock in CP slave is connected to the
@@ -23,3 +35,31 @@
2335
&cp0_rtc {
2436
status = "disabled";
2537
};
38+
39+
&cp0_sata0 {
40+
iommus = <&smmu 0x444>;
41+
};
42+
43+
&cp0_sdhci0 {
44+
iommus = <&smmu 0x445>;
45+
};
46+
47+
&cp0_usb3_0 {
48+
iommus = <&smmu 0x440>;
49+
};
50+
51+
&cp0_usb3_1 {
52+
iommus = <&smmu 0x441>;
53+
};
54+
55+
&cp1_sata0 {
56+
iommus = <&smmu 0x454>;
57+
};
58+
59+
&cp1_usb3_0 {
60+
iommus = <&smmu 0x450>;
61+
};
62+
63+
&cp1_usb3_1 {
64+
iommus = <&smmu 0x451>;
65+
};

arch/arm64/boot/dts/marvell/armada-ap80x.dtsi

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,24 @@
5656
compatible = "simple-bus";
5757
ranges = <0x0 0x0 0xf0000000 0x1000000>;
5858

59+
smmu: iommu@5000000 {
60+
compatible = "marvell,ap806-smmu-500", "arm,mmu-500";
61+
reg = <0x100000 0x100000>;
62+
dma-coherent;
63+
#iommu-cells = <1>;
64+
#global-interrupts = <1>;
65+
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
66+
<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
67+
<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
68+
<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
69+
<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
70+
<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
71+
<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
72+
<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
73+
<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
74+
status = "disabled";
75+
};
76+
5977
gic: interrupt-controller@210000 {
6078
compatible = "arm,gic-400";
6179
#interrupt-cells = <3>;

0 commit comments

Comments
 (0)