diff -drupN a/drivers/of/platform.c b/drivers/of/platform.c
--- a/drivers/of/platform.c	2018-08-06 17:23:04.000000000 +0300
+++ b/drivers/of/platform.c	2022-06-12 05:28:14.000000000 +0300
@@ -78,6 +78,22 @@ void of_device_make_bus_id(struct device
 	struct device_node *node = dev->of_node;
 	const __be32 *reg;
 	u64 addr;
+	const char __maybe_unused *name;
+
+#if defined(CONFIG_ARCH_SUNXI)
+	/*
+	 * In sunxi platform, we have used "device_type" property as an unique
+	 * name for each platform device.
+	 */
+	name = of_get_property(node, "device_name", NULL);
+	if (!name)
+		name = of_get_property(node, "device_type", NULL);
+
+	if (name) {
+		dev_set_name(dev, "%s", name);
+		return;
+	}
+#endif
 
 	/* Construct the name, using parent nodes if necessary to ensure uniqueness */
 	while (node->parent) {