aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2024-10-19 22:39:35 +0200
committerFlorian Fainelli <florian.fainelli@broadcom.com>2024-12-17 10:23:28 -0800
commit3abdd3eb88a2f72daa57daf4142226441b9421dd (patch)
treebde2ccc10ad02efcf5624b48ec055d8e5c9cc505
parentARM: dts: bcm6846: Add LED controller (diff)
downloadwireguard-linux-3abdd3eb88a2f72daa57daf4142226441b9421dd.tar.xz
wireguard-linux-3abdd3eb88a2f72daa57daf4142226441b9421dd.zip
ARM: dts: bcm6846: Add ARM PL081 DMA block
The ARM PL081 DMA controller can be found in the BCM6846 memory map, and it turns out to work. The block may be used as DMA engine for some of the peripherals (maybe the EMMC controller found in the same group of peripherals?) but it can always be used as a memcpy engine, which is a generic "blitter". I tested it with the dmatest module, and it copies lots of data very fast and fires hundreds of thousands of interrupts so it works just fine. Add it to the BCM6846 DTSI file. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20241019-genexis-xg6846b-base-v3-6-8375a0e1f89f@linaro.org Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
Diffstat (limited to '')
-rw-r--r--arch/arm/boot/dts/broadcom/bcm6846.dtsi13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/broadcom/bcm6846.dtsi b/arch/arm/boot/dts/broadcom/bcm6846.dtsi
index 378dbd1b41b3..e0e06af3fe89 100644
--- a/arch/arm/boot/dts/broadcom/bcm6846.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm6846.dtsi
@@ -240,5 +240,18 @@
#size-cells = <0>;
status = "disabled";
};
+
+ pl081_dma: dma-controller@59000 {
+ compatible = "arm,pl081", "arm,primecell";
+ // The magic B105F00D info is missing
+ arm,primecell-periphid = <0x00041081>;
+ reg = <0x59000 0x1000>;
+ interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+ memcpy-burst-size = <256>;
+ memcpy-bus-width = <32>;
+ clocks = <&periph_clk>;
+ clock-names = "apb_pclk";
+ #dma-cells = <2>;
+ };
};
};