]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/platforms/8xx/m8xx_setup.c
Merge branch 'linux-2.6'
[linux-2.6-omap-h63xx.git] / arch / powerpc / platforms / 8xx / m8xx_setup.c
index 0901dbada3500e085be2ddf26f882e6384c56371..ba645c2b63f62f61677eecb85a9abacbcf79b329 100644 (file)
  * bootup setup stuff..
  */
 
-#include <linux/errno.h>
-#include <linux/sched.h>
 #include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/stddef.h>
-#include <linux/unistd.h>
-#include <linux/ptrace.h>
 #include <linux/slab.h>
-#include <linux/user.h>
-#include <linux/a.out.h>
-#include <linux/tty.h>
-#include <linux/major.h>
 #include <linux/interrupt.h>
-#include <linux/reboot.h>
 #include <linux/init.h>
-#include <linux/initrd.h>
-#include <linux/ioport.h>
-#include <linux/bootmem.h>
-#include <linux/seq_file.h>
-#include <linux/root_dev.h>
 #include <linux/time.h>
 #include <linux/rtc.h>
 
-#include <asm/mmu.h>
-#include <asm/reg.h>
-#include <asm/residual.h>
 #include <asm/io.h>
-#include <asm/pgtable.h>
 #include <asm/mpc8xx.h>
 #include <asm/8xx_immap.h>
-#include <asm/machdep.h>
-#include <asm/bootinfo.h>
-#include <asm/time.h>
 #include <asm/prom.h>
 #include <asm/fs_pd.h>
 #include <mm/mmu_decl.h>
 
-#include "sysdev/mpc8xx_pic.h"
+#include <sysdev/mpc8xx_pic.h>
+#include <sysdev/commproc.h>
+
+#ifdef CONFIG_PCMCIA_M8XX
+struct mpc8xx_pcmcia_ops m8xx_pcmcia_ops;
+#endif
 
 void m8xx_calibrate_decr(void);
-extern void m8xx_wdt_handler_install(bd_t *bp);
 extern int cpm_pic_init(void);
 extern int cpm_get_irq(void);
 
 /* A place holder for time base interrupts, if they are ever enabled. */
