[PATCH v1 7/8] arch: arm: dts: n5x : Switch to using upstream Linux DT config

Chee, Tien Fong tien.fong.chee at altera.com
Wed Apr 22 11:28:50 CEST 2026


Hi Lok,


On 18/3/2026 11:17 am, Chen Huei Lok wrote:
> Migrate the legacy n5x platform to use the upstream Linux device tree
> configuration. This helps reduce maintenance overhead and aligns U-Boot
> with the Linux kernel's DTS hierarchy and naming conventions.
>
> This change improves consistency between U-Boot and Linux by removing
> custom/legacy DTS handling and instead relying on the standardized
> definitions provided by the upstream Linux DTS.
>
> Signed-off-by: Chen Huei Lok<chen.huei.lok at altera.com>
> ---
>   arch/arm/dts/Makefile                      |   1 -
>   arch/arm/dts/socfpga_n5x-u-boot.dtsi       |  18 ++-
>   arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi |  20 +++-
>   arch/arm/dts/socfpga_n5x_socdk.dts         | 122 ---------------------
>   configs/socfpga_n5x_defconfig              |   3 +-
>   5 files changed, 33 insertions(+), 131 deletions(-)
>   delete mode 100644 arch/arm/dts/socfpga_n5x_socdk.dts
>
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 82ad3035308..3c62b784ffe 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -469,7 +469,6 @@ dtb-$(CONFIG_ARCH_SOCFPGA) +=				\
>   	socfpga_cyclone5_socrates.dtb			\
>   	socfpga_cyclone5_sr1500.dtb			\
>   	socfpga_cyclone5_vining_fpga.dtb		\
> -	socfpga_n5x_socdk.dtb				\
>   	socfpga_stratix10_socdk.dtb
>
>   dtb-$(CONFIG_TARGET_DRA7XX_EVM) += dra72-evm.dtb dra7-evm.dtb	\
> diff --git a/arch/arm/dts/socfpga_n5x-u-boot.dtsi b/arch/arm/dts/socfpga_n5x-u-boot.dtsi
> index 326ba722a25..477af977f78 100644
> --- a/arch/arm/dts/socfpga_n5x-u-boot.dtsi
> +++ b/arch/arm/dts/socfpga_n5x-u-boot.dtsi
> @@ -10,7 +10,13 @@
>   #include <dt-bindings/clock/n5x-clock.h>
>
>   /{
> -	memory {
> +	aliases {
> +		spi0 = &qspi;
> +		i2c0 = &i2c1;
> +	};
> +
> +	memory at 0 {
> +		device_type = "memory";
>   		#address-cells = <2>;
>   		#size-cells = <2>;
>   		bootph-all;
> @@ -121,6 +127,15 @@
>
>   &qspi {
>   	bootph-all;
> +	compatible = "cdns,qspi-nor";
> +	flash0: flash at 0 {
> +	};
> +};
> +
> +&flash0 {
> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +	compatible = "jedec,spi-nor";


upstream DTS has this compatible defined, so the overrides is redundant.


>   };
>
>   &rst {
> @@ -200,7 +215,6 @@
>
>   &usb0 {
>   	clocks = <&clkmgr N5X_USB_CLK>;
> -	disable-over-current;
>   	bootph-all;
>   };
>
> diff --git a/arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi b/arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi
> index bc2fb91dfb5..f013ed49cd3 100644
> --- a/arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi
> +++ b/arch/arm/dts/socfpga_n5x_socdk-u-boot.dtsi
> @@ -8,12 +8,11 @@
>   #include "socfpga_n5x-u-boot.dtsi"
>
>   /{
> -	aliases {
> -		spi0 = &qspi;
> -		i2c0 = &i2c1;
> +	chosen {
> +		u-boot,spl-boot-order = &mmc;
>   	};
>
> -	memory {
> +	memory at 0 {
>   		/*
>   		 * Memory type: DDR4 (non-interleaving mode)
>   		 * 16GB
> @@ -38,10 +37,21 @@
>   };
>
>   &flash0 {
> -	compatible = "jedec,spi-nor";
> +	reg = <0>;
>   	spi-tx-bus-width = <4>;
>   	spi-rx-bus-width = <4>;
> +	spi-max-frequency = <100000000>;
>   	bootph-all;
> +
> +	m25p,fast-read;
> +	cdns,page-size = <256>;
> +	cdns,block-size = <16>;
> +	cdns,read-delay = <1>;
> +	cdns,tshsl-ns = <50>;
> +	cdns,tsd2d-ns = <50>;
> +	cdns,tchsh-ns = <4>;
> +	cdns,tslch-ns = <4>;
> +	/delete-property/ cdns,read-delay;


This is contradictory. Setting a property and then deleting it in the 
same board overlay is nonsensical.

The intent is unclear, if read-delay should not be set, don't add it; if 
it should be set, don't delete it.


Best regards,

Tien Fong


More information about the U-Boot mailing list