ARM: dts: zte: zx297520v3 device tree for 7.2

This pull request adds board bindings and DTS files for ZTE zx297520v3
 boards as well as one initial device (D-Link DWR 932M) based on this
 board.
 -----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEEQxb0tqoFWyeVMl1sPRO8yFRPGiIFAmoE5xIbFIAAAAAABAAO
 bWFudTIsMi41KzEuMTIsMiwyAAoJED0TvMhUTxoidE4P/1mFb3l21g0lYAGxCZPC
 27k4XgZ+j+wH/x210XI/5ghgU0YLcNuXd/ydDk3GhRFdPZR7HDGiGpGjwF/RVgAQ
 5zubGhQDOr7qZyBIzgDUXvYYXyF7NymEFgPCbRxCspeTF0+GNS6eKxYo8vhHgque
 74m+F+BcBFmxs8hRu+pkC/jrmihD/PfmyLa/w9PK5kysNhByt5CLnvwhEqAQ/sHV
 JY5M1mwvvQuvRMZsrYVojx9dGbaE7NnoXkIJr1gr8OngnVSHN8eTtlbXMuYVXX6a
 U3eUbUJnpB2R4hJy+rZNmReAyYO/HQLh9BMYr0maXjZAAYCzBmL7xDLgFeua8zse
 qWfrGFK1eraVSyfhsHbUSbBkYrEkwadRMzFV+QheRaNucU5/DK0G+RoiOeE4f/uB
 xUMYY+FCqEyjf5wLatmQ4i/ogqX13etSHUZwzPz24Ny/bPuKwiNFj2+qlHiDYGwJ
 tOuei/Ib4DJXKpRYVmTVv/xH4oIGLQLNeYV9d49cqVu5GqqCHU/4uXCS0El/WIfV
 ihxoy+gSyLdLY7QghlicZM3R+5mLLh0FsBI6lQJU/I0lzJJOEFe+KLCk3hFl5F71
 GzL8tkxB9VBkqJRJ2MRmjOTejpGaI6agHH0gVUkB+7B2CnA/e0nTyDLnDTcvtWS6
 lfrEleo+RT9YS9gGOLOOxSo7
 =leHo
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmoOCWEACgkQmmx57+YA
 GNkkzw/7B+GQBxkkwp8Y9AXLMRsHw0XbHTNuzGsqrbG98mNqXV7V/PqajNwV1QGp
 7uzV+rYjI5bP0hMRKUaLuQ4y1iKkxaJUaiRmWmDGVOxBYwvqLH/J++H2Al5Xd7Br
 HiAvZaLsGQcE7D0qUFnqs3HnhdkiD5o+tO43tnxx9MDkupY0IKtEvOuWZhBcNNVC
 i+qkDploaGMkWrGiRopFdJlHlQil/Yn2TrDUMtHDP3zT4QAqpdS85ogd2b/YvP3D
 BLOnbwsKSTbd1iU7OUvvxKTgNH4S7N1TDvg8Ei40EU122dw3gDajM97r9e1uxmdC
 u/x0NnwAmDQ3bUAfaoTSzOPx8CJOVrPG2+ef7cHnfSIUBD1l+hpymr37USfi0ioL
 Jz5AKivDpaIHKQLzlqYJhjhs0TJSphtaDEpxbNzksVnqfxq7MX4d2lakjBF86846
 oo1ITGpdkhV/IDtFi7Z5hklk7D4UY+UiDFdBJuoR/sIUVtysoktMkqxawoXGwNMz
 nEbnE8mISQZn5q1A+tX0RAcpdB3tQAMepl020SCz6BkFg/sW3lkw9V+Cov8WI7M9
 sgRObKjqBmFCzivkbZhMXILXJErY0re68VA48LE241BD+YpcpOweOFiMabduRmvs
 AwyAwyJ1/UK64d1CH8v7T+HsmuUJA5mHGpuAuYPMks99QjhP0no=
 =A0MX
 -----END PGP SIGNATURE-----

Merge tag 'zx29-dts-for-7.2' of https://gitlab.com/stefandoesinger/zx297520-kernel into soc/dt

ARM: dts: zte: zx297520v3 device tree for 7.2

This pull request adds board bindings and DTS files for ZTE zx297520v3
boards as well as one initial device (D-Link DWR 932M) based on this
board.

* tag 'zx29-dts-for-7.2' of https://gitlab.com/stefandoesinger/zx297520-kernel:
  ARM: dts: zte: Add D-Link DWR-932M support
  dt-bindings: arm: zte: Add D-Link DWR932M board based on zx297520v3 SoC

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2026-05-20 21:19:57 +02:00
commit e8a53f2d9c
5 changed files with 155 additions and 0 deletions

View File

@ -0,0 +1,26 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/zte.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ZTE zx platforms
maintainers:
- Stefan Dösinger <stefandoesinger@gmail.com>
description: |
ARM platforms using SoCs designed by ZTE. Currently this supports devices
based on the zx297520v3 SoC which is found in LTE routers.
properties:
$nodename:
const: "/"
compatible:
oneOf:
- items:
- enum:
- dlink,dwr932m
- const: zte,zx297520v3
additionalProperties: true

View File

@ -39,3 +39,4 @@ subdir-y += unisoc
subdir-y += vt8500
subdir-y += xen
subdir-y += xilinx
subdir-y += zte

View File

@ -0,0 +1,3 @@
# SPDX-License-Identifier: GPL-2.0-only
dtb-$(CONFIG_SOC_ZX297520V3) += \
zx297520v3-dlink-dwr932m.dtb

View File

@ -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";
};

View File

@ -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-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
* seem wrong.
*
* Everything defaults to active-high/rising edge, but the timer is active-low. We
* 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>;
};
uart0: serial@131000 {
compatible = "arm,pl011", "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,pl011", "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";
};
};
};