1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-04-21 12:27:27 +03:00

[adm5120] use mips_machine code

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13532 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
juhosg
2008-12-06 19:25:05 +00:00
parent 57a811ea66
commit a3945d7bcf
41 changed files with 132 additions and 308 deletions

View File

@@ -33,4 +33,4 @@ static void __init cas771_setup(void)
adm5120_pci_set_irq_map(ARRAY_SIZE(cas771_pci_irqs), cas771_pci_irqs);
}
ADM5120_BOARD(MACH_ADM5120_CAS771, "Cellvision CAS-771/771W", cas771_setup);
MIPS_MACHINE(MACH_ADM5120_CAS771, "Cellvision CAS-771/771W", cas771_setup);

View File

@@ -132,8 +132,8 @@ void __init cas6xx_setup(void)
adm5120_add_device_switch(1, NULL);
}
ADM5120_BOARD(MACH_ADM5120_CAS630, "Cellvision CAS-630/630W", cas6xx_setup);
ADM5120_BOARD(MACH_ADM5120_CAS670, "Cellvision CAS-670/670W", cas6xx_setup);
MIPS_MACHINE(MACH_ADM5120_CAS630, "Cellvision CAS-630/630W", cas6xx_setup);
MIPS_MACHINE(MACH_ADM5120_CAS670, "Cellvision CAS-670/670W", cas6xx_setup);
#endif
void __init cas7xx_setup(void)
@@ -146,7 +146,7 @@ void __init cas7xx_setup(void)
}
#if 0
ADM5120_BOARD(MACH_ADM5120_CAS700, "Cellvision CAS-700/700W", cas7xx_setup);
ADM5120_BOARD(MACH_ADM5120_CAS790, "Cellvision CAS-790", cas7xx_setup);
ADM5120_BOARD(MACH_ADM5120_CAS861, "Cellvision CAS-861/861W", cas7xx_setup);
MIPS_MACHINE(MACH_ADM5120_CAS700, "Cellvision CAS-700/700W", cas7xx_setup);
MIPS_MACHINE(MACH_ADM5120_CAS790, "Cellvision CAS-790", cas7xx_setup);
MIPS_MACHINE(MACH_ADM5120_CAS861, "Cellvision CAS-861/861W", cas7xx_setup);
#endif

View File

@@ -15,10 +15,9 @@
#include <linux/irq.h>
#include <linux/etherdevice.h>
#include <asm/bootinfo.h>
#include <asm/mips_machine.h>
#include <asm/mach-adm5120/adm5120_info.h>
#include <asm/mach-adm5120/adm5120_board.h>
#include <asm/mach-adm5120/adm5120_platform.h>
extern void cellvision_mac_setup(void) __init;

View File

@@ -25,4 +25,4 @@ static void __init nfs101_setup(void)
adm5120_add_device_switch(5, nfs101_vlans);
}
ADM5120_BOARD(MACH_ADM5120_NFS101U, "Cellvision NFS-101U/101WU", nfs101_setup);
MIPS_MACHINE(MACH_ADM5120_NFS101U, "Cellvision NFS-101U/101WU", nfs101_setup);

View File

@@ -2,5 +2,5 @@
# Makefile for the Infineon/ADMtek ADM5120 SoC specific parts of the kernel
#
obj-y := adm5120.o setup.o prom.o irq.o memory.o board.o clock.o \
obj-y := adm5120.o setup.o prom.o irq.o memory.o clock.o \
gpio.o platform.o

View File

