]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/mips/txx9/rbtx4927/setup.c
[MIPS] TXx9: Make single kernel can support multiple boards
[linux-2.6-omap-h63xx.git] / arch / mips / txx9 / rbtx4927 / setup.c
index 86b870abc3198bfde5b17c8075eb1cd8848dbe8c..c3566c39c26cfa1845a32d4d13abe04e80ebc0f4 100644 (file)
@@ -49,7 +49,6 @@
 #include <linux/interrupt.h>
 #include <linux/pm.h>
 #include <linux/platform_device.h>
-#include <linux/clk.h>
 #include <linux/delay.h>
 
 #include <asm/bootinfo.h>
@@ -76,8 +75,6 @@ char *prom_getcmdline(void);
 
 static int tx4927_ccfg_toeon = 1;
 
-char *toshiba_name = "";
-
 #ifdef CONFIG_PCI
 static void __init tx4927_pci_setup(void)
 {
@@ -171,15 +168,15 @@ static void __init tx4937_pci_setup(void)
        }
 }
 
-static int __init rbtx4927_arch_init(void)
+static void __init rbtx4927_arch_init(void)
 {
        if (mips_machtype == MACH_TOSHIBA_RBTX4937)
                tx4937_pci_setup();
        else
                tx4927_pci_setup();
-       return 0;
 }
-arch_initcall(rbtx4927_arch_init);
+#else
+#define rbtx4927_arch_init NULL
 #endif /* CONFIG_PCI */
 
 static void __noreturn wait_forever(void)
@@ -223,14 +220,12 @@ void toshiba_rbtx4927_power_off(void)
        /* no return */
 }
 
-void __init plat_mem_setup(void)
+static void __init rbtx4927_mem_setup(void)
 {
        int i;
        u32 cp0_config;
        char *argptr;
 
-       printk("CPU is %s\n", toshiba_name);
-
        /* f/w leaves this on at startup */
        clear_c0_status(ST0_ERL);
 
@@ -323,7 +318,7 @@ void __init plat_mem_setup(void)
                        req.iotype = UPIO_MEM;
                        req.membase = (char *)(0xff1ff300 + i * 0x100);
                        req.mapbase = 0xff1ff300 + i * 0x100;
-                       req.irq = TX4927_IRQ_PIC_BEG + 8 + i;
+                       req.irq = TXX9_IRQ_BASE + TX4927_IR_SIO(i);
                        req.flags |= UPF_BUGGY_UART /*HAVE_CTS_LINE*/;
                        req.uartclk = 50000000;
                        early_serial_txx9_setup(&req);
@@ -352,7 +347,7 @@ void __init plat_mem_setup(void)
 #endif
 }
 
-void __init plat_time_init(void)
+static void __init rbtx4927_time_init(void)
 {
        mips_hpt_frequency = txx9_cpu_clock / 2;
        if (____raw_readq(&tx4927_ccfgptr->ccfg) & TX4927_CCFG_TINTDIS)
@@ -372,7 +367,6 @@ static int __init toshiba_rbtx4927_rtc_init(void)
                platform_device_register_simple("rtc-ds1742", -1, &res, 1);
        return IS_ERR(dev) ? PTR_ERR(dev) : 0;
 }
-device_initcall(toshiba_rbtx4927_rtc_init);
 
 static int __init rbtx4927_ne_init(void)
 {
@@ -391,7 +385,6 @@ static int __init rbtx4927_ne_init(void)
                                                res, ARRAY_SIZE(res));
        return IS_ERR(dev) ? PTR_ERR(dev) : 0;
 }
-device_initcall(rbtx4927_ne_init);
 
 /* Watchdog support */
 
@@ -411,36 +404,37 @@ static int __init rbtx4927_wdt_init(void)
 {
        return txx9_wdt_init(TX4927_TMR_REG(2) & 0xfffffffffULL);
 }
-device_initcall(rbtx4927_wdt_init);
-
-/* Minimum CLK support */
-
-struct clk *clk_get(struct device *dev, const char *id)
-{
-       if (!strcmp(id, "imbus_clk"))
-               return (struct clk *)50000000;
-       return ERR_PTR(-ENOENT);
-}
-EXPORT_SYMBOL(clk_get);
-
-int clk_enable(struct clk *clk)
-{
-       return 0;
-}
-EXPORT_SYMBOL(clk_enable);
 
-void clk_disable(struct clk *clk)
+static void __init rbtx4927_device_init(void)
 {
+       toshiba_rbtx4927_rtc_init();
+       rbtx4927_ne_init();
+       rbtx4927_wdt_init();
 }
-EXPORT_SYMBOL(clk_disable);
 
-unsigned long clk_get_rate(struct clk *clk)
-{
-       return (unsigned long)clk;
-}
-EXPORT_SYMBOL(clk_get_rate);
-
-void clk_put(struct clk *clk)
-{
-}
-EXPORT_SYMBOL(clk_put);
+struct txx9_board_vec rbtx4927_vec __initdata = {
+       .type = MACH_TOSHIBA_RBTX4927,
+       .system = "Toshiba RBTX4927",
+       .prom_init = rbtx4927_prom_init,
+       .mem_setup = rbtx4927_mem_setup,
+       .irq_setup = rbtx4927_irq_setup,
+       .time_init = rbtx4927_time_init,
+       .device_init = rbtx4927_device_init,
+       .arch_init = rbtx4927_arch_init,
+#ifdef CONFIG_PCI
+       .pci_map_irq = rbtx4927_pci_map_irq,
+#endif
+};
+struct txx9_board_vec rbtx4937_vec __initdata = {
+       .type = MACH_TOSHIBA_RBTX4937,
+       .system = "Toshiba RBTX4937",
+       .prom_init = rbtx4927_prom_init,
+       .mem_setup = rbtx4927_mem_setup,
+       .irq_setup = rbtx4927_irq_setup,
+       .time_init = rbtx4927_time_init,
+       .device_init = rbtx4927_device_init,
+       .arch_init = rbtx4927_arch_init,
+#ifdef CONFIG_PCI
+       .pci_map_irq = rbtx4927_pci_map_irq,
+#endif
+};