[PATCH] riscv: dts: spacemit: Add PDMA controller node for K3 SoC

Troy Mitchell troy.mitchell at linux.spacemit.com
Tue Mar 24 01:43:28 PDT 2026


On Fri Mar 20, 2026 at 5:19 PM CST, Yixun Lan wrote:
> Hi Troy,
>
> On 15:55 Tue 17 Mar     , Troy Mitchell wrote:
>> Add the Peripheral DMA (PDMA) controller node for the SpacemiT K3 SoC.
>> The PDMA controller provides general-purpose DMA capabilities for various
>> peripheral devices across the system to offload CPU data transfers.
>> 
>> Unlike the previous K1 SoC, where some DMA masters had memory addressing
>> limitations (e.g. restricted to the 0-4GB space) requiring a dedicated dma-bus
>> with dma-ranges to restrict memory allocations, the K3 DMA masters have
>> full memory addressing capabilities. Therefore, the PDMA node is now
>> instantiated directly under the main soc bus.
>> 
> ..
>> This configuration defines the essential hardware properties:
>> - Register base address and size
>> - High-level triggered interrupt
>> - Associated APMU clock and reset controls
>> - 16 hardware DMA channels
>> 
>> The node is disabled by default and should be enabled by specific
>> board device trees as needed.
> I would suggest to drop above, as they are quite obvious, and easy for 
> people to grab from the code..
I'll remove them in the next version.
>> 
>> Signed-off-by: Troy Mitchell <troy.mitchell at linux.spacemit.com>
>> ---
>>  arch/riscv/boot/dts/spacemit/k3.dtsi | 11 +++++++++++
>>  1 file changed, 11 insertions(+)
>> 
>> diff --git a/arch/riscv/boot/dts/spacemit/k3.dtsi b/arch/riscv/boot/dts/spacemit/k3.dtsi
>> index a3a8ceddabec..f90d34a81be0 100644
>> --- a/arch/riscv/boot/dts/spacemit/k3.dtsi
>> +++ b/arch/riscv/boot/dts/spacemit/k3.dtsi
>> @@ -438,6 +438,17 @@ soc: soc {
>>  		dma-noncoherent;
>>  		ranges;
>>  
>> +		pdma: dma-controller at d4000000 {
>> +			compatible = "spacemit,k1-pdma";
> I think here we should introduce a new compatible for K3 SoC,
> it would avoid ABI breakage if something different with K1?
> cases exist even same PDMA IP integrated into different SoC..
>
> The commit message tells some difference, although no code changes
> introduced so far..
Nice point.

                            - Troy
>
>> +			reg = <0x0 0xd4000000 0x0 0x4000>;
>> +			clocks = <&syscon_apmu CLK_APMU_DMA>;
>> +			resets = <&syscon_apmu RESET_APMU_DMA>;
>> +			interrupts = <72 IRQ_TYPE_LEVEL_HIGH>;
>> +			dma-channels = <16>;
>> +			#dma-cells = <1>;
>> +			status = "disabled";
>> +		};
>> +
>>  		syscon_apbc: system-controller at d4015000 {
>>  			compatible = "spacemit,k3-syscon-apbc";
>>  			reg = <0x0 0xd4015000 0x0 0x1000>;
>> 
>> ---
>> base-commit: 95c541ddfb0815a0ea8477af778bb13bb075079a
>> change-id: 20260317-k3-pdma-7c1734431436
>> 
>> Best regards,
>> -- 
>> Troy Mitchell <troy.mitchell at linux.spacemit.com>
>> 




More information about the linux-riscv mailing list