@@ -12,7 +12,7 @@
#include <linux/init.h>
#include <linux/io.h>
#include <asm/bootinfo.h>
//#include <asm/bootinfo.h>
#include <asm/addrspace.h>
#include <asm/mach-adm5120/adm5120_info.h>
@@ -24,6 +24,7 @@ unsigned int adm5120_revision;
unsigned int adm5120_package;
unsigned int adm5120_nand_boot;
unsigned long adm5120_speed;
unsigned long adm5120_mach_type;
/*
* CPU settings detection

View File

@@ -1,91 +0,0 @@
/*
* ADM5120 generic board code
*
* Copyright (C) 2007-2008 Gabor Juhos <juhosg@openwrt.org>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation.
*
*/
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/string.h>
#include <linux/device.h>
#include <linux/platform_device.h>
#include <asm/bootinfo.h>
#include <asm/mach-adm5120/adm5120_info.h>
#include <asm/mach-adm5120/adm5120_defs.h>
#include <asm/mach-adm5120/adm5120_board.h>
#include <asm/mach-adm5120/adm5120_platform.h>
#define PFX "ADM5120: "
static struct list_head adm5120_boards __initdata =
LIST_HEAD_INIT(adm5120_boards);
static char adm5120_board_name[ADM5120_BOARD_NAMELEN] = "Unknown board";
const char *get_system_type(void)
{
return adm5120_board_name;
}
static struct adm5120_board * __init adm5120_board_find(unsigned long machtype)
{
struct list_head *this;
list_for_each(this, &adm5120_boards) {
struct adm5120_board *board;
board = list_entry(this, struct adm5120_board, list);
if (board->mach_type == machtype)
return board;
}
return NULL;
}
static int __init adm5120_board_setup(void)
{
struct adm5120_board *board;
board = adm5120_board_find(mips_machtype);
if (board == NULL)
panic(PFX "no board registered for machtype %lu\n",
mips_machtype);
if (board->name[0])
strlcpy(adm5120_board_name, board->name, ADM5120_BOARD_NAMELEN);
printk(KERN_INFO PFX "board is '%s'\n", adm5120_board_name);
adm5120_gpio_init();
if (board->board_setup)
board->board_setup();
return 0;
}
arch_initcall(adm5120_board_setup);
void __init adm5120_board_register(struct adm5120_board *board)
{
list_add_tail(&board->list, &adm5120_boards);
}
static void __init adm5120_generic_board_setup(void)
{
adm5120_add_device_uart(0);
adm5120_add_device_uart(1);
adm5120_add_device_flash(0);
adm5120_add_device_switch(6, NULL);
}
ADM5120_BOARD(MACH_ADM5120_GENERIC, "Generic ADM5120 board",
adm5120_generic_board_setup);

View File

@@ -15,8 +15,9 @@
#include <linux/mm.h>
#include <linux/io.h>
#include <asm/bootinfo.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <asm/mips_machine.h>
#include <asm/mach-adm5120/adm5120_info.h>
#include <asm/mach-adm5120/adm5120_defs.h>
@@ -203,35 +204,35 @@ static void __init prom_detect_machtype(void)
{
if (bootbase_present()) {
adm5120_prom_type = ADM5120_PROM_BOOTBASE;
mips_machtype = detect_machtype_bootbase();
adm5120_mach_type = detect_machtype_bootbase();
return;
}
if (cfe_present()) {
adm5120_prom_type = ADM5120_PROM_CFE;
mips_machtype = detect_machtype_cfe();
adm5120_mach_type = detect_machtype_cfe();
return;
}
if (myloader_present()) {
adm5120_prom_type = ADM5120_PROM_MYLOADER;
mips_machtype = detect_machtype_myloader();
adm5120_mach_type = detect_machtype_myloader();
return;
}
if (routerboot_present()) {
adm5120_prom_type = ADM5120_PROM_ROUTERBOOT;
mips_machtype = detect_machtype_routerboot();
adm5120_mach_type = detect_machtype_routerboot();
return;
}
if (generic_prom_present()) {
adm5120_prom_type = ADM5120_PROM_GENERIC;
mips_machtype = detect_machtype_generic();
adm5120_mach_type = detect_machtype_generic();
return;
}
mips_machtype = MACH_ADM5120_GENERIC;
adm5120_mach_type = MACH_ADM5120_GENERIC;
}
/* TODO: this is an ugly hack for RouterBOARDS */

