* [PATCH v2 1/3] arm64: dts: rockchip: Add missing uart3 interrupt for RK3528
2025-04-01 10:00 [PATCH v2 0/3] arm64: dts: rockchip: Add DMA controller for RK3528 Chukun Pan
@ 2025-04-01 10:00 ` Chukun Pan
2025-04-01 10:00 ` [PATCH v2 2/3] arm64: dts: rockchip: Add DMA controller " Chukun Pan
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Chukun Pan @ 2025-04-01 10:00 UTC (permalink / raw)
To: Yao Zi
Cc: Rob Herring, Chukun Pan, Jonas Karlman, Heiko Stuebner,
Conor Dooley, Krzysztof Kozlowski, linux-arm-kernel,
linux-rockchip, linux-kernel, devicetree
The interrupt of uart3 node on rk3528 is missing, fix it.
Fixes: 7983e6c379a9 ("arm64: dts: rockchip: Add base DT for rk3528 SoC")
Reviewed-by: Yao Zi <ziyao@disroot.org>
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
---
arch/arm64/boot/dts/rockchip/rk3528.dtsi | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3528.dtsi b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
index 26c3559d6a6d..7f1ffd6003f5 100644
--- a/arch/arm64/boot/dts/rockchip/rk3528.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
@@ -404,9 +404,10 @@ uart2: serial@ffa00000 {
uart3: serial@ffa08000 {
compatible = "rockchip,rk3528-uart", "snps,dw-apb-uart";
+ reg = <0x0 0xffa08000 0x0 0x100>;
clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
clock-names = "baudclk", "apb_pclk";
- reg = <0x0 0xffa08000 0x0 0x100>;
+ interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v2 2/3] arm64: dts: rockchip: Add DMA controller for RK3528
2025-04-01 10:00 [PATCH v2 0/3] arm64: dts: rockchip: Add DMA controller for RK3528 Chukun Pan
2025-04-01 10:00 ` [PATCH v2 1/3] arm64: dts: rockchip: Add missing uart3 interrupt " Chukun Pan
@ 2025-04-01 10:00 ` Chukun Pan
2025-04-01 17:35 ` Yao Zi
2025-04-01 10:00 ` [PATCH v2 3/3] arm64: dts: rockchip: Add UART DMA support " Chukun Pan
2025-04-10 14:52 ` [PATCH v2 0/3] arm64: dts: rockchip: Add DMA controller " Heiko Stuebner
3 siblings, 1 reply; 7+ messages in thread
From: Chukun Pan @ 2025-04-01 10:00 UTC (permalink / raw)
To: Yao Zi
Cc: Rob Herring, Chukun Pan, Jonas Karlman, Heiko Stuebner,
Conor Dooley, Krzysztof Kozlowski, linux-arm-kernel,
linux-rockchip, linux-kernel, devicetree
Add DMA controller dt node for RK3528 SoC.
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
---
arch/arm64/boot/dts/rockchip/rk3528.dtsi | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3528.dtsi b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
index 7f1ffd6003f5..c366766ee3f5 100644
--- a/arch/arm64/boot/dts/rockchip/rk3528.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
@@ -493,6 +493,24 @@ sdhci: mmc@ffbf0000 {
status = "disabled";
};
+ dmac: dma-controller@ffd60000 {
+ compatible = "arm,pl330", "arm,primecell";
+ reg = <0x0 0xffd60000 0x0 0x4000>;
+ clocks = <&cru ACLK_DMAC>;
+ clock-names = "apb_pclk";
+ interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+ arm,pl330-periph-burst;
+ #dma-cells = <1>;
+ };
+
pinctrl: pinctrl {
compatible = "rockchip,rk3528-pinctrl";
rockchip,grf = <&ioc_grf>;
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH v2 2/3] arm64: dts: rockchip: Add DMA controller for RK3528
2025-04-01 10:00 ` [PATCH v2 2/3] arm64: dts: rockchip: Add DMA controller " Chukun Pan
@ 2025-04-01 17:35 ` Yao Zi
2025-04-01 17:43 ` Jonas Karlman
0 siblings, 1 reply; 7+ messages in thread
From: Yao Zi @ 2025-04-01 17:35 UTC (permalink / raw)
To: Chukun Pan
Cc: Rob Herring, Jonas Karlman, Heiko Stuebner, Conor Dooley,
Krzysztof Kozlowski, linux-arm-kernel, linux-rockchip,
linux-kernel, devicetree
On Tue, Apr 01, 2025 at 06:00:19PM +0800, Chukun Pan wrote:
> Add DMA controller dt node for RK3528 SoC.
>
> Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
> ---
> arch/arm64/boot/dts/rockchip/rk3528.dtsi | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3528.dtsi b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
> index 7f1ffd6003f5..c366766ee3f5 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3528.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
> @@ -493,6 +493,24 @@ sdhci: mmc@ffbf0000 {
> status = "disabled";
> };
>
> + dmac: dma-controller@ffd60000 {
> + compatible = "arm,pl330", "arm,primecell";
> + reg = <0x0 0xffd60000 0x0 0x4000>;
> + clocks = <&cru ACLK_DMAC>;
> + clock-names = "apb_pclk";
> + interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
> + arm,pl330-periph-burst;
Should this be moved above "clocks" line to sort the properties?
Thanks,
Yao Zi
> + #dma-cells = <1>;
> + };
> +
> pinctrl: pinctrl {
> compatible = "rockchip,rk3528-pinctrl";
> rockchip,grf = <&ioc_grf>;
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH v2 2/3] arm64: dts: rockchip: Add DMA controller for RK3528
2025-04-01 17:35 ` Yao Zi
@ 2025-04-01 17:43 ` Jonas Karlman
0 siblings, 0 replies; 7+ messages in thread
From: Jonas Karlman @ 2025-04-01 17:43 UTC (permalink / raw)
To: Yao Zi, Chukun Pan
Cc: Rob Herring, Heiko Stuebner, Conor Dooley, Krzysztof Kozlowski,
linux-arm-kernel, linux-rockchip, linux-kernel, devicetree
On 2025-04-01 19:35, Yao Zi wrote:
> On Tue, Apr 01, 2025 at 06:00:19PM +0800, Chukun Pan wrote:
>> Add DMA controller dt node for RK3528 SoC.
>>
>> Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
>> ---
>> arch/arm64/boot/dts/rockchip/rk3528.dtsi | 18 ++++++++++++++++++
>> 1 file changed, 18 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/rockchip/rk3528.dtsi b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
>> index 7f1ffd6003f5..c366766ee3f5 100644
>> --- a/arch/arm64/boot/dts/rockchip/rk3528.dtsi
>> +++ b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
>> @@ -493,6 +493,24 @@ sdhci: mmc@ffbf0000 {
>> status = "disabled";
>> };
>>
>> + dmac: dma-controller@ffd60000 {
>> + compatible = "arm,pl330", "arm,primecell";
>> + reg = <0x0 0xffd60000 0x0 0x4000>;
>> + clocks = <&cru ACLK_DMAC>;
>> + clock-names = "apb_pclk";
>> + interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
>> + arm,pl330-periph-burst;
>
> Should this be moved above "clocks" line to sort the properties?
Not preferred according to [1], vendor-prefixed props is ordered after
non-vendor-prefixed props.
"""
The following order of properties in device nodes is preferred:
- "compatible"
- "reg"
- "ranges"
- Standard/common properties (defined by common bindings, e.g. without
vendor-prefixes)
- Vendor-specific properties
- "status" (if applicable)
- Child nodes, where each node is preceded with a blank line
The "status" property is by default "okay", thus it can be omitted.
The above-described ordering follows this approach:
- Most important properties start the node: compatible then bus
addressing to match unit address.
- Each node will have common properties in similar place.
- Status is the last information to annotate that device node is or is
not finished (board resources are needed).
"""
[1] https://docs.kernel.org/devicetree/bindings/dts-coding-style.html#order-of-properties-in-device-node
Regards,
Jonas
>
> Thanks,
> Yao Zi
>
>> + #dma-cells = <1>;
>> + };
>> +
>> pinctrl: pinctrl {
>> compatible = "rockchip,rk3528-pinctrl";
>> rockchip,grf = <&ioc_grf>;
>> --
>> 2.25.1
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 3/3] arm64: dts: rockchip: Add UART DMA support for RK3528
2025-04-01 10:00 [PATCH v2 0/3] arm64: dts: rockchip: Add DMA controller for RK3528 Chukun Pan
2025-04-01 10:00 ` [PATCH v2 1/3] arm64: dts: rockchip: Add missing uart3 interrupt " Chukun Pan
2025-04-01 10:00 ` [PATCH v2 2/3] arm64: dts: rockchip: Add DMA controller " Chukun Pan
@ 2025-04-01 10:00 ` Chukun Pan
2025-04-10 14:52 ` [PATCH v2 0/3] arm64: dts: rockchip: Add DMA controller " Heiko Stuebner
3 siblings, 0 replies; 7+ messages in thread
From: Chukun Pan @ 2025-04-01 10:00 UTC (permalink / raw)
To: Yao Zi
Cc: Rob Herring, Chukun Pan, Jonas Karlman, Heiko Stuebner,
Conor Dooley, Krzysztof Kozlowski, linux-arm-kernel,
linux-rockchip, linux-kernel, devicetree
The UART ports on RK3528 have DMA capability, describe it.
Flow control is optional, so dma-names are not added.
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
---
arch/arm64/boot/dts/rockchip/rk3528.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3528.dtsi b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
index c366766ee3f5..35704d0be37a 100644
--- a/arch/arm64/boot/dts/rockchip/rk3528.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
@@ -375,6 +375,7 @@ uart0: serial@ff9f0000 {
clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
clock-names = "baudclk", "apb_pclk";
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+ dmas = <&dmac 8>, <&dmac 9>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
@@ -386,6 +387,7 @@ uart1: serial@ff9f8000 {
clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
clock-names = "baudclk", "apb_pclk";
interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+ dmas = <&dmac 10>, <&dmac 11>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
@@ -397,6 +399,7 @@ uart2: serial@ffa00000 {
clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
clock-names = "baudclk", "apb_pclk";
interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+ dmas = <&dmac 12>, <&dmac 13>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
@@ -408,6 +411,7 @@ uart3: serial@ffa08000 {
clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
clock-names = "baudclk", "apb_pclk";
interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+ dmas = <&dmac 14>, <&dmac 15>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
@@ -419,6 +423,7 @@ uart4: serial@ffa10000 {
clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
clock-names = "baudclk", "apb_pclk";
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+ dmas = <&dmac 16>, <&dmac 17>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
@@ -430,6 +435,7 @@ uart5: serial@ffa18000 {
clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
clock-names = "baudclk", "apb_pclk";
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+ dmas = <&dmac 18>, <&dmac 19>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
@@ -441,6 +447,7 @@ uart6: serial@ffa20000 {
clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
clock-names = "baudclk", "apb_pclk";
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+ dmas = <&dmac 20>, <&dmac 21>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
@@ -452,6 +459,7 @@ uart7: serial@ffa28000 {
clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
clock-names = "baudclk", "apb_pclk";
interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
+ dmas = <&dmac 22>, <&dmac 23>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH v2 0/3] arm64: dts: rockchip: Add DMA controller for RK3528
2025-04-01 10:00 [PATCH v2 0/3] arm64: dts: rockchip: Add DMA controller for RK3528 Chukun Pan
` (2 preceding siblings ...)
2025-04-01 10:00 ` [PATCH v2 3/3] arm64: dts: rockchip: Add UART DMA support " Chukun Pan
@ 2025-04-10 14:52 ` Heiko Stuebner
3 siblings, 0 replies; 7+ messages in thread
From: Heiko Stuebner @ 2025-04-10 14:52 UTC (permalink / raw)
To: Yao Zi, Chukun Pan
Cc: Heiko Stuebner, Rob Herring, Jonas Karlman, Conor Dooley,
Krzysztof Kozlowski, linux-arm-kernel, linux-rockchip,
linux-kernel, devicetree
On Tue, 01 Apr 2025 18:00:17 +0800, Chukun Pan wrote:
> First commit adds missing uart3 interrupt for uart3 node.
> The next commit adds the DMA controller that can be used
> for spi and uart. And add DMA description for uart nodes.
>
> ~# dmesg | grep dma
> [ 0.103466] dma-pl330 ffd60000.dma-controller: Loaded driver for PL330 DMAC-241330
> [ 0.104212] dma-pl330 ffd60000.dma-controller: DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
>
> [...]
Applied, thanks!
[1/3] arm64: dts: rockchip: Add missing uart3 interrupt for RK3528
commit: a37d21a9b45e47ed6bc1f94e738096c07db78a07
[2/3] arm64: dts: rockchip: Add DMA controller for RK3528
commit: 762b1f6503340b4729bc8a5fa6a5780712012cd8
[3/3] arm64: dts: rockchip: Add UART DMA support for RK3528
commit: ab6fcb58aedf7df1d146b47d5fedd844a7c346e2
Best regards,
--
Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 7+ messages in thread