-irqreturn_t timebase_interrupt(int irq, void * dev)
+static irqreturn_t timebase_interrupt(int irq, void *dev)
 {
        printk ("timebase_interrupt()\n");
 
@@ -72,7 +53,7 @@ static struct irqaction tbint_irqaction = {
 void __init __attribute__ ((weak))
 init_internal_rtc(void)
 {
-       sit8xx_t *sys_tmr = (sit8xx_t *) immr_map(im_sit);
+       sit8xx_t __iomem *sys_tmr = immr_map(im_sit);
 
        /* Disable the RTC one second and alarm interrupts. */
        clrbits16(&sys_tmr->sit_rtcsc, (RTCSC_SIE | RTCSC_ALE));
@@ -84,24 +65,24 @@ init_internal_rtc(void)
 
 static int __init get_freq(char *name, unsigned long *val)
 {
-        struct device_node *cpu;
-        const unsigned int *fp;
-        int found = 0;
+       struct device_node *cpu;
+       const unsigned int *fp;
+       int found = 0;
 
-        /* The cpu node should have timebase and clock frequency properties */
-        cpu = of_find_node_by_type(NULL, "cpu");
+       /* The cpu node should have timebase and clock frequency properties */
+       cpu = of_find_node_by_type(NULL, "cpu");
 
-        if (cpu) {
-                fp = of_get_property(cpu, name, NULL);
-                if (fp) {
-                        found = 1;
-                        *val = *fp;
-                }
+       if (cpu) {
+               fp = of_get_property(cpu, name, NULL);
+               if (fp) {
+                       found = 1;
+                       *val = *fp;
+               }
 
-                of_node_put(cpu);
-        }
+               of_node_put(cpu);
+       }
 
-        return found;
+       return found;
 }
 
 /* The decrementer counts at the system (internal) clock frequency divided by
@@ -111,13 +92,13 @@ static int __init get_freq(char *name, unsigned long *val)
 void __init mpc8xx_calibrate_decr(void)
 {
        struct device_node *cpu;
-       cark8xx_t *clk_r1;
-       car8xx_t *clk_r2;
-       sitk8xx_t *sys_tmr1;
-       sit8xx_t *sys_tmr2;
+       cark8xx_t __iomem *clk_r1;
+       car8xx_t __iomem *clk_r2;
+       sitk8xx_t __iomem *sys_tmr1;
+       sit8xx_t __iomem *sys_tmr2;
        int irq, virq;
 
-        clk_r1 = (cark8xx_t *) immr_map(im_clkrstk);
+       clk_r1 = immr_map(im_clkrstk);
 
        /* Unlock the SCCR. */
        out_be32(&clk_r1->cark_sccrk, ~KAPWR_KEY);
@@ -125,24 +106,24 @@ void __init mpc8xx_calibrate_decr(void)
        immr_unmap(clk_r1);
 
        /* Force all 8xx processors to use divide by 16 processor clock. */
-        clk_r2 = (car8xx_t *) immr_map(im_clkrst);
+       clk_r2 = immr_map(im_clkrst);
        setbits32(&clk_r2->car_sccr, 0x02000000);
        immr_unmap(clk_r2);
 
        /* Processor frequency is MHz.
         */
-        ppc_tb_freq = 50000000;
-        if (!get_freq("bus-frequency", &ppc_tb_freq)) {
-                printk(KERN_ERR "WARNING: Estimating decrementer frequency "
-                                "(not found)\n");
-        }
-        ppc_tb_freq /= 16;
-        ppc_proc_freq = 50000000;
-        if (!get_freq("clock-frequency", &ppc_proc_freq))
-                printk(KERN_ERR "WARNING: Estimating processor frequency"
-                                "(not found)\n");
-
-        printk("Decrementer Frequency = 0x%lx\n", ppc_tb_freq);
+       ppc_tb_freq = 50000000;
+       if (!get_freq("bus-frequency", &ppc_tb_freq)) {
+               printk(KERN_ERR "WARNING: Estimating decrementer frequency "
+                               "(not found)\n");
+       }
+       ppc_tb_freq /= 16;
+       ppc_proc_freq = 50000000;
+       if (!get_freq("clock-frequency", &ppc_proc_freq))
+               printk(KERN_ERR "WARNING: Estimating processor frequency "
+                               "(not found)\n");
+
+       printk("Decrementer Frequency = 0x%lx\n", ppc_tb_freq);
 
        /* Perform some more timer/timebase initialization.  This used
         * to be done elsewhere, but other changes caused it to get
@@ -159,7 +140,7 @@ void __init mpc8xx_calibrate_decr(void)
         * we guarantee the registers are locked, then we unlock them
         * for our use.
         */
-        sys_tmr1 = (sitk8xx_t *) immr_map(im_sitk);
+       sys_tmr1 = immr_map(im_sitk);
        out_be32(&sys_tmr1->sitk_tbscrk, ~KAPWR_KEY);
        out_be32(&sys_tmr1->sitk_rtcsck, ~KAPWR_KEY);
        out_be32(&sys_tmr1->sitk_tbk, ~KAPWR_KEY);
@@ -175,24 +156,17 @@ void __init mpc8xx_calibrate_decr(void)
         * we have to enable the timebase).  The decrementer interrupt
         * is wired into the vector table, nothing to do here for that.
         */
-        cpu = of_find_node_by_type(NULL, "cpu");
-        virq= irq_of_parse_and_map(cpu, 0);
+       cpu = of_find_node_by_type(NULL, "cpu");
+       virq= irq_of_parse_and_map(cpu, 0);
        irq = irq_map[virq].hwirq;
 
-       sys_tmr2 = (sit8xx_t *) immr_map(im_sit);
+       sys_tmr2 = immr_map(im_sit);
        out_be16(&sys_tmr2->sit_tbscr, ((1 << (7 - (irq/2))) << 8) |
                                        (TBSCR_TBF | TBSCR_TBE));
        immr_unmap(sys_tmr2);
 
        if (setup_irq(virq, &tbint_irqaction))
                panic("Could not allocate timer IRQ!");
-
-#ifdef CONFIG_8xx_WDT
-       /* Install watchdog timer handler early because it might be
-        * already enabled by the bootloader
-        */
-       m8xx_wdt_handler_install(binfo);
-#endif
 }
 
 /* The RTC on the MPC8xx is an internal register.
@@ -202,14 +176,14 @@ void __init mpc8xx_calibrate_decr(void)
 
 int mpc8xx_set_rtc_time(struct rtc_time *tm)
 {
-       sitk8xx_t *sys_tmr1;
-       sit8xx_t *sys_tmr2;
+       sitk8xx_t __iomem *sys_tmr1;
+       sit8xx_t __iomem *sys_tmr2;
        int time;
 
-        sys_tmr1 = (sitk8xx_t *) immr_map(im_sitk);
-       sys_tmr2 = (sit8xx_t *) immr_map(im_sit);
+       sys_tmr1 = immr_map(im_sitk);
+       sys_tmr2 = immr_map(im_sit);
        time = mktime(tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday,
-                      tm->tm_hour, tm->tm_min, tm->tm_sec);
+                     tm->tm_hour, tm->tm_min, tm->tm_sec);
 
        out_be32(&sys_tmr1->sitk_rtck, KAPWR_KEY);
        out_be32(&sys_tmr2->sit_rtc, time);
@@ -223,21 +197,20 @@ int mpc8xx_set_rtc_time(struct rtc_time *tm)
 void mpc8xx_get_rtc_time(struct rtc_time *tm)
 {
        unsigned long data;
-       sit8xx_t *sys_tmr = (sit8xx_t *) immr_map(im_sit);
+       sit8xx_t __iomem *sys_tmr = immr_map(im_sit);
 
        /* Get time from the RTC. */
        data = in_be32(&sys_tmr->sit_rtc);
        to_tm(data, tm);
-        tm->tm_year -= 1900;
-        tm->tm_mon -= 1;
+       tm->tm_year -= 1900;
+       tm->tm_mon -= 1;
        immr_unmap(sys_tmr);
        return;
 }
 
 void mpc8xx_restart(char *cmd)
 {
-       __volatile__ unsigned char dummy;
-       car8xx_t * clk_r = (car8xx_t *) immr_map(im_clkrst);
+       car8xx_t __iomem *clk_r = immr_map(im_clkrst);
 
 
        local_irq_disable();
@@ -247,26 +220,8 @@ void mpc8xx_restart(char *cmd)
        */
        mtmsr(mfmsr() & ~0x1000);
 
-       dummy = in_8(&clk_r->res[0]);
-       printk("Restart failed\n");
-       while(1);
-}
-
-void mpc8xx_show_cpuinfo(struct seq_file *m)
-{
-       struct device_node *root;
-       uint memsize = total_memory;
-       const char *model = "";
-
-       seq_printf(m, "Vendor\t\t: Freescale Semiconductor\n");
-
-       root = of_find_node_by_path("/");
-       if (root)
-               model = of_get_property(root, "model", NULL);
-       seq_printf(m, "Machine\t\t: %s\n", model);
-       of_node_put(root);
-
-       seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024));
+       in_8(&clk_r->res[0]);
+       panic("Restart failed\n");
 }
 
 static void cpm_cascade(unsigned int irq, struct irq_desc *desc)
@@ -293,7 +248,7 @@ void __init m8xx_pic_init(void)
        int irq;
 
        if (mpc8xx_pic_init()) {
-                printk(KERN_ERR "Failed interrupt 8xx controller  initialization\n");
+               printk(KERN_ERR "Failed interrupt 8xx controller  initialization\n");
                return;
        }