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);
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)
}
#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
#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;
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);
# 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
#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>
unsigned int adm5120_package;
unsigned int adm5120_nand_boot;
unsigned long adm5120_speed;
+unsigned long adm5120_mach_type;
/*
* CPU settings detection
+++ /dev/null
-/*
- * 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);
#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>
{
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 */
#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);
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 */
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);
#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;
/* 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);
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);
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)
{
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);
br6104k_gpio_leds);
}
-ADM5120_BOARD(MACH_ADM5120_BR6104K, "Edimax BR-6104K", br6104k_setup);
+MIPS_MACHINE(MACH_ADM5120_BR6104K, "Edimax BR-6104K", br6104k_setup);
adm5120_add_device_usb();
}
-ADM5120_BOARD(MACH_ADM5120_BR6104KP, "Edimax BR-6104KP", br6104kp_setup);
+MIPS_MACHINE(MACH_ADM5120_BR6104KP, "Edimax BR-6104KP", br6104kp_setup);
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);
#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;
easy5120_rt_pci_irqs);
}
-ADM5120_BOARD(MACH_ADM5120_EASY5120RT,
+MIPS_MACHINE(MACH_ADM5120_EASY5120RT,
"Infineon EASY 5120-RT Reference Board",
easy5120_rt_setup);
/* TODO: setup PCI IRQ map */
}
-ADM5120_BOARD(MACH_ADM5120_EASY5120WVOIP,
+MIPS_MACHINE(MACH_ADM5120_EASY5120WVOIP,
"Infineon EASY 5120-WVoIP Reference Board",
easy5120wvoip_setup);
adm5120_add_device_switch(6, NULL);
}
-ADM5120_BOARD(MACH_ADM5120_EASY5120PATA,
+MIPS_MACHINE(MACH_ADM5120_EASY5120PATA,
"Infineon EASY 5120P-ATA Reference Board",
easy5120pata_setup);
/* TODO: add VINAX device */
}
-ADM5120_BOARD(MACH_ADM5120_EASY83000,
+MIPS_MACHINE(MACH_ADM5120_EASY83000,
"Infineon EASY 83000 Reference Board",
easy83000_setup);
#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>
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);
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);
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);
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);
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);
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);
#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>
#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>
adm5120_add_device_switch(5, pmugw_vlans);
}
-ADM5120_BOARD(MACH_ADM5120_PMUGW,
+MIPS_MACHINE(MACH_ADM5120_PMUGW,
"Motorola Powerline MU Gateway",
pmugw_setup);
p334wt_gpio_leds);
}
-ADM5120_BOARD(MACH_ADM5120_P334WT, "ZyXEL Prestige 334WT", p334wt_setup);
+MIPS_MACHINE(MACH_ADM5120_P334WT, "ZyXEL Prestige 334WT", p334wt_setup);
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);
#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;
+++ /dev/null
-/*
- * ADM5120 board definitions
- *
- * 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.
- *
- */
-
-#ifndef _ASM_MIPS_MACH_ADM5120_BOARD_H
-#define _ASM_MIPS_MACH_ADM5120_BOARD_H
-
-#include <linux/init.h>
-#include <linux/list.h>
-
-#define ADM5120_BOARD_NAMELEN 64
-
-struct adm5120_board {
- unsigned long mach_type;
- char name[ADM5120_BOARD_NAMELEN];
-
- void (*board_setup)(void);
- struct list_head list;
-};
-
-extern void adm5120_board_register(struct adm5120_board *) __init;
-
-#define ADM5120_BOARD(_type, _name, _setup) \
-static struct adm5120_board adm5120_board_##_type __initdata = { \
- .mach_type = _type, \
- .name = _name, \
- .board_setup = _setup, \
-}; \
- \
-static __init int adm5120_board_##_type##_register(void) \
-{ \
- adm5120_board_register(&adm5120_board_##_type); \
- return 0; \
-} \
-pure_initcall(adm5120_board_##_type##_register)
-
-#endif /* _ASM_MIPS_MACH_ADM5120_BOARD_H */
extern unsigned long adm5120_memsize;
+extern unsigned long adm5120_mach_type;
+
+#define MACH_ADM5120_GENERIC 0 /* Generic board */
+#define MACH_ADM5120_WP54G_WRT 1 /* Compex WP54G-WRT */
+#define MACH_ADM5120_WP54 2 /* Compex WP54G/WP54AG/WPP54G/WPP54AG */
+#define MACH_ADM5120_NP28G 3 /* Compex NP28G */
+#define MACH_ADM5120_NP28GHS 4 /* Compex NP28G HotSpot */
+#define MACH_ADM5120_NP27G 5 /* Compex NP27G */
+#define MACH_ADM5120_WP54Gv1C 6 /* Compex WP54G version 1C */
+#define MACH_ADM5120_RB_11X 7 /* Mikrotik RouterBOARD 111/112 */
+#define MACH_ADM5120_RB_133 8 /* Mikrotik RouterBOARD 133 */
+#define MACH_ADM5120_RB_133C 9 /* Mikrotik RouterBOARD 133c */
+#define MACH_ADM5120_RB_150 10 /* Mikrotik RouterBOARD 150 */
+#define MACH_ADM5120_RB_153 11 /* Mikrotik RouterBOARD 153 */
+#define MACH_ADM5120_RB_192 12 /* Mikrotik RouterBOARD 192 */
+#define MACH_ADM5120_HS100 13 /* ZyXEL HomeSafe 100/100W */
+#define MACH_ADM5120_P334U 14 /* ZyXEL Prestige 334U */
+#define MACH_ADM5120_P334W 15 /* ZyXEL Prestige 334W */
+#define MACH_ADM5120_P334WH 16 /* ZyXEL Prestige 334WH */
+#define MACH_ADM5120_P334WHD 17 /* ZyXEL Prestige 334WHD */
+#define MACH_ADM5120_P334WT 18 /* ZyXEL Prestige 334WT */
+#define MACH_ADM5120_P335 19 /* ZyXEL Prestige 335/335WT */
+#define MACH_ADM5120_P335PLUS 20 /* ZyXEL Prestige 335Plus */
+#define MACH_ADM5120_P335U 21 /* ZyXEL Prestige 335U */
+#define MACH_ADM5120_ES2108 22 /* ZyXEL Ethernet Switch 2108 */
+#define MACH_ADM5120_ES2108F 23 /* ZyXEL Ethernet Switch 2108-F */
+#define MACH_ADM5120_ES2108G 24 /* ZyXEL Ethernet Switch 2108-G */
+#define MACH_ADM5120_ES2108LC 25 /* ZyXEL Ethernet Switch 2108-LC */
+#define MACH_ADM5120_ES2108PWR 26 /* ZyXEL Ethernet Switch 2108-PWR */
+#define MACH_ADM5120_ES2024A 27 /* ZyXEL Ethernet Switch 2024A */
+#define MACH_ADM5120_ES2024PWR 28 /* ZyXEL Ethernet Switch 2024PWR */
+#define MACH_ADM5120_CAS630 29 /* Cellvision CAS-630/630W */
+#define MACH_ADM5120_CAS670 30 /* Cellvision CAS-670/670W */
+#define MACH_ADM5120_CAS700 31 /* Cellvision CAS-700/700W */
+#define MACH_ADM5120_CAS771 32 /* Cellvision CAS-771/771W */
+#define MACH_ADM5120_CAS790 33 /* Cellvision CAS-790 */
+#define MACH_ADM5120_CAS861 34 /* Cellvision CAS-861/861W */
+#define MACH_ADM5120_NFS101U 35 /* Cellvision NFS-101U/101WU */
+#define MACH_ADM5120_NFS202U 36 /* Cellvision NFS-202U/202WU */
+#define MACH_ADM5120_EASY5120PATA 37 /* Infineon EASY 5120P-ATA */
+#define MACH_ADM5120_EASY5120RT 38 /* Infineon EASY 5120-RT */
+#define MACH_ADM5120_EASY5120WVOIP 39 /* Infineon EASY 5120-WVoIP */
+#define MACH_ADM5120_EASY83000 40 /* Infineon EASY-83000 */
+#define MACH_ADM5120_BR6104K 41 /* Edimax BR-6104K */
+#define MACH_ADM5120_BR6104KP 42 /* Edimax BR-6104KP */
+#define MACH_ADM5120_BR61X4WG 43 /* Edimax BR-6104Wg/BR-6114WG */
+#define MACH_ADM5120_PMUGW 44 /* Motorola Powerline MU Gateway */
+
/*
* TODO:remove adm5120_eth* variables when the switch driver will be
* converted into a real platform driver
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -18,6 +18,21 @@ choice
+@@ -18,6 +18,22 @@ choice
prompt "System type"
default SGI_IP22
+ select GENERIC_GPIO
+ select HAVE_GPIO_LIB
+ select SWAP_IO_SPACE if CPU_BIG_ENDIAN
++ select MIPS_MACHINE
+
config MACH_ALCHEMY
bool "Alchemy processor based machines"
# Common Alchemy Au1x00 stuff
#
core-$(CONFIG_SOC_AU1X00) += arch/mips/au1000/common/
---- a/include/asm-mips/bootinfo.h
-+++ b/include/asm-mips/bootinfo.h
-@@ -94,6 +94,55 @@
- #define MACH_MSP7120_FPGA 5 /* PMC-Sierra MSP7120 Emulation */
- #define MACH_MSP_OTHER 255 /* PMC-Sierra unknown board type */
-
-+/*
-+ * Valid machtype for group ADM5120
-+ */
-+#define MACH_ADM5120_GENERIC 0 /* Generic board */
-+#define MACH_ADM5120_WP54G_WRT 1 /* Compex WP54G-WRT */
-+#define MACH_ADM5120_WP54 2 /* Compex WP54G/WP54AG/WPP54G/WPP54AG */
-+#define MACH_ADM5120_NP28G 3 /* Compex NP28G */
-+#define MACH_ADM5120_NP28GHS 4 /* Compex NP28G HotSpot */
-+#define MACH_ADM5120_NP27G 5 /* Compex NP27G */
-+#define MACH_ADM5120_WP54Gv1C 6 /* Compex WP54G version 1C */
-+#define MACH_ADM5120_RB_11X 7 /* Mikrotik RouterBOARD 111/112 */
-+#define MACH_ADM5120_RB_133 8 /* Mikrotik RouterBOARD 133 */
-+#define MACH_ADM5120_RB_133C 9 /* Mikrotik RouterBOARD 133c */
-+#define MACH_ADM5120_RB_150 10 /* Mikrotik RouterBOARD 150 */
-+#define MACH_ADM5120_RB_153 11 /* Mikrotik RouterBOARD 153 */
-+#define MACH_ADM5120_RB_192 12 /* Mikrotik RouterBOARD 192 */
-+#define MACH_ADM5120_HS100 13 /* ZyXEL HomeSafe 100/100W */
-+#define MACH_ADM5120_P334U 14 /* ZyXEL Prestige 334U */
-+#define MACH_ADM5120_P334W 15 /* ZyXEL Prestige 334W */
-+#define MACH_ADM5120_P334WH 16 /* ZyXEL Prestige 334WH */
-+#define MACH_ADM5120_P334WHD 17 /* ZyXEL Prestige 334WHD */
-+#define MACH_ADM5120_P334WT 18 /* ZyXEL Prestige 334WT */
-+#define MACH_ADM5120_P335 19 /* ZyXEL Prestige 335/335WT */
-+#define MACH_ADM5120_P335PLUS 20 /* ZyXEL Prestige 335Plus */
-+#define MACH_ADM5120_P335U 21 /* ZyXEL Prestige 335U */
-+#define MACH_ADM5120_ES2108 22 /* ZyXEL Ethernet Switch 2108 */
-+#define MACH_ADM5120_ES2108F 23 /* ZyXEL Ethernet Switch 2108-F */
-+#define MACH_ADM5120_ES2108G 24 /* ZyXEL Ethernet Switch 2108-G */
-+#define MACH_ADM5120_ES2108LC 25 /* ZyXEL Ethernet Switch 2108-LC */
-+#define MACH_ADM5120_ES2108PWR 26 /* ZyXEL Ethernet Switch 2108-PWR */
-+#define MACH_ADM5120_ES2024A 27 /* ZyXEL Ethernet Switch 2024A */
-+#define MACH_ADM5120_ES2024PWR 28 /* ZyXEL Ethernet Switch 2024PWR */
-+#define MACH_ADM5120_CAS630 29 /* Cellvision CAS-630/630W */
-+#define MACH_ADM5120_CAS670 30 /* Cellvision CAS-670/670W */
-+#define MACH_ADM5120_CAS700 31 /* Cellvision CAS-700/700W */
-+#define MACH_ADM5120_CAS771 32 /* Cellvision CAS-771/771W */
-+#define MACH_ADM5120_CAS790 33 /* Cellvision CAS-790 */
-+#define MACH_ADM5120_CAS861 34 /* Cellvision CAS-861/861W */
-+#define MACH_ADM5120_NFS101U 35 /* Cellvision NFS-101U/101WU */
-+#define MACH_ADM5120_NFS202U 36 /* Cellvision NFS-202U/202WU */
-+#define MACH_ADM5120_EASY5120PATA 37 /* Infineon EASY 5120P-ATA */
-+#define MACH_ADM5120_EASY5120RT 38 /* Infineon EASY 5120-RT */
-+#define MACH_ADM5120_EASY5120WVOIP 39 /* Infineon EASY 5120-WVoIP */
-+#define MACH_ADM5120_EASY83000 40 /* Infineon EASY-83000 */
-+#define MACH_ADM5120_BR6104K 41 /* Edimax BR-6104K */
-+#define MACH_ADM5120_BR6104KP 42 /* Edimax BR-6104KP */
-+#define MACH_ADM5120_BR61X4WG 43 /* Edimax BR-6104Wg/BR-6114WG */
-+#define MACH_ADM5120_PMUGW 44 /* Motorola Powerline MU Gateway */
-+
- #define CL_SIZE COMMAND_LINE_SIZE
-
- extern char *system_type;
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -19,6 +19,20 @@ choice
+@@ -19,6 +19,21 @@ choice
prompt "System type"
default SGI_IP22
+ select SYS_SUPPORTS_32BIT_KERNEL
+ select ARCH_REQUIRE_GPIOLIB
+ select SWAP_IO_SPACE if CPU_BIG_ENDIAN
++ select MIPS_MACHINE
+
config MACH_ALCHEMY
bool "Alchemy processor based machines"
# Common Alchemy Au1x00 stuff
#
core-$(CONFIG_SOC_AU1X00) += arch/mips/au1000/common/
---- a/include/asm-mips/bootinfo.h
-+++ b/include/asm-mips/bootinfo.h
-@@ -57,6 +57,55 @@
- #define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */
- #define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */
-
-+/*
-+ * Valid machtype for group ADM5120
-+ */
-+#define MACH_ADM5120_GENERIC 0 /* Generic board */
-+#define MACH_ADM5120_WP54G_WRT 1 /* Compex WP54G-WRT */
-+#define MACH_ADM5120_WP54 2 /* Compex WP54G/WP54AG/WPP54G/WPP54AG */
-+#define MACH_ADM5120_NP28G 3 /* Compex NP28G */
-+#define MACH_ADM5120_NP28GHS 4 /* Compex NP28G HotSpot */
-+#define MACH_ADM5120_NP27G 5 /* Compex NP27G */
-+#define MACH_ADM5120_WP54Gv1C 6 /* Compex WP54G version 1C */
-+#define MACH_ADM5120_RB_11X 7 /* Mikrotik RouterBOARD 111/112 */
-+#define MACH_ADM5120_RB_133 8 /* Mikrotik RouterBOARD 133 */
-+#define MACH_ADM5120_RB_133C 9 /* Mikrotik RouterBOARD 133c */
-+#define MACH_ADM5120_RB_150 10 /* Mikrotik RouterBOARD 150 */
-+#define MACH_ADM5120_RB_153 11 /* Mikrotik RouterBOARD 153 */
-+#define MACH_ADM5120_RB_192 12 /* Mikrotik RouterBOARD 192 */
-+#define MACH_ADM5120_HS100 13 /* ZyXEL HomeSafe 100/100W */
-+#define MACH_ADM5120_P334U 14 /* ZyXEL Prestige 334U */
-+#define MACH_ADM5120_P334W 15 /* ZyXEL Prestige 334W */
-+#define MACH_ADM5120_P334WH 16 /* ZyXEL Prestige 334WH */
-+#define MACH_ADM5120_P334WHD 17 /* ZyXEL Prestige 334WHD */
-+#define MACH_ADM5120_P334WT 18 /* ZyXEL Prestige 334WT */
-+#define MACH_ADM5120_P335 19 /* ZyXEL Prestige 335/335WT */
-+#define MACH_ADM5120_P335PLUS 20 /* ZyXEL Prestige 335Plus */
-+#define MACH_ADM5120_P335U 21 /* ZyXEL Prestige 335U */
-+#define MACH_ADM5120_ES2108 22 /* ZyXEL Ethernet Switch 2108 */
-+#define MACH_ADM5120_ES2108F 23 /* ZyXEL Ethernet Switch 2108-F */
-+#define MACH_ADM5120_ES2108G 24 /* ZyXEL Ethernet Switch 2108-G */
-+#define MACH_ADM5120_ES2108LC 25 /* ZyXEL Ethernet Switch 2108-LC */
-+#define MACH_ADM5120_ES2108PWR 26 /* ZyXEL Ethernet Switch 2108-PWR */
-+#define MACH_ADM5120_ES2024A 27 /* ZyXEL Ethernet Switch 2024A */
-+#define MACH_ADM5120_ES2024PWR 28 /* ZyXEL Ethernet Switch 2024PWR */
-+#define MACH_ADM5120_CAS630 29 /* Cellvision CAS-630/630W */
-+#define MACH_ADM5120_CAS670 30 /* Cellvision CAS-670/670W */
-+#define MACH_ADM5120_CAS700 31 /* Cellvision CAS-700/700W */
-+#define MACH_ADM5120_CAS771 32 /* Cellvision CAS-771/771W */
-+#define MACH_ADM5120_CAS790 33 /* Cellvision CAS-790 */
-+#define MACH_ADM5120_CAS861 34 /* Cellvision CAS-861/861W */
-+#define MACH_ADM5120_NFS101U 35 /* Cellvision NFS-101U/101WU */
-+#define MACH_ADM5120_NFS202U 36 /* Cellvision NFS-202U/202WU */
-+#define MACH_ADM5120_EASY5120PATA 37 /* Infineon EASY 5120P-ATA */
-+#define MACH_ADM5120_EASY5120RT 38 /* Infineon EASY 5120-RT */
-+#define MACH_ADM5120_EASY5120WVOIP 39 /* Infineon EASY 5120-WVoIP */
-+#define MACH_ADM5120_EASY83000 40 /* Infineon EASY-83000 */
-+#define MACH_ADM5120_BR6104K 41 /* Edimax BR-6104K */
-+#define MACH_ADM5120_BR6104KP 42 /* Edimax BR-6104KP */
-+#define MACH_ADM5120_BR61X4WG 43 /* Edimax BR-6104Wg/BR-6114WG */
-+#define MACH_ADM5120_PMUGW 44 /* Motorola Powerline MU Gateway */
-+
- #define CL_SIZE COMMAND_LINE_SIZE
-
- extern char *system_type;
# CONFIG_MIPS_ATLAS is not set
# CONFIG_MIPS_COBALT is not set
CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_MIPS_MACHINE is not set
+CONFIG_MIPS_MACHINE=y
# CONFIG_MIPS_MALTA is not set
CONFIG_MIPS_MT_DISABLED=y
# CONFIG_MIPS_MT_SMP is not set
CONFIG_MIPS=y
# CONFIG_MIPS_COBALT is not set
CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_MIPS_MACHINE is not set
+CONFIG_MIPS_MACHINE=y
# CONFIG_MIPS_MALTA is not set
CONFIG_MIPS_MT_DISABLED=y
# CONFIG_MIPS_MT_SMP is not set
# CONFIG_MIPS_ATLAS is not set
# CONFIG_MIPS_COBALT is not set
CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_MIPS_MACHINE is not set
+CONFIG_MIPS_MACHINE=y
# CONFIG_MIPS_MALTA is not set
CONFIG_MIPS_MT_DISABLED=y
# CONFIG_MIPS_MT_SMP is not set
CONFIG_MIPS=y
# CONFIG_MIPS_COBALT is not set
CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_MIPS_MACHINE is not set
+CONFIG_MIPS_MACHINE=y
# CONFIG_MIPS_MALTA is not set
CONFIG_MIPS_MT_DISABLED=y
# CONFIG_MIPS_MT_SMP is not set