X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Ffiles%2Farch%2Fmips%2Far71xx%2Fsetup.c;h=d89505f1b4b3ccd3aef5fd10b9b927a8e56962f5;hb=aa3ff31b951b0279f1daa8d2899eb40647a79652;hp=1d99bb52fb19f2b1e186a1b88cfdf94a0f332a4c;hpb=eb3ff716c18876f4ecfeed27da2c18bf45794008;p=openwrt%2Fopenwrt.git diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/setup.c b/target/linux/ar71xx/files/arch/mips/ar71xx/setup.c index 1d99bb52fb..d89505f1b4 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/setup.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/setup.c @@ -12,22 +12,17 @@ */ #include -#include #include -#include -#include -#include #include #include -#include #include /* for mips_hpt_frequency */ #include /* for _machine_{restart,halt} */ #include #include -#include +#include "machtype.h" #include "devices.h" #define AR71XX_SYS_TYPE_LEN 64 @@ -35,8 +30,6 @@ #define AR91XX_BASE_FREQ 5000000 #define AR724X_BASE_FREQ 5000000 -enum ar71xx_mach_type ar71xx_mach; - u32 ar71xx_cpu_freq; EXPORT_SYMBOL_GPL(ar71xx_cpu_freq); @@ -49,11 +42,6 @@ EXPORT_SYMBOL_GPL(ar71xx_ddr_freq); enum ar71xx_soc_type ar71xx_soc; EXPORT_SYMBOL_GPL(ar71xx_soc); -int (*ar71xx_pci_bios_init)(unsigned nr_irqs, - struct ar71xx_pci_irq *map) __initdata; - -int (*ar71xx_pci_be_handler)(int is_fixup); - static char ar71xx_sys_type[AR71XX_SYS_TYPE_LEN]; static void ar71xx_restart(char *command) @@ -70,24 +58,6 @@ static void ar71xx_halt(void) cpu_wait(); } -static int ar71xx_be_handler(struct pt_regs *regs, int is_fixup) -{ - int err = 0; - - if (ar71xx_pci_be_handler) - err = ar71xx_pci_be_handler(is_fixup); - - return (is_fixup && !err) ? MIPS_BE_FIXUP : MIPS_BE_FATAL; -} - -int __init ar71xx_pci_init(unsigned nr_irqs, struct ar71xx_pci_irq *map) -{ - if (!ar71xx_pci_bios_init) - return 0; - - return ar71xx_pci_bios_init(nr_irqs, map); -} - static void __init ar71xx_detect_mem_size(void) { unsigned long size; @@ -136,12 +106,24 @@ static void __init ar71xx_detect_sys_type(void) } break; - case REV_ID_MAJOR_AR724X: + case REV_ID_MAJOR_AR7240: ar71xx_soc = AR71XX_SOC_AR7240; chip = "7240"; rev = (id & AR724X_REV_ID_REVISION_MASK); break; + case REV_ID_MAJOR_AR7241: + ar71xx_soc = AR71XX_SOC_AR7241; + chip = "7241"; + rev = (id & AR724X_REV_ID_REVISION_MASK); + break; + + case REV_ID_MAJOR_AR7242: + ar71xx_soc = AR71XX_SOC_AR7242; + chip = "7242"; + rev = (id & AR724X_REV_ID_REVISION_MASK); + break; + case REV_ID_MAJOR_AR913X: minor = id & AR91XX_REV_ID_MINOR_MASK; rev = id >> AR91XX_REV_ID_REVISION_SHIFT; @@ -240,6 +222,8 @@ static void __init detect_sys_frequency(void) break; case AR71XX_SOC_AR7240: + case AR71XX_SOC_AR7241: + case AR71XX_SOC_AR7242: ar724x_detect_sys_frequency(); break; @@ -253,26 +237,6 @@ static void __init detect_sys_frequency(void) } } -#ifdef CONFIG_AR71XX_EARLY_SERIAL -static void __init ar71xx_early_serial_setup(void) -{ - struct uart_port p; - - memset(&p, 0, sizeof(p)); - - p.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP; - p.iotype = UPIO_MEM32; - p.uartclk = ar71xx_ahb_freq; - p.irq = AR71XX_MISC_IRQ_UART; - p.regshift = 2; - p.mapbase = AR71XX_UART_BASE; - - early_serial_setup(&p); -} -#else -static inline void ar71xx_early_serial_setup(void) {}; -#endif /* CONFIG_AR71XX_EARLY_SERIAL */ - const char *get_system_type(void) { return ar71xx_sys_type; @@ -315,10 +279,6 @@ void __init plat_mem_setup(void) _machine_restart = ar71xx_restart; _machine_halt = ar71xx_halt; pm_power_off = ar71xx_halt; - - board_be_handler = ar71xx_be_handler; - - ar71xx_early_serial_setup(); } void __init plat_time_init(void) @@ -326,6 +286,8 @@ void __init plat_time_init(void) mips_hpt_frequency = ar71xx_cpu_freq / 2; } +__setup("board=", mips_machtype_setup); + static int __init ar71xx_machine_setup(void) { ar71xx_gpio_init(); @@ -333,8 +295,16 @@ static int __init ar71xx_machine_setup(void) ar71xx_add_device_uart(); ar71xx_add_device_wdt(); - mips_machine_setup(ar71xx_mach); + mips_machine_setup(); return 0; } arch_initcall(ar71xx_machine_setup); + +static void __init ar71xx_generic_init(void) +{ + /* Nothing to do */ +} + +MIPS_MACHINE(AR71XX_MACH_GENERIC, "Generic", "Generic AR71xx board", + ar71xx_generic_init);