[PATCH] ARM: dts: pxa1908: convert to OF_UPSTREAM

Duje Mihanović duje at dujemihanovic.xyz
Sat Aug 16 21:35:19 CEST 2025


Convert the PXA1908 platform and its coreprimevelte board to OF_UPSTREAM
and enable the few drivers found in the upstream DTS.

Signed-off-by: Duje Mihanović <duje at dujemihanovic.xyz>
---
Important note: The PXA1908 DTs were merged into Linux during the v6.17
merge window. Thus, it depends on the v6.17-rc1-dts subtree tag being
merged. I'm sending this now just so that any eventual feedback can be
addressed in time for the v6.17 release.
---
 arch/arm/Kconfig                                   |   1 +
 .../dts/pxa1908-samsung-coreprimevelte-u-boot.dtsi |  20 ++++
 arch/arm/dts/pxa1908-samsung-coreprimevelte.dts    |  74 --------------
 arch/arm/dts/pxa1908.dtsi                          | 106 ---------------------
 configs/coreprimevelte_defconfig                   |   7 +-
 5 files changed, 27 insertions(+), 181 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 40368abc297ec4748b3b3731e485dca3b53b8897..2a3ff2108c1d2255c47604d21783e6548773e68f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -882,6 +882,7 @@ config ARCH_MMP
 	select OF_CONTROL
 	select SAVE_PREV_BL_FDT_ADDR
 	select SAVE_PREV_BL_INITRAMFS_START_ADDR
+	imply OF_UPSTREAM
 
 config ARCH_LPC32XX
 	bool "NXP LPC32xx platform"
