diff --git a/common/fdt_support.c b/common/fdt_support.c
index 698abf7b23fb740f2fc9ab1a42fcdafaff466457..abf6d5378101c2aef2406b427b19eb8b10ee7e23 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -1182,14 +1182,11 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
  */
 int fdt_alloc_phandle(void *blob)
 {
-	int offset, len, phandle = 0;
-	const u32 *val;
+	int offset, phandle = 0;
 
 	for (offset = fdt_next_node(blob, -1, NULL); offset >= 0;
 	     offset = fdt_next_node(blob, offset, NULL)) {
-		val = fdt_getprop(blob, offset, "linux,phandle", &len);
-		if (val)
-			phandle = max(*val, phandle);
+		phandle = max(phandle, fdt_get_phandle(blob, offset));
 	}
 
 	return phandle + 1;