]> git.sur5r.net Git - u-boot/blobdiff - drivers/core/fdtaddr.c
core: ofnode: Fix translation for #size-cells == 0
[u-boot] / drivers / core / fdtaddr.c
index 3847dd836e30540b8a03406f7c623fbbd1bc811b..9a3b4c312af9f8eba5f0d29c8e7a9fe8122dc151 100644 (file)
@@ -49,12 +49,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