View File

@@ -23,11 +23,12 @@
#include <asm/reboot.h>
#include <asm/time.h>
#include <asm/mips_machine.h>
#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>
#include <asm/mach-adm5120/adm5120_platform.h>
void (*adm5120_board_reset)(void);
@@ -52,6 +53,11 @@ static void __init adm5120_report(void)
printk(KERN_INFO "Prom : %s\n", prom_names[adm5120_prom_type]);
}
const char *get_system_type(void)
{
return mips_machine_name;
}
static void adm5120_restart(char *command)
{
/* TODO: stop switch before reset */
@@ -89,3 +95,25 @@ void __init plat_mem_setup(void)
set_io_port_base(KSEG1);
}
static int __init adm5120_board_setup(void)
{
adm5120_gpio_init();
mips_machine_setup(adm5120_mach_type);
return 0;
}
arch_initcall(adm5120_board_setup);
static void __init adm5120_generic_board_setup(void)
{
adm5120_add_device_uart(0);
adm5120_add_device_uart(1);
adm5120_add_device_flash(0);
adm5120_add_device_switch(6, NULL);
}
MIPS_MACHINE(MACH_ADM5120_GENERIC, "Generic ADM5120 board",
adm5120_generic_board_setup);

View File

@@ -15,10 +15,9 @@
#include <linux/irq.h>
#include <linux/etherdevice.h>
#include <asm/bootinfo.h>
#include <asm/mips_machine.h>
#include <asm/mach-adm5120/adm5120_info.h>
#include <asm/mach-adm5120/adm5120_board.h>
#include <asm/mach-adm5120/adm5120_platform.h>
extern void compex_generic_setup(void) __init;

View File

@@ -25,4 +25,4 @@ static void __init np27g_setup(void)
/* TODO: add PCI IRQ map */
}
ADM5120_BOARD(MACH_ADM5120_NP27G, "Compex NetPassage 27G", np27g_setup);
MIPS_MACHINE(MACH_ADM5120_NP27G, "Compex NetPassage 27G", np27g_setup);

View File

@@ -60,4 +60,4 @@ static void __init np28g_setup(void)
adm5120_pci_set_irq_map(ARRAY_SIZE(np28g_pci_irqs), np28g_pci_irqs);
}
ADM5120_BOARD(MACH_ADM5120_NP28G, "Compex NetPassage 28G", np28g_setup);
MIPS_MACHINE(MACH_ADM5120_NP28G, "Compex NetPassage 28G", np28g_setup);

View File

@@ -79,7 +79,7 @@ static void __init wp54_setup(void)
adm5120_pci_set_irq_map(ARRAY_SIZE(wp54_pci_irqs), wp54_pci_irqs);
}
ADM5120_BOARD(MACH_ADM5120_WP54, "Compex WP54 family", wp54_setup);
MIPS_MACHINE(MACH_ADM5120_WP54, "Compex WP54 family", wp54_setup);
static void __init wp54_wrt_setup(void)
{
@@ -91,4 +91,4 @@ static void __init wp54_wrt_setup(void)
wp54_setup();
}
ADM5120_BOARD(MACH_ADM5120_WP54G_WRT, "Compex WP54G-WRT", wp54_wrt_setup);
MIPS_MACHINE(MACH_ADM5120_WP54G_WRT, "Compex WP54G-WRT", wp54_wrt_setup);

View File

@@ -32,4 +32,4 @@ static void __init br6104k_setup(void)
br6104k_gpio_leds);
}
ADM5120_BOARD(MACH_ADM5120_BR6104K, "Edimax BR-6104K", br6104k_setup);
MIPS_MACHINE(MACH_ADM5120_BR6104K, "Edimax BR-6104K", br6104k_setup);

View File

