OSDN Git Service

Clock framework support
[uclinux-h8/linux.git] / arch / h8300 / kernel / setup.c
index be469a3..8eaae17 100644 (file)
 
 #if defined(CONFIG_CPU_H8300H)
 #define CPU "H8/300H"
-#include <asm/regs306x.h>
-#endif
-
-#if defined(CONFIG_CPU_H8S)
+#elif defined(CONFIG_CPU_H8S)
 #define CPU "H8S"
-#include <asm/regs267x.h>
+#else
+#define CPU "Unknown"
 #endif
 
 struct bootparams bootparams;
@@ -46,8 +44,12 @@ unsigned long memory_end;
 char __initdata command_line[COMMAND_LINE_SIZE];
 
 extern unsigned long _ramend;
-void early_device_register(void);
 void sim_console_register(void);
+int h8300_clk_init(unsigned long hz);
+
+void __init __attribute__((weak)) early_device_init(void)
+{
+}
 
 void __init setup_arch(char **cmdline_p)
 {
@@ -92,7 +94,8 @@ void __init setup_arch(char **cmdline_p)
        free_bootmem(memory_start, memory_end - memory_start);
        reserve_bootmem(memory_start, bootmap_size, BOOTMEM_DEFAULT);
 
-       early_device_register();
+       h8300_clk_init(bootparams.clock_freq);
+       early_device_init();
 #if defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)
        sim_console_register();
 #endif
@@ -109,25 +112,22 @@ void __init setup_arch(char **cmdline_p)
 
 static int show_cpuinfo(struct seq_file *m, void *v)
 {
-    char *cpu;
-    int mode;
-    u_long clockfreq;
-
-    cpu = CPU;
-    mode = *(volatile unsigned char *)MDCR & 0x07;
+       char *cpu;
+       u_long clockfreq;
 
-    clockfreq = bootparams.clock_freq;
+       cpu = CPU;
+       clockfreq = bootparams.clock_freq;
 
-    seq_printf(m,  "CPU:\t\t%s (mode:%d)\n"
+       seq_printf(m,  "CPU:\t\t%s\n"
                   "Clock:\t\t%lu.%1luMHz\n"
                   "BogoMips:\t%lu.%02lu\n"
                   "Calibration:\t%lu loops\n",
-                  cpu,mode,
+                  cpu,
                   clockfreq/1000,clockfreq%1000,
                   (loops_per_jiffy*HZ)/500000,((loops_per_jiffy*HZ)/5000)%100,
                   (loops_per_jiffy*HZ));
 
-    return 0;
+       return 0;
 }
 
 static void *c_start(struct seq_file *m, loff_t *pos)