* GE00
  ****************************************************************************/
 struct mv643xx_eth_shared_platform_data kirkwood_ge00_shared_data = {
-       .t_clk          = KIRKWOOD_TCLK,
        .dram           = &kirkwood_mbus_dram_info,
 };
 
  * SPI
  ****************************************************************************/
 static struct orion_spi_info kirkwood_spi_plat_data = {
-       .tclk           = KIRKWOOD_TCLK,
 };
 
 static struct resource kirkwood_spi_resources[] = {
                .flags          = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
                .iotype         = UPIO_MEM,
                .regshift       = 2,
-               .uartclk        = KIRKWOOD_TCLK,
+               .uartclk        = 0,
        }, {
        },
 };
                .flags          = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
                .iotype         = UPIO_MEM,
                .regshift       = 2,
-               .uartclk        = KIRKWOOD_TCLK,
+               .uartclk        = 0,
        }, {
        },
 };
 /*****************************************************************************
  * Time handling
  ****************************************************************************/
+int kirkwood_tclk;
+
+int __init kirkwood_find_tclk(void)
+{
+       return 166666667;
+}
+
 static void kirkwood_timer_init(void)
 {
-       orion_time_init(IRQ_KIRKWOOD_BRIDGE, KIRKWOOD_TCLK);
+       kirkwood_tclk = kirkwood_find_tclk();
+       orion_time_init(IRQ_KIRKWOOD_BRIDGE, kirkwood_tclk);
 }
 
 struct sys_timer kirkwood_timer = {
 void __init kirkwood_init(void)
 {
        printk(KERN_INFO "Kirkwood: %s, TCLK=%d.\n",
-               kirkwood_id(), KIRKWOOD_TCLK);
+               kirkwood_id(), kirkwood_tclk);
+       kirkwood_ge00_shared_data.t_clk = kirkwood_tclk;
+       kirkwood_spi_plat_data.tclk = kirkwood_tclk;
+       kirkwood_uart0_data[0].uartclk = kirkwood_tclk;
+       kirkwood_uart1_data[0].uartclk = kirkwood_tclk;
 
        kirkwood_setup_cpu_mbus();