@@ -35,4 +35,4 @@ static void __init br6104kp_setup(void)
adm5120_add_device_usb();
}
ADM5120_BOARD(MACH_ADM5120_BR6104KP, "Edimax BR-6104KP", br6104kp_setup);
MIPS_MACHINE(MACH_ADM5120_BR6104KP, "Edimax BR-6104KP", br6104kp_setup);

View File

@@ -39,4 +39,4 @@ static void __init br61x4wg_setup(void)
br61x4wg_pci_irqs);
}
ADM5120_BOARD(MACH_ADM5120_BR61X4WG, "Edimax BR-6104WG/6114WG", br61x4wg_setup);
MIPS_MACHINE(MACH_ADM5120_BR61X4WG, "Edimax BR-6104WG/6114WG", br61x4wg_setup);

View File

@@ -15,9 +15,9 @@
#include <linux/irq.h>
#include <linux/etherdevice.h>
#include <asm/bootinfo.h>
#include <asm/mips_machine.h>
#include <asm/mach-adm5120/adm5120_board.h>
#include <asm/mach-adm5120/adm5120_info.h>
#include <asm/mach-adm5120/adm5120_platform.h>
extern void __init br61xx_generic_setup(void) __init;

View File

@@ -44,6 +44,6 @@ static void __init easy5120_rt_setup(void)
easy5120_rt_pci_irqs);
}
ADM5120_BOARD(MACH_ADM5120_EASY5120RT,
MIPS_MACHINE(MACH_ADM5120_EASY5120RT,
"Infineon EASY 5120-RT Reference Board",
easy5120_rt_setup);

View File

@@ -20,6 +20,6 @@ static void __init easy5120wvoip_setup(void)
/* TODO: setup PCI IRQ map */
}
ADM5120_BOARD(MACH_ADM5120_EASY5120WVOIP,
MIPS_MACHINE(MACH_ADM5120_EASY5120WVOIP,
"Infineon EASY 5120-WVoIP Reference Board",
easy5120wvoip_setup);

View File

@@ -18,6 +18,6 @@ static void __init easy5120pata_setup(void)
adm5120_add_device_switch(6, NULL);
}
ADM5120_BOARD(MACH_ADM5120_EASY5120PATA,
MIPS_MACHINE(MACH_ADM5120_EASY5120PATA,
"Infineon EASY 5120P-ATA Reference Board",
easy5120pata_setup);

View File

@@ -19,6 +19,6 @@ static void __init easy83000_setup(void)
/* TODO: add VINAX device */
}
ADM5120_BOARD(MACH_ADM5120_EASY83000,
MIPS_MACHINE(MACH_ADM5120_EASY83000,
"Infineon EASY 83000 Reference Board",
easy83000_setup);

View File

@@ -15,10 +15,9 @@
#include <linux/irq.h>
#include <linux/etherdevice.h>
#include <asm/bootinfo.h>
#include <asm/mips_machine.h>
#include <asm/mach-adm5120/adm5120_defs.h>
#include <asm/mach-adm5120/adm5120_board.h>
#include <asm/mach-adm5120/adm5120_platform.h>
#include <asm/mach-adm5120/adm5120_info.h>

View File

@@ -32,4 +32,4 @@ static void __init rb11x_setup(void)
rb11x_gpio_leds);
}
ADM5120_BOARD(MACH_ADM5120_RB_11X, "Mikrotik RouterBOARD 111/112", rb11x_setup);
MIPS_MACHINE(MACH_ADM5120_RB_11X, "Mikrotik RouterBOARD 111/112", rb11x_setup);

View File

@@ -37,4 +37,4 @@ static void __init rb133_setup(void)
rb133_gpio_leds);
}
ADM5120_BOARD(MACH_ADM5120_RB_133, "Mikrotik RouterBOARD 133", rb133_setup);
MIPS_MACHINE(MACH_ADM5120_RB_133, "Mikrotik RouterBOARD 133", rb133_setup);

View File

