/* Maintainer: Broadcom Corporation */
        .fixup = bcmring_fixup,
        .map_io = bcmring_map_io,
+       .init_early = bcmring_init_early,
        .init_irq = bcmring_init_irq,
        .timer = &bcmring_timer,
        .init_machine = bcmring_init_machine
 
 
        chipcHw_busInterfaceClockEnable(bus_clock);
 
-       clkdev_add_table(lookups, ARRAY_SIZE(lookups));
-
        for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
                struct amba_device *d = amba_devs[i];
                amba_device_register(d, &iomem_resource);
 struct sys_timer bcmring_timer = {
        .init = bcmring_init_timer,
 };
+
+void __init bcmring_init_early(void)
+{
+       clkdev_add_table(lookups, ARRAY_SIZE(lookups));
+}
 
 void __init bcmring_amba_init(void);
 void __init bcmring_map_io(void);
 void __init bcmring_init_irq(void);
+void __init bcmring_init_early(void);
 
 extern struct sys_timer bcmring_timer;
 #endif