]> git.sur5r.net Git - u-boot/blobdiff - drivers/core/fdtaddr.c
SPDX: Convert all of our single license tags to Linux Kernel style
[u-boot] / drivers / core / fdtaddr.c
index 3847dd836e30540b8a03406f7c623fbbd1bc811b..528cf472960e0ffdc05571567788181f18f543bd 100644 (file)
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Device addresses
  *
@@ -5,8 +6,6 @@
  *
  * (C) Copyright 2012
  * Pavel Herrmann <morpheus.ibis@gmail.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -49,12 +48,17 @@ fdt_addr_t devfdt_get_addr_index(struct udevice *dev, int index)
 
                reg += index * (na + ns);
 
-               /*
-                * Use the full-fledged translate function for complex
-                * bus setups.
-                */
-               addr = fdt_translate_address((void *)gd->fdt_blob,
-                                            dev_of_offset(dev), reg);
+               if (ns) {
+                       /*
+                        * Use the full-fledged translate function for complex
+                        * bus setups.
+                        */
+                       addr = fdt_translate_address((void *)gd->fdt_blob,
+                                                    dev_of_offset(dev), reg);
+               } else {
+                       /* Non translatable if #size-cells == 0 */
+                       addr = fdt_read_number(reg, na);
+               }
        } else {
                /*
                 * Use the "simple" translate function for less complex