Inter-revision diff: patch 5

Comparing v7 (message) to v2 (message)

--- v7
+++ v2
@@ -1,150 +1,23 @@
-This adds base DT definition for zx297520v3 and one board that consumes it.
-
-The stock kernel does not use the armv7 timer, but it seems to work
-fine. The board has other board-specific timers that would need a driver
-and I see no reason to bother with them since the arm standard timer
-works.
+The stock kernel does not use this timer, but it seems to work fine. The
+board has other board-specific timers that would need a driver and I see
+no reason to bother with them since the arm standard timer works.
 
 The caveat is the non-standard GIC setup needed to handle the timer's
-level-low PPI. This is the responsibility of the boot loader and
-documented in Documentation/arch/arm/zte/zx297520v3.rst.
+level-low PPI.
 
 Signed-off-by: Stefan Dösinger <stefandoesinger@gmail.com>
+---
+ arch/arm/boot/dts/zte/zx297520v3.dtsi | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
 
----
-
-Changes in
-v6: Squash board + timer + uart patches into one
-v5: Prepend the SoC name in the device specific DTS filename.
-v4:
-  Declare all uarts
-  Remove the UART aliases for now. I can revisit this when I get my
-  hands on a board that exposes two UARTs.
----
- MAINTAINERS                                        |   1 +
- arch/arm/boot/dts/Makefile                         |   1 +
- arch/arm/boot/dts/zte/Makefile                     |   3 +
- arch/arm/boot/dts/zte/zx297520v3-dlink-dwr932m.dts |  22 +++++
- arch/arm/boot/dts/zte/zx297520v3.dtsi              | 103 +++++++++++++++++++++
- 5 files changed, 130 insertions(+)
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index e707176c2114..6f51ba1c5ada 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -3775,6 +3775,7 @@ F:	drivers/video/fbdev/wmt_ge_rops.*
- ARM/ZTE ZX29 SOC SUPPORT
- M:	Stefan Dösinger <stefandoesinger@gmail.com>
- F:	Documentation/devicetree/bindings/arm/zte.yaml
-+F:	arch/arm/boot/dts/zte/
- F:	arch/arm/mach-zte/
+diff --git a/arch/arm/boot/dts/zte/zx297520v3.dtsi b/arch/arm/boot/dts/zte/zx297520v3.dtsi
+index d6c71d52b26c..ecd07f3fb8b3 100644
+--- a/arch/arm/boot/dts/zte/zx297520v3.dtsi
++++ b/arch/arm/boot/dts/zte/zx297520v3.dtsi
+@@ -24,6 +24,15 @@ soc {
+ 		interrupt-parent = <&gic>;
+ 		ranges;
  
- ARM/ZYNQ ARCHITECTURE
-diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index efe38eb25301..28fba538d552 100644
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -39,3 +39,4 @@ subdir-y += unisoc
- subdir-y += vt8500
- subdir-y += xen
- subdir-y += xilinx
-+subdir-y += zte
-diff --git a/arch/arm/boot/dts/zte/Makefile b/arch/arm/boot/dts/zte/Makefile
-new file mode 100644
-index 000000000000..f052cfbd636c
---- /dev/null
-+++ b/arch/arm/boot/dts/zte/Makefile
-@@ -0,0 +1,3 @@
-+# SPDX-License-Identifier: GPL-2.0-only
-+dtb-$(CONFIG_SOC_ZX297520V3) += \
-+	zx297520v3-dlink-dwr932m.dtb
-diff --git a/arch/arm/boot/dts/zte/zx297520v3-dlink-dwr932m.dts b/arch/arm/boot/dts/zte/zx297520v3-dlink-dwr932m.dts
-new file mode 100644
-index 000000000000..1700f46aba86
---- /dev/null
-+++ b/arch/arm/boot/dts/zte/zx297520v3-dlink-dwr932m.dts
-@@ -0,0 +1,22 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+/*
-+ * Copyright (c) 2026 Stefan Dösinger <stefandoesinger@gmail.com>
-+ */
-+
-+/dts-v1/;
-+
-+#include "zx297520v3.dtsi"
-+
-+/ {
-+	model = "D-Link DWR-932M";
-+	compatible = "dlink,dwr932m", "zte,zx297520v3";
-+
-+	memory@20000000 {
-+		device_type = "memory";
-+		reg = <0x20000000 0x04000000>;
-+	};
-+};
-+
-+&uart1 {
-+	status = "okay";
-+};
-diff --git a/arch/arm/boot/dts/zte/zx297520v3.dtsi b/arch/arm/boot/dts/zte/zx297520v3.dtsi
-new file mode 100644
-index 000000000000..ca65797ed926
---- /dev/null
-+++ b/arch/arm/boot/dts/zte/zx297520v3.dtsi
-@@ -0,0 +1,103 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+/*
-+ * Copyright (c) 2026 Stefan Dösinger <stefandoesinger@gmail.com>
-+ */
-+
-+#include <dt-bindings/interrupt-controller/arm-gic.h>
-+
-+/ {
-+	#address-cells = <1>;
-+	#size-cells = <1>;
-+
-+	cpus {
-+		#address-cells = <1>;
-+		#size-cells = <0>;
-+
-+		cpu@0 {
-+			device_type = "cpu";
-+			compatible = "arm,cortex-a53";
-+			reg = <0>;
-+		};
-+	};
-+
-+	/* Base bus clock and default for the UART. It will be replaced once a clock driver has
-+	 * been added.
-+	 */
-+	uartclk: uartclk: uartclk-26000000 {
-+		#clock-cells = <0>;
-+		compatible = "fixed-clock";
-+		clock-frequency = <26000000>;
-+	};
-+
-+	timer {
-+		compatible = "arm,armv7-timer";
-+		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
-+			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
-+			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-+			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
-+		clock-frequency = <26000000>;
-+		interrupt-parent = <&gic>;
-+		/* I don't think uboot sets CNTVOFF and the stock kernel doesn't use the
-+		 * arm timer at all. Since this is a single CPU system I don't think it
-+		 * really matters that the offset is random though.
-+		 */
-+		arm,cpu-registers-not-fw-configured;
-+	};
-+
-+	soc {
-+		#address-cells = <1>;
-+		#size-cells = <1>;
-+		compatible = "simple-bus";
-+		interrupt-parent = <&gic>;
-+		ranges;
-+
 +		/* The GIC has a non-standard way of configuring ints between level-low/level
 +		 * high or rising edge/falling edge at 0xf2202070 and onwards. See AP_INT_MODE_BASE
 +		 * and AP_PPI_MODE_REG in the ZTE kernel, although the offsets in the kernel source
@@ -154,49 +27,31 @@
 +		 * currently rely on the boot loader to change timer IRQs to active-low for us for
 +		 * now.
 +		 */
-+		gic: interrupt-controller@f2000000 {
-+			compatible = "arm,gic-v3";
-+			interrupt-controller;
-+			#interrupt-cells = <3>;
-+			#address-cells = <1>;
-+			#size-cells = <1>;
-+			reg = <0xf2000000 0x10000>,
-+			      <0xf2040000 0x20000>;
+ 		gic: interrupt-controller@f2000000 {
+ 			compatible = "arm,gic-v3";
+ 			interrupt-controller;
+@@ -33,5 +42,20 @@ gic: interrupt-controller@f2000000 {
+ 			reg = <0xf2000000 0x10000>,
+ 			      <0xf2040000 0x20000>;
+ 		};
++
++		timer {
++			compatible = "arm,armv7-timer";
++			interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
++				<GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
++				<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
++				<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
++			clock-frequency = <26000000>;
++			interrupt-parent = <&gic>;
++			/* I don't think uboot sets CNTVOFF and the stock kernel doesn't use the
++			 * arm timer at all. Since this is a single CPU system I don't think it
++			 * really matters that the offset is random though.
++			 */
++			arm,cpu-registers-not-fw-configured;
 +		};
-+
-+		uart0: serial@131000 {
-+			compatible = "arm,primecell";
-+			arm,primecell-periphid = <0x0018c011>;
-+			reg = <0x00131000 0x1000>;
-+			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
-+			clocks = <&uartclk>, <&uartclk>;
-+			clock-names = "uartclk", "apb_pclk";
-+			status = "disabled";
-+		};
-+
-+		uart1: serial@1408000 {
-+			compatible = "arm,pl011", "arm,primecell";
-+			arm,primecell-periphid = <0x0018c011>;
-+			reg = <0x01408000 0x1000>;
-+			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
-+			clocks = <&uartclk>, <&uartclk>;
-+			clock-names = "uartclk", "apb_pclk";
-+			status = "disabled";
-+		};
-+
-+		uart2: serial@140d000 {
-+			compatible = "arm,primecell";
-+			arm,primecell-periphid = <0x0018c011>;
-+			reg = <0x0140d000 0x1000>;
-+			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
-+			clocks = <&uartclk>, <&uartclk>;
-+			clock-names = "uartclk", "apb_pclk";
-+			status = "disabled";
-+		};
-+	};
-+};
-
+ 	};
+ };
 -- 
-2.53.0
+2.52.0
 
 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help