From 402e845f9dff3f6f4bf5ff801a07301c05d4cd83 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Wed, 25 Mar 2026 00:43:55 +0800 Subject: [PATCH 01/11] arm64: dts: allwinner: sun50i-h616: Add SRAM nodes The H616 SoC has a video engine, and two SRAM regions needed by it. Add the SRAM regions to the dtsi file. The video engine will be added in a separate change. Signed-off-by: Jernej Skrabec [wens@kernel.org: Add VE SRAM region, commit message, and split into two] Reviewed-by: Jernej Skrabec Link: https://patch.msgid.link/20260324164357.1607247-8-wens@kernel.org Signed-off-by: Chen-Yu Tsai --- .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi index bf054869e78b..b116d3c12881 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi @@ -182,12 +182,38 @@ syscon: syscon@3000000 { #size-cells = <1>; ranges; - sram_c: sram@28000 { + /* SRAM C */ + sram@28000 { compatible = "mmio-sram"; reg = <0x00028000 0x30000>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x00028000 0x30000>; + + /* + * 0x0 ~ 0x20000 is partial alias of VE SRAM below. + * 0x20000 ~ 0x2ffff is (partial?) alias of DE SRAM. + * However the whole region is toggled together. + */ + sram_c: sram-section@0 { + compatible = "allwinner,sun50i-h616-sram-c", + "allwinner,sun50i-a64-sram-c"; + reg = <0x00000 0x30000>; + }; + }; + + /* VE SRAM */ + sram@1a00000 { + compatible = "mmio-sram"; + reg = <0x01a00000 0x200000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x01a00000 0x200000>; + + ve_sram: sram-section@0 { + compatible = "allwinner,sun50i-h616-ve-sram"; + reg = <0x000000 0x200000>; + }; }; }; From 003ff312269cc9defdd6b12462b1e89f4c9423d7 Mon Sep 17 00:00:00 2001 From: Michal Piekos Date: Wed, 6 May 2026 17:10:28 +0200 Subject: [PATCH 02/11] riscv: dts: allwinner: d1s-t113: add hstimer node Describe high speed timer block on Allwinner D1S-T113. Tested on LCPI-PC-T113/F113: - hstimer is registered as clocksource - switching clocksource at runtime works - after rating increase hstimer operates as a broadcast clockevent device Signed-off-by: Michal Piekos Reviewed-by: Chen-Yu Tsai Link: https://patch.msgid.link/20260506-h616-t113s-hstimer-v4-3-591d425863d6@mmpsystems.pl [wens@kernel.org: change subject prefix from "arm" to "riscv"] [wens@kernel.org: fix interrupt representation] Signed-off-by: Chen-Yu Tsai --- arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi b/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi index 82cc85acccb1..a810ad3eb2a2 100644 --- a/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi +++ b/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi @@ -295,6 +295,15 @@ timer: timer@2050000 { clocks = <&dcxo>; }; + hstimer@3008000 { + compatible = "allwinner,sun20i-d1-hstimer"; + reg = <0x03008000 0x1000>; + interrupts = , + ; + clocks = <&ccu CLK_BUS_HSTIMER>; + resets = <&ccu RST_BUS_HSTIMER>; + }; + wdt: watchdog@20500a0 { compatible = "allwinner,sun20i-d1-wdt-reset", "allwinner,sun20i-d1-wdt"; From 2d2c7e532ec325240068ac8d53d94cc0133c06f6 Mon Sep 17 00:00:00 2001 From: Michal Piekos Date: Wed, 6 May 2026 17:10:29 +0200 Subject: [PATCH 03/11] arm64: dts: allwinner: h616: add hstimer node Describe high speed timer block on Allwinner H616. Tested on Orange Pi Zero 3: - hstimer is registered as clocksource - switching clocksource at runtime works - after rating increase hstimer operates as a broadcast clockevent device Signed-off-by: Michal Piekos Reviewed-by: Chen-Yu Tsai Link: https://patch.msgid.link/20260506-h616-t113s-hstimer-v4-4-591d425863d6@mmpsystems.pl Signed-off-by: Chen-Yu Tsai --- arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi index b116d3c12881..1598e86259ab 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi @@ -263,6 +263,16 @@ timer0: timer@3009000 { clocks = <&osc24M>; }; + hstimer@3005000 { + compatible = "allwinner,sun50i-h616-hstimer", + "allwinner,sun20i-d1-hstimer"; + reg = <0x03005000 0x1000>; + interrupts = , + ; + clocks = <&ccu CLK_BUS_HSTIMER>; + resets = <&ccu RST_BUS_HSTIMER>; + }; + watchdog: watchdog@30090a0 { compatible = "allwinner,sun50i-h616-wdt", "allwinner,sun6i-a31-wdt"; From cb8eba42e31854c07f7891a0c9955e7ae8be2d93 Mon Sep 17 00:00:00 2001 From: Michal Piekos Date: Wed, 6 May 2026 12:14:31 +0200 Subject: [PATCH 04/11] arm: dts: allwinner: t113s: enable watchdog for reboot Reboot hangs on T113s boards because no restart handler is available. Enable the SoC watchdog whose driver registers a restart handler. Tested on LCPI-PC-T113/F113. Signed-off-by: Michal Piekos Link: https://patch.msgid.link/20260506-t113-mangopi-reboot-hang-v3-1-fa15a360a520@mmpsystems.pl Signed-off-by: Chen-Yu Tsai --- arch/arm/boot/dts/allwinner/sun8i-t113s.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-t113s.dtsi b/arch/arm/boot/dts/allwinner/sun8i-t113s.dtsi index 424f4a2487e2..3ca0897353be 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-t113s.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-t113s.dtsi @@ -90,3 +90,7 @@ cpu-crit { }; }; }; + +&wdt { + status = "okay"; +}; From 3a6ffc1b4fcecd021361393d7294badb0d89e5b0 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 18 May 2026 23:04:49 +0100 Subject: [PATCH 05/11] arm64: dts: allwinner: sun50i-a64: Enable DT overlays Enable DT overlays on some of the Pine64 devices to enable use of addon accessories such as WiFi or audio modules. Signed-off-by: Peter Robinson Link: https://patch.msgid.link/20260518220455.156874-1-pbrobinson@gmail.com Signed-off-by: Chen-Yu Tsai --- arch/arm64/boot/dts/allwinner/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile index d116864b6c2b..53e6b701e7d3 100644 --- a/arch/arm64/boot/dts/allwinner/Makefile +++ b/arch/arm64/boot/dts/allwinner/Makefile @@ -1,4 +1,10 @@ # SPDX-License-Identifier: GPL-2.0 +# Enables support for device-tree overlays for named devices +DTC_FLAGS_sun50i-a64-pine64-lts := -@ +DTC_FLAGS_sun50i-a64-pine64 := -@ +DTC_FLAGS_sun50i-a64-pine64-plus := -@ +DTC_FLAGS_sun50i-a64-sopine-baseboard := -@ + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-amarula-relic.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb From 7c2a29d72f9595c876b6dccb47fa2540e09f1972 Mon Sep 17 00:00:00 2001 From: Paul Kocialkowski Date: Mon, 18 May 2026 17:33:30 +0200 Subject: [PATCH 06/11] dt-bindings: media: sun6i-a31-csi: Add optional interconnect properties An interconnect can be attached to the sun6i-a31-csi device, which is useful to attach the dma memory offset. Add related properties. Signed-off-by: Paul Kocialkowski Acked-by: Rob Herring (Arm) Link: https://patch.msgid.link/20260518153339.619947-2-paulk@sys-base.io Signed-off-by: Chen-Yu Tsai --- .../devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml index 1aa5775ba2bc..978ef2dc0ae7 100644 --- a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml +++ b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml @@ -40,6 +40,12 @@ properties: resets: maxItems: 1 + interconnects: + maxItems: 1 + + interconnect-names: + const: dma-mem + port: $ref: /schemas/graph.yaml#/$defs/port-base description: Parallel input port, connect to a parallel sensor From 64659ee650018e0120ad4ed56160f346ac76dc17 Mon Sep 17 00:00:00 2001 From: Paul Kocialkowski Date: Mon, 18 May 2026 17:33:31 +0200 Subject: [PATCH 07/11] dt-bindings: media: sun6i-a31-isp: Add optional interconnect properties An interconnect can be attached to the sun6i-a31-isp device, which is useful to attach the dma memory offset. Add related properties. Signed-off-by: Paul Kocialkowski Acked-by: Rob Herring (Arm) Link: https://patch.msgid.link/20260518153339.619947-3-paulk@sys-base.io [wens@kernel.org: Corrected sun6i-a31-csi to sun6i-a31-isp in commit log] Signed-off-by: Chen-Yu Tsai --- .../devicetree/bindings/media/allwinner,sun6i-a31-isp.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-isp.yaml b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-isp.yaml index 3ea4a4290f23..c0d7accc7bbe 100644 --- a/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-isp.yaml +++ b/Documentation/devicetree/bindings/media/allwinner,sun6i-a31-isp.yaml @@ -36,6 +36,12 @@ properties: resets: maxItems: 1 + interconnects: + maxItems: 1 + + interconnect-names: + const: dma-mem + ports: $ref: /schemas/graph.yaml#/properties/ports From 9e8019bd2f55ecd47efa15f7ab4fa49a919d96c5 Mon Sep 17 00:00:00 2001 From: Paul Kocialkowski Date: Mon, 18 May 2026 17:33:36 +0200 Subject: [PATCH 08/11] ARM: dts: sun8i: a83t: Add MIPI CSI-2 controller node MIPI CSI-2 is supported on the A83T with a dedicated controller that covers both the protocol and D-PHY. It is connected to the only CSI receiver with a fwnode graph link. Note that the CSI receiver supports both this MIPI CSI-2 source and a parallel source. An empty port with a label for the MIPI CSI-2 sensor input is also defined for convenience. Signed-off-by: Paul Kocialkowski Reviewed-by: Jernej Skrabec Link: https://patch.msgid.link/20260518153339.619947-8-paulk@sys-base.io Signed-off-by: Chen-Yu Tsai --- arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi index 6f88d8764e6a..cc107c6030de 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi @@ -1062,6 +1062,49 @@ csi: camera@1cb0000 { clock-names = "bus", "mod", "ram"; resets = <&ccu RST_BUS_CSI>; status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@1 { + reg = <1>; + + csi_in_mipi_csi2: endpoint { + remote-endpoint = <&mipi_csi2_out_csi>; + }; + }; + }; + }; + + mipi_csi2: csi@1cb1000 { + compatible = "allwinner,sun8i-a83t-mipi-csi2"; + reg = <0x01cb1000 0x1000>; + interrupts = ; + clocks = <&ccu CLK_BUS_CSI>, + <&ccu CLK_CSI_SCLK>, + <&ccu CLK_MIPI_CSI>, + <&ccu CLK_CSI_MISC>; + clock-names = "bus", "mod", "mipi", "misc"; + resets = <&ccu RST_BUS_CSI>; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + mipi_csi2_in: port@0 { + reg = <0>; + }; + + mipi_csi2_out: port@1 { + reg = <1>; + + mipi_csi2_out_csi: endpoint { + remote-endpoint = <&csi_in_mipi_csi2>; + }; + }; + }; }; hdmi: hdmi@1ee0000 { From a186a9742dc5d53a364934325aacf7fba726341a Mon Sep 17 00:00:00 2001 From: Marc Zyngier Date: Sat, 23 May 2026 15:02:30 +0100 Subject: [PATCH 09/11] arm64: dts: allwinner: Add EL2 virtual timer interrupt The ARMv8.2 based CPUs used in the A523 SoC (and derivatives) are missing the EL2 virtual timer interrupt. Add it. Reviewed-by: Andre Przywara Tested-by: Andre Przywara Signed-off-by: Marc Zyngier Link: https://patch.msgid.link/20260523140242.586031-6-maz@kernel.org Signed-off-by: Chen-Yu Tsai --- arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi index 5afa8d92acbf..d3c47966e8fc 100644 --- a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi @@ -101,7 +101,8 @@ timer { interrupts = , , , - ; + , + ; }; soc { From e53b4d7b3ed109a64e0e3b440518d1b2ac18a05b Mon Sep 17 00:00:00 2001 From: Michal Piekos Date: Sat, 16 May 2026 07:34:16 +0200 Subject: [PATCH 10/11] arm64: dts: allwinner: a523: add gpadc node Describe GPADC block on Allwinner A523. Tested on Radxa Cubie A5E: - 2 connected channels are showing voltages in agreement with schematics. BOOT-SEL-ADC ~500mV BOM-ADC ~1800mV - 3rd channel exposed on 40pin header is showing correct voltages when connected to known voltage source. Signed-off-by: Michal Piekos Link: https://patch.msgid.link/20260516-sunxi-a523-gpadc-v3-3-a3a04cff2620@mmpsystems.pl Signed-off-by: Chen-Yu Tsai --- arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi index d3c47966e8fc..321a03da77da 100644 --- a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi @@ -341,6 +341,19 @@ ledc: led-controller@2008000 { status = "disabled"; }; + gpadc: adc@2009000 { + compatible = "allwinner,sun55i-a523-gpadc"; + reg = <0x2009000 0x400>; + clocks = <&ccu CLK_BUS_GPADC0>, <&ccu CLK_GPADC0>; + clock-names = "bus", "mod"; + resets = <&ccu RST_BUS_GPADC0>; + interrupts = ; + #io-channel-cells = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + wdt: watchdog@2050000 { compatible = "allwinner,sun55i-a523-wdt"; reg = <0x2050000 0x20>; From 6b81aa0c8a4f038712fa549e4d44d8279eeb0440 Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Fri, 27 Mar 2026 11:30:06 +0000 Subject: [PATCH 11/11] arm64: dts: allwinner: a523: Add missing GPIO interrupt Even though the Allwinner A523 SoC implements 10 GPIO banks, it has actually registers for 11 IRQ banks, and even an interrupt assigned to the first, non-implemented IRQ bank. Add that first interrupt to the list of GPIO interrupts, to correct the association between IRQs and GPIO banks. This fixes GPIO IRQ operation on boards with A523 SoCs, as seen by broken SD card detect functionality, for instance. Signed-off-by: Andre Przywara Fixes: 35ac96f79664 ("arm64: dts: allwinner: Add Allwinner A523 .dtsi file") Reviewed-by: Chen-Yu Tsai Reviewed-by: Jernej Skrabec Link: https://patch.msgid.link/20260327113006.3135663-4-andre.przywara@arm.com Signed-off-by: Chen-Yu Tsai --- arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi index 321a03da77da..ca6a16807049 100644 --- a/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi @@ -129,7 +129,8 @@ gpu: gpu@1800000 { pio: pinctrl@2000000 { compatible = "allwinner,sun55i-a523-pinctrl"; reg = <0x2000000 0x800>; - interrupts = , + interrupts = , + , , , ,