diff --git a/arch/arm/dts/pxa1908-samsung-coreprimevelte-u-boot.dtsi b/arch/arm/dts/pxa1908-samsung-coreprimevelte-u-boot.dtsi
new file mode 100644
index 0000000000000000000000000000000000000000..2e5ec5c597d426e6394a0203eeda68939ca726f5
--- /dev/null
+++ b/arch/arm/dts/pxa1908-samsung-coreprimevelte-u-boot.dtsi
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2025 Duje Mihanović <duje at dujemihanovic.xyz>
+ */
+
+/ {
+	pxa,rev-id = <3928 0>, <3928 1>, <3928 2>;
+
+	memory at 0 {
+		reg = <0 0x1000000 0 0x3f000000>;
+	};
+};
+
+&uart0 {
+	clock-frequency = <14745600>;
+};
+
+&pmx {
+	compatible = "marvell,pxa1908-padconf", "pinctrl-single";
+};
diff --git a/arch/arm/dts/pxa1908-samsung-coreprimevelte.dts b/arch/arm/dts/pxa1908-samsung-coreprimevelte.dts
deleted file mode 100644
index 588e39e92650f9217e02bb332dcdcd5f74cc7fce..0000000000000000000000000000000000000000
--- a/arch/arm/dts/pxa1908-samsung-coreprimevelte.dts
+++ /dev/null
@@ -1,74 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-#include "pxa1908.dtsi"
-
-/ {
-	pxa,rev-id = <3928 2>;
-	model = "Samsung Galaxy Core Prime VE LTE";
-	compatible = "samsung,coreprimevelte", "marvell,pxa1908";
-
-	aliases {
-		serial0 = &uart0;
-	};
-
-	chosen {
-		#address-cells = <2>;
-		#size-cells = <2>;
-		ranges;
-
-		stdout-path = "serial0:115200n8";
-
-		/* S-Boot places the initramfs here */
-		linux,initrd-start = <0x4d70000>;
-		linux,initrd-end = <0x5000000>;
-
-		fb0: framebuffer at 17177000 {
-			compatible = "simple-framebuffer";
-			reg = <0 0x17177000 0 (480 * 800 * 4)>;
-			width = <480>;
-			height = <800>;
-			stride = <(480 * 4)>;
-			format = "a8r8g8b8";
-		};
-	};
-
-	memory {
-		device_type = "memory";
-		reg = <0 0x1000000 0 0x3f000000>;
-	};
-
-	reserved-memory {
-		#address-cells = <2>;
-		#size-cells = <2>;
-		ranges;
-
-		framebuffer at 17000000 {
-			reg = <0 0x17000000 0 0x1800000>;
-			no-map;
-		};
-
-		gpu at 9000000 {
-			reg = <0 0x9000000 0 0x1000000>;
-		};
-
-		/* Communications processor, aka modem */
-		cp at 5000000 {
-			reg = <0 0x5000000 0 0x3000000>;
-		};
-
-		cm3 at a000000 {
-			reg = <0 0xa000000 0 0x80000>;
-		};
-
-		seclog at 8000000 {
-			reg = <0 0x8000000 0 0x100000>;
-		};
-
-		ramoops at 8100000 {
-			compatible = "ramoops";
-			reg = <0 0x8100000 0 0x40000>;
-			record-size = <0x8000>;
-			console-size = <0x20000>;
-			max-reason = <5>;
-		};
-	};
-};
diff --git a/arch/arm/dts/pxa1908.dtsi b/arch/arm/dts/pxa1908.dtsi
deleted file mode 100644
index e8ec2606c2515ee2031004ab3102fec37b7d4b87..0000000000000000000000000000000000000000
--- a/arch/arm/dts/pxa1908.dtsi
+++ /dev/null
@@ -1,106 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/dts-v1/;
-
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-
-/ {
-	model = "Marvell Armada PXA1908";
-	compatible = "marvell,pxa1908";
-	#address-cells = <2>;
-	#size-cells = <2>;
-	interrupt-parent = <&gic>;
-
-	cpus {
-		#address-cells = <2>;
-		#size-cells = <0>;
-
-		cpu0: cpu at 0 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a53";
-			reg = <0 0>;
-			enable-method = "psci";
-		};
-
-		cpu1: cpu at 1 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a53";
-			reg = <0 1>;
-			enable-method = "psci";
-		};
-
-		cpu2: cpu at 2 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a53";
-			reg = <0 2>;
-			enable-method = "psci";
-		};
-
-		cpu3: cpu at 3 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a53";
-			reg = <0 3>;
-			enable-method = "psci";
-		};
-	};
-
-	psci {
-		compatible = "arm,psci-0.2";
-		method = "smc";
-	};
-
-	timer {
-		compatible = "arm,armv8-timer";
-		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-			<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-			<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-			<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-	};
-
-	soc {
-		compatible = "simple-bus";
-		#address-cells = <2>;
-		#size-cells = <2>;
-		ranges;
-
-		gic: interrupt-controller at d1df9000 {
-			compatible = "arm,gic-400";
-			reg = <0 0xd1df9000 0 0x1000>,
-				<0 0xd1dfa000 0 0x2000>,
-				/* The subsequent registers are guesses. */
-				<0 0xd1dfc000 0 0x2000>,
-				<0 0xd1dfe000 0 0x2000>;
-			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-			interrupt-controller;
-			#interrupt-cells = <3>;
-		};
-
-		apb at d4000000 {
-			compatible = "simple-bus";
-			reg = <0 0xd4000000 0 0x200000>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges = <0 0 0xd4000000 0x200000>;
-
-			uart0: serial at 17000 {
-				compatible = "mrvl,mmp-uart", "intel,xscale-uart";
-				reg = <0x17000 0x1000>;
-				clock-frequency = <14745600>;
-				reg-shift = <2>;
-			};
-
-			uart1: serial at 18000 {
-				compatible = "mrvl,mmp-uart", "intel,xscale-uart";
-				reg = <0x18000 0x1000>;
-				clock-frequency = <14745600>;
-				reg-shift = <2>;
-			};
-
-			uart2: serial at 36000 {
-				compatible = "mrvl,mmp-uart", "intel,xscale-uart";
-				reg = <0x36000 0x1000>;
-				clock-frequency = <117000000>;
-				reg-shift = <2>;
-			};
-		};
-	};
-};
diff --git a/configs/coreprimevelte_defconfig b/configs/coreprimevelte_defconfig
index 05116669200b3f1393518c8f9d1d0d5b9f90db6f..c4cd9d2dc01e49d4f02c3e8f6ccfdcfe18909915 100644
--- a/configs/coreprimevelte_defconfig
+++ b/configs/coreprimevelte_defconfig
@@ -5,7 +5,7 @@ CONFIG_ARCH_CPU_INIT=y
 CONFIG_ARCH_MMP=y
 CONFIG_TEXT_BASE=0x1000000
 CONFIG_NR_DRAM_BANKS=2
-CONFIG_DEFAULT_DEVICE_TREE="pxa1908-samsung-coreprimevelte"
+CONFIG_DEFAULT_DEVICE_TREE="marvell/mmp/pxa1908-samsung-coreprimevelte"
 CONFIG_TARGET_COREPRIMEVELTE=y
 CONFIG_SYS_LOAD_ADDR=0x1000000
 CONFIG_ARMV8_PSCI=y
@@ -14,5 +14,10 @@ CONFIG_FIT=y
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_DM=y
 CONFIG_OF_BOARD=y
+CONFIG_PINCTRL=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL_SINGLE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SYS_NS16550_MEM32=y
+CONFIG_VIDEO=y
+CONFIG_VIDEO_SIMPLE=y

---
base-commit: a80bfe1a849a5f2b63c55057fd4f77db89a19fe6
change-id: 20250816-pxa1908-upstream-5963cfe7cb15

Best regards,
-- 
Duje Mihanović <duje at dujemihanovic.xyz>



More information about the U-Boot mailing list