summaryrefslogtreecommitdiffstats
path: root/target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-07-11 13:00:27 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-07-11 13:00:27 +0000
commit015aed13171ff6201459286e15fc5e0686a46907 (patch)
treea898a3d4793d5b1ece23dce2f4d5ded01d0e5697 /target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c
parentee0d3e3aaf9c2d586c2147109d30f8b1328ba6ac (diff)
[adm5120] refactor kernel code (part 1), mark it as broken now
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7916 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c')
-rw-r--r--target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c112
1 files changed, 47 insertions, 65 deletions
diff --git a/target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c b/target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c
index aa30dc5c8..83cf74cb7 100644
--- a/target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c
+++ b/target/linux/adm5120-2.6/files/arch/mips/adm5120/setup.c
@@ -1,15 +1,32 @@
/*
- * Copyright (C) ADMtek Incorporated.
- * Creator : daniell@admtek.com.tw
- * Copyright 1999, 2000 MIPS Technologies, Inc.
- * Copyright Jeroen Vreeken (pe1rxq@amsat.org), 2005
- * Copyright (C) 2007 OpenWrt.org
+ * $Id$
+ *
+ * ADM5120 specific setup
+ *
+ * Copyright (C) ADMtek Incorporated.
+ * Copyright (C) 2005 Jeroen Vreeken (pe1rxq@amsat.org)
+ * Copyright (C) 2007 Gabor Juhos <juhosg@freemail.hu>
+ * 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>
@@ -17,33 +34,34 @@
#include <asm/mach-adm5120/adm5120_info.h>
#include <asm/mach-adm5120/adm5120_defs.h>
-#include <asm/mach-adm5120/adm5120_irq.h>
-
-extern void adm5120_time_init(void) __init;
-
-#define ADM5120_SOFTRESET 0x12000004
-
-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);
-}
-
+#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 adm5120_power_off(void)
+static void __init adm5120_report(void)
{
- adm5120_halt();
+ 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;
@@ -53,39 +71,3 @@ void __init plat_mem_setup(void)
set_io_port_base(KSEG1);
}
-
-const char *get_system_type(void)
-{
- return adm5120_board_name();
-}
-
-static struct resource adm5120_hcd_resources[] = {
- [0] = {
- .start = ADM5120_USBC_BASE,
- .end = ADM5120_USBC_BASE+ADM5120_USBC_SIZE-1,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .start = ADM5120_IRQ_USBC,
- .end = ADM5120_IRQ_USBC,
- .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);