Use the new fdtdec_find_aliases() function instead of
fdtdec_next_alias() to locate our USB nodes.

As this example shows, the impact on drivers should be minimal.

Signed-off-by: Simon Glass <s...@chromium.org>
---
 arch/arm/cpu/armv7/tegra2/usb.c |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/arch/arm/cpu/armv7/tegra2/usb.c b/arch/arm/cpu/armv7/tegra2/usb.c
index 215d0d3..5b2bd7e 100644
--- a/arch/arm/cpu/armv7/tegra2/usb.c
+++ b/arch/arm/cpu/armv7/tegra2/usb.c
@@ -395,21 +395,20 @@ int fdt_decode_usb(const void *blob, int node, unsigned 
osc_frequency_mhz,
 int board_usb_init(const void *blob)
 {
        struct fdt_usb config;
-       int node, upto = 0;
        unsigned osc_freq = clock_get_rate(CLOCK_ID_OSC);
        enum clock_osc_freq freq;
+       int node_list[USB_PORTS_MAX];
+       int node, count, i;
 
        /* Set up the USB clocks correctly based on our oscillator frequency */
        freq = clock_get_osc_freq();
        config_clock(usb_pll[freq]);
 
-       do {
-               node = fdtdec_next_alias(blob, "usb",
-                                        COMPAT_NVIDIA_TEGRA20_USB, &upto);
-               if (node < 0) {
-                       debug("Cannot find usb%d alias in fdt\n", upto);
-                       break;
-               }
+       /* count may return <0 on error */
+       count = fdtdec_find_aliases(blob, "usb", COMPAT_NVIDIA_TEGRA20_USB,
+                                   node_list, USB_PORTS_MAX);
+       for (i = 0; i < count; i++) {
+               node = node_list[i];
                if (fdt_decode_usb(blob, node, osc_freq, &config)) {
                        debug("Cannot decode USB node %s\n",
                              fdt_get_name(blob, node, NULL));
@@ -423,7 +422,7 @@ int board_usb_init(const void *blob)
 
                if (add_port(&config, usb_pll[freq]))
                        return -1;
-       } while (node);
+       }
        usb_set_host_mode();
        port_current = -1;
        return 0;
-- 
1.7.3.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to