]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/mips/txx9/jmr3927/setup.c
[MIPS] TXx9: Cleanup restart/halt/power_off
[linux-2.6-omap-h63xx.git] / arch / mips / txx9 / jmr3927 / setup.c
index 128a4ae3e72eb67f35a4ac7abe1debaab68d1f73..fa0503efc840528fbc144f31bedf34ac479d8d9c 100644 (file)
 #include <linux/types.h>
 #include <linux/ioport.h>
 #include <linux/delay.h>
-#include <linux/pm.h>
 #include <linux/platform_device.h>
 #include <linux/gpio.h>
 #ifdef CONFIG_SERIAL_TXX9
 #include <linux/serial_core.h>
 #endif
-
-#include <asm/bootinfo.h>
 #include <asm/txx9tmr.h>
 #include <asm/txx9pio.h>
 #include <asm/reboot.h>
 #include <asm/txx9/jmr3927.h>
 #include <asm/mipsregs.h>
 
-extern void puts(const char *cp);
-
 /* don't enable - see errata */
 static int jmr3927_ccfg_toeon;
 
-static inline void do_reset(void)
+static void jmr3927_machine_restart(char *command)
 {
+       local_irq_disable();
 #if 1  /* Resetting PCI bus */
        jmr3927_ioc_reg_out(0, JMR3927_IOC_RESET_ADDR);
        jmr3927_ioc_reg_out(JMR3927_IOC_RESET_PCI, JMR3927_IOC_RESET_ADDR);
@@ -63,31 +59,14 @@ static inline void do_reset(void)
        jmr3927_ioc_reg_out(0, JMR3927_IOC_RESET_ADDR);
 #endif
        jmr3927_ioc_reg_out(JMR3927_IOC_RESET_CPU, JMR3927_IOC_RESET_ADDR);
-}
-
-static void jmr3927_machine_restart(char *command)
-{
-       local_irq_disable();
-       puts("Rebooting...");
-       do_reset();
-}
-
-static void jmr3927_machine_halt(void)
-{
-       puts("JMR-TX3927 halted.\n");
-       while (1);
-}
-
-static void jmr3927_machine_power_off(void)
-{
-       puts("JMR-TX3927 halted. Please turn off the power.\n");
-       while (1);
+       /* fallback */
+       (*_machine_halt)();
 }
 
 static void __init jmr3927_time_init(void)
 {
        txx9_clockevent_init(TX3927_TMR_REG(0),
-                            TXX9_IRQ_BASE + JMR3927_IRQ_IRC_TMR(0),
+                            JMR3927_IRQ_IRC_TMR(0),
                             JMR3927_IMCLK);
        txx9_clocksource_init(TX3927_TMR_REG(1), JMR3927_IMCLK);
 }
@@ -95,7 +74,6 @@ static void __init jmr3927_time_init(void)
 #define DO_WRITE_THROUGH
 #define DO_ENABLE_CACHE
 
-extern char * __init prom_getcmdline(void);
 static void jmr3927_board_init(void);
 
 static void __init jmr3927_mem_setup(void)
@@ -105,16 +83,6 @@ static void __init jmr3927_mem_setup(void)
        set_io_port_base(JMR3927_PORT_BASE + JMR3927_PCIIO);
 
        _machine_restart = jmr3927_machine_restart;
-       _machine_halt = jmr3927_machine_halt;
-       pm_power_off = jmr3927_machine_power_off;
-
-       /*
-        * IO/MEM resources.
-        */
-       ioport_resource.start = 0;
-       ioport_resource.end = 0xffffffff;
-       iomem_resource.start = 0;
-       iomem_resource.end = 0xffffffff;
 
        /* Reboot on panic */
        panic_timeout = 180;
@@ -210,6 +178,7 @@ static void __init jmr3927_pci_setup(void)
                jmr3927_ioc_reg_out(0, JMR3927_IOC_RESET_ADDR);
        }
        tx3927_pcic_setup(c, JMR3927_SDRAM_SIZE, extarb);
+       tx3927_setup_pcierr_irq();
 #endif /* CONFIG_PCI */
 }
 
@@ -315,7 +284,7 @@ static void __init tx3927_setup(void)
 }
 
 /* This trick makes rtc-ds1742 driver usable as is. */
-unsigned long __swizzle_addr_b(unsigned long port)
+static unsigned long jmr3927_swizzle_addr_b(unsigned long port)
 {
        if ((port & 0xffff0000) != JMR3927_IOC_NVRAMB_ADDR)
                return port;
@@ -326,7 +295,6 @@ unsigned long __swizzle_addr_b(unsigned long port)
        return port | 1;
 #endif
 }
-EXPORT_SYMBOL(__swizzle_addr_b);
 
 static int __init jmr3927_rtc_init(void)
 {
@@ -361,12 +329,12 @@ static int __init jmr3927_wdt_init(void)
 
 static void __init jmr3927_device_init(void)
 {
+       __swizzle_addr_b = jmr3927_swizzle_addr_b;
        jmr3927_rtc_init();
        jmr3927_wdt_init();
 }
 
 struct txx9_board_vec jmr3927_vec __initdata = {
-       .type = MACH_TOSHIBA_JMR3927,
        .system = "Toshiba JMR_TX3927",
        .prom_init = jmr3927_prom_init,
        .mem_setup = jmr3927_mem_setup,