@@ -33,4 +33,4 @@ static void __init rb133c_setup(void)
rb133c_gpio_leds);
}
ADM5120_BOARD(MACH_ADM5120_RB_133C, "Mikrotik RouterBOARD 133C", rb133c_setup);
MIPS_MACHINE(MACH_ADM5120_RB_133C, "Mikrotik RouterBOARD 133C", rb133c_setup);

View File

@@ -133,4 +133,4 @@ static void __init rb150_setup(void)
adm5120_add_device_switch(5, rb150_vlans);
}
ADM5120_BOARD(MACH_ADM5120_RB_150, "Mikrotik RouterBOARD 150", rb150_setup);
MIPS_MACHINE(MACH_ADM5120_RB_150, "Mikrotik RouterBOARD 150", rb150_setup);

View File

@@ -71,4 +71,4 @@ static void __init rb153_setup(void)
adm5120_add_device_switch(5, rb153_vlans);
}
ADM5120_BOARD(MACH_ADM5120_RB_153, "Mikrotik RouterBOARD 153", rb153_setup);
MIPS_MACHINE(MACH_ADM5120_RB_153, "Mikrotik RouterBOARD 153", rb153_setup);

View File

@@ -24,4 +24,4 @@ static void __init rb192_setup(void)
adm5120_add_device_switch(6, rb192_vlans);
}
ADM5120_BOARD(MACH_ADM5120_RB_192, "Mikrotik RouterBOARD 192", rb192_setup);
MIPS_MACHINE(MACH_ADM5120_RB_192, "Mikrotik RouterBOARD 192", rb192_setup);

View File

@@ -16,11 +16,10 @@
#include <linux/irq.h>
#include <linux/etherdevice.h>
#include <asm/bootinfo.h>
#include <asm/mips_machine.h>
#include <asm/mach-adm5120/adm5120_defs.h>
#include <asm/mach-adm5120/adm5120_nand.h>
#include <asm/mach-adm5120/adm5120_board.h>
#include <asm/mach-adm5120/adm5120_platform.h>
#include <asm/mach-adm5120/adm5120_info.h>

View File

@@ -15,10 +15,9 @@
#include <linux/irq.h>
#include <linux/etherdevice.h>
#include <asm/bootinfo.h>
#include <asm/mips_machine.h>
#include <asm/mach-adm5120/adm5120_defs.h>
#include <asm/mach-adm5120/adm5120_board.h>
#include <asm/mach-adm5120/adm5120_platform.h>
#include <asm/mach-adm5120/adm5120_info.h>
@@ -97,6 +96,6 @@ void __init pmugw_setup(void)
adm5120_add_device_switch(5, pmugw_vlans);
}
ADM5120_BOARD(MACH_ADM5120_PMUGW,
MIPS_MACHINE(MACH_ADM5120_PMUGW,
"Motorola Powerline MU Gateway",
pmugw_setup);

View File

@@ -30,4 +30,4 @@ static void __init p334wt_setup(void)
p334wt_gpio_leds);
}
ADM5120_BOARD(MACH_ADM5120_P334WT, "ZyXEL Prestige 334WT", p334wt_setup);
MIPS_MACHINE(MACH_ADM5120_P334WT, "ZyXEL Prestige 334WT", p334wt_setup);

View File

@@ -17,4 +17,4 @@ static void __init p335_setup(void)
adm5120_add_device_usb();
}
ADM5120_BOARD(MACH_ADM5120_P335, "ZyXEL Prestige 335/335WT", p335_setup);
MIPS_MACHINE(MACH_ADM5120_P335, "ZyXEL Prestige 335/335WT", p335_setup);

View File

@@ -14,9 +14,9 @@
#include <linux/gpio.h>
#include <linux/irq.h>
#include <asm/bootinfo.h>
#include <asm/mips_machine.h>
#include <asm/mach-adm5120/adm5120_board.h>
#include <asm/mach-adm5120/adm5120_info.h>
#include <asm/mach-adm5120/adm5120_platform.h>
extern void p33x_generic_setup(void) __init;