enable start-stop-daemon by default, i want to use this to clean up a few init script...
[openwrt/staging/wigyori.git] / target / linux / adm5120-2.6 / files / arch / mips / adm5120 / setup.c
index 1b99d7799aa391e05aa9478d185902f46cce7350..ed7966b41ad8ed3bc66895e6453c44489cfa9378 100644 (file)
@@ -1,66 +1,69 @@
 /*
- *     Copyright (C) ADMtek Incorporated.
- *             Creator : daniell@admtek.com.tw
- *     Copyright 1999, 2000 MIPS Technologies, Inc.
- *     Copyright Jeroen Vreeken (pe1rxq@amsat.org), 2005
+ *  $Id$
+ *
+ *  ADM5120 specific setup
+ *
+ *  Copyright (C) ADMtek Incorporated.
+ *  Copyright (C) 2005 Jeroen Vreeken (pe1rxq@amsat.org)
+ *  Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org>
+ *  Copyright (C) 2007 OpenWrt.org
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  as published by the Free Software Foundation; either version 2
+ *  of the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the
+ *  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA  02110-1301, USA.
+ *
  */
 
-#include <linux/autoconf.h>
 #include <linux/init.h>
-#include <linux/device.h>
-#include <linux/platform_device.h>
+#include <linux/kernel.h>
 
 #include <asm/reboot.h>
 #include <asm/io.h>
 #include <asm/time.h>
 
-#include <adm5120_info.h>
-
-#define ADM5120_SOFTRESET      0x12000004
-#define STATUS_IE              0x00000001
-#define ALLINTS (IE_IRQ0 | IE_IRQ5 | STATUS_IE)
-
-void  mips_time_init(void);
-
-extern unsigned int mips_counter_frequency;
-
-void adm5120_restart(char *command)
-{
-       *(u32*)KSEG1ADDR(ADM5120_SOFTRESET)=1;
-}
-
-
-void adm5120_halt(void)
-{
-        printk(KERN_NOTICE "\n** You can safely turn off the power\n");
-        while (1);
-}
-
-
-void adm5120_power_off(void)
-{
-        adm5120_halt();
-}
-
-void __init adm5120_time_init(void)
-{
-       mips_counter_frequency = adm5120_info.cpu_speed >> 1;
-}
+#include <asm/mach-adm5120/adm5120_info.h>
+#include <asm/mach-adm5120/adm5120_defs.h>
+#include <asm/mach-adm5120/adm5120_switch.h>
+#include <asm/mach-adm5120/adm5120_board.h>
+
+static char *prom_names[ADM5120_PROM_LAST+1] __initdata = {
+       [ADM5120_PROM_GENERIC]          = "Generic",
+       [ADM5120_PROM_CFE]              = "CFE",
+       [ADM5120_PROM_UBOOT]            = "U-Boot",
+       [ADM5120_PROM_MYLOADER]         = "MyLoader",
+       [ADM5120_PROM_ROUTERBOOT]       = "RouterBOOT",
+       [ADM5120_PROM_BOOTBASE]         = "Bootbase"
+};
 
-void __init plat_timer_setup(struct irqaction *irq)
+static void __init adm5120_report(void)
 {
-       /* to generate the first timer interrupt */
-       write_c0_compare(read_c0_count()+ mips_counter_frequency/HZ);
-       clear_c0_status(ST0_BEV);
-       set_c0_status(ALLINTS);
+       printk(KERN_INFO "SoC      : ADM%04X%s revision %d, running at %ldMHz\n",
+               adm5120_product_code,
+               (adm5120_package == ADM5120_PACKAGE_BGA) ? "" : "P",
+               adm5120_revision, (adm5120_speed / 1000000)
+               );
+       printk(KERN_INFO "Bootdev  : %s flash\n", adm5120_nand_boot ? "NAND":"NOR");
+       printk(KERN_INFO "Prom     : %s\n", prom_names[adm5120_prom_type]);
 }
 
 void __init plat_mem_setup(void)
 {
-       printk(KERN_INFO "ADM5120 board setup\n");
+       adm5120_soc_init();
+       adm5120_mem_init();
+       adm5120_report();
 
        board_time_init = adm5120_time_init;
-       //board_timer_setup = mips_timer_setup;
 
        _machine_restart = adm5120_restart;
        _machine_halt = adm5120_halt;
@@ -68,39 +71,3 @@ void __init plat_mem_setup(void)
 
        set_io_port_base(KSEG1);
 }
-
-const char *get_system_type(void)
-{
-       return "ADM5120 Board";
-}
-
-static struct resource adm5120_hcd_resources[] = {
-       [0] = {
-               .start  = 0x11200000,
-               .end    = 0x11200084,
-               .flags  = IORESOURCE_MEM,
-       },
-       [1] = {
-               .start  = 0x3,
-               .end    = 0x3,
-               .flags  = IORESOURCE_IRQ,
-       },
-};
-
-static struct platform_device adm5120hcd_device = {
-       .name           = "adm5120-hcd",
-       .id             = -1,
-       .num_resources  = ARRAY_SIZE(adm5120_hcd_resources),
-       .resource       = adm5120_hcd_resources,
-};
-
-static struct platform_device *devices[] __initdata = {
-       &adm5120hcd_device,
-};
-
-static int __init adm5120_init(void)
-{
-       return platform_add_devices(devices, ARRAY_SIZE(devices));
-}
-
-subsys_initcall(adm5120_init);