[PATCH v11 04/12] ARM: dts: zte: Declare zx297520v3 CRM device nodes

Stefan Dösinger stefandoesinger at gmail.com
Wed Sep 2 03:29:12 PDT 2026


Hi List, and in particular Krzysztof,


Am Mittwoch, 26. August 2026, 00:24:03 Ostafrikanische Zeit schrieb Stefan 
Dösinger:
> This patch adds DT nodes for the main clock and reset controllers on the
> zx297520v3 board. It replaces the temporary placeholder UART clocks with
> the proper clocks exported by topcrm and lspcrm.
> 
> Signed-off-by: Stefan Dösinger <stefandoesinger at gmail.com>
> 

This patch is the only one of my Z29 Clock and Reset series that has not seen 
review comments Did it slip through the cracks?

Linus Walleij added his R-B on the patch that added the mostly stub DSTI file, 
so I added him to the mail too.

Cheers,
Stefan

> ---
> 
> Version 11: Improved the above the line commit description, removing
> references to "previous patches" that won't make sense when reading it
> in the kernel commit log.
> 
> Version 10: Fix issues with dt-check-style --mode=strict in newly added
> code, but left issues in existing nodes alone.
> 
> Version 9:
> Sort new nodes by mmio address
> rename syscon-reboot to "reboot"
> adjust to changes in bindings
> 
> Version 7:
> Add phy nodes to topcrm
> Remove syscon from matrixclk again
> Adapt remove now-removed extra clk inputs from matrix
> Add reset to LSP
> osc26m -> clock-26m for the fixed rate clocks, likewise for 32k
> 
> Version 6:
> Add syscon to matrixclk
> 
> Version 5:
> Re-name from *clk to *crm
> Add the syscon-reboot node here because the binding requires it
> Re-add accidentally dropped uart2 IRQ
> ---
>  arch/arm/boot/dts/zte/zx297520v3.dtsi | 101
> ++++++++++++++++++++++++++++++---- 1 file changed, 89 insertions(+), 12
> deletions(-)
> 
> diff --git a/arch/arm/boot/dts/zte/zx297520v3.dtsi
> b/arch/arm/boot/dts/zte/zx297520v3.dtsi index a16c30a164bb..ebac3cd137df
> 100644
> --- a/arch/arm/boot/dts/zte/zx297520v3.dtsi
> +++ b/arch/arm/boot/dts/zte/zx297520v3.dtsi
> @@ -3,12 +3,26 @@
>   * Copyright (c) 2026 Stefan Dösinger <stefandoesinger at gmail.com>
>   */
> 
> +#include <dt-bindings/clock/zte,zx297520v3-clk.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/reset/zte,zx297520v3-reset.h>
> 
>  / {
>  	#address-cells = <1>;
>  	#size-cells = <1>;
> 
> +	osc26m: clock-26m {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <26000000>;
> +	};
> +
> +	osc32k: clock-32k {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <32768>;
> +	};
> +
>  	cpus {
>  		#address-cells = <1>;
>  		#size-cells = <0>;
> @@ -20,15 +34,6 @@ cpu at 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>,
> @@ -75,18 +80,87 @@ uart0: serial at 131000 {
>  			arm,primecell-periphid = <0x0018c011>;
>  			reg = <0x00131000 0x1000>;
>  			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
> -			clocks = <&uartclk>, <&uartclk>;
> +			clocks = <&topcrm ZX297520V3_UART0_WCLK>,
> +				 <&topcrm ZX297520V3_UART0_PCLK>;
>  			clock-names = "uartclk", "apb_pclk";
> +			resets = <&topcrm ZX297520V3_UART0_RESET>;
> +
>  			status = "disabled";
>  		};
> 
> +		topcrm: clock-controller at 13b000 {
> +			compatible = "zte,zx297520v3-topcrm", "syscon";
> +			reg = <0x0013b000 0x400>;
> +			#clock-cells = <1>;
> +			clocks = <&osc26m>, <&osc32k>;
> +			clock-names = "osc26m", "osc32k";
> +			interrupts = <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>,
> +				     <GIC_SPI 43 
IRQ_TYPE_EDGE_RISING>,
> +				     <GIC_SPI 45 
IRQ_TYPE_EDGE_RISING>,
> +				     <GIC_SPI 46 
IRQ_TYPE_EDGE_RISING>;
> +			interrupt-names = "usb-up", "usb-down",
> +					  "hsic-up", "hsic-down";
> +			#phy-cells = <1>;
> +			#reset-cells = <1>;
> +
> +			reboot {
> +				compatible = "syscon-reboot";
> +				mask = <0x1>;
> +				offset = <0x0>;
> +				value = <0x1>;
> +			};
> +		};
> +
> +		matrixcrm: clock-controller at 1306000 {
> +			compatible = "zte,zx297520v3-matrixcrm";
> +			reg = <0x01306000 0x400>;
> +			#clock-cells = <1>;
> +			clocks = <&osc26m>, <&osc32k>,
> +				 <&topcrm ZX297520V3_AHB_PCLK>,
> +				 <&topcrm ZX297520V3_MPLL>,
> +				 <&topcrm ZX297520V3_MPLL_D5>,
> +				 <&topcrm ZX297520V3_DPLL>,
> +				 <&topcrm ZX297520V3_GPLL>,
> +				 <&topcrm ZX297520V3_GPLL_D2>,
> +				 <&topcrm ZX297520V3_GATED_OSC26M>;
> +			clock-names = "osc26m", "osc32k", "ahb", "mpll",
> +				      "mpll-d5", "dpll", "gpll", 
"gpll-d2",
> +				      "wclk-osc26m";
> +			#hwlock-cells = <1>;
> +			#reset-cells = <1>;
> +		};
> +
> +		lspcrm: clock-controller at 1400000 {
> +			compatible = "zte,zx297520v3-lspcrm";
> +			reg = <0x01400000 0x100>;
> +			#clock-cells = <1>;
> +			clocks = <&matrixcrm 
ZX297520V3_LSP_MPLL_D5_WCLK>,
> +				 <&matrixcrm 
ZX297520V3_LSP_MPLL_D4_WCLK>,
> +				 <&matrixcrm 
ZX297520V3_LSP_MPLL_D6_WCLK>,
> +				 <&matrixcrm 
ZX297520V3_LSP_MPLL_D8_WCLK>,
> +				 <&matrixcrm 
ZX297520V3_LSP_MPLL_D12_WCLK>,
> +				 <&matrixcrm 
ZX297520V3_LSP_OSC26M_WCLK>,
> +				 <&matrixcrm 
ZX297520V3_LSP_OSC32K_WCLK>,
> +				 <&matrixcrm ZX297520V3_LSP_PCLK>,
> +				 <&matrixcrm ZX297520V3_LSP_TDM_WCLK>,
> +				 <&matrixcrm 
ZX297520V3_LSP_DPLL_D4_WCLK>;
> +			clock-names = "mpll-d5", "mpll-d4", "mpll-d6",
> +				      "mpll-d8", "mpll-d12", "osc26m", 
"osc32k",
> +				      "pclk", "tdm-wclk", "dpll-d4";
> +			#reset-cells = <1>;
> +			resets = <&matrixcrm ZX297520V3_LSP_RESET>;
> +		};
> +
>  		uart1: serial at 1408000 {
>  			compatible = "arm,pl011", "arm,primecell";
>  			arm,primecell-periphid = <0x0018c011>;
>  			reg = <0x01408000 0x1000>;
>  			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
> -			clocks = <&uartclk>, <&uartclk>;
> +			clocks = <&lspcrm ZX297520V3_UART1_WCLK>,
> +				 <&lspcrm ZX297520V3_UART1_PCLK>;
>  			clock-names = "uartclk", "apb_pclk";
> +			resets = <&lspcrm ZX297520V3_UART1_RESET>;
> +
>  			status = "disabled";
>  		};
> 
> @@ -95,8 +169,11 @@ uart2: serial at 140d000 {
>  			arm,primecell-periphid = <0x0018c011>;
>  			reg = <0x0140d000 0x1000>;
>  			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
> -			clocks = <&uartclk>, <&uartclk>;
> +			clocks = <&lspcrm ZX297520V3_UART2_WCLK>,
> +				 <&lspcrm ZX297520V3_UART2_PCLK>;
>  			clock-names = "uartclk", "apb_pclk";
> +			resets = <&lspcrm ZX297520V3_UART2_RESET>;
> +
>  			status = "disabled";
>  		};
>  	};
> 
> --
> 2.54.0

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 870 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.infradead.org/pipermail/linux-phy/attachments/20260902/d2de5fb5/attachment.sig>


More information about the linux-phy mailing list