From 3bf635be11dd2c605a6ba63ad08d3261d8619a1e Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Tue, 18 Nov 2008 13:21:24 +0000 Subject: [PATCH] add experimental support for the AzureWave AW-NR580 board SVN-Revision: 13278 --- target/linux/ar71xx/config-2.6.26 | 1 + target/linux/ar71xx/config-2.6.27 | 1 + .../ar71xx/files/arch/mips/ar71xx/Kconfig | 4 ++ .../ar71xx/files/arch/mips/ar71xx/Makefile | 1 + .../files/arch/mips/ar71xx/mach-aw-nr580.c | 39 +++++++++++++++++++ .../ar71xx/files/arch/mips/ar71xx/prom.c | 3 ++ .../patches-2.6.26/001-ar71xx_core.patch | 3 +- .../patches-2.6.27/001-ar71xx_core.patch | 3 +- 8 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c diff --git a/target/linux/ar71xx/config-2.6.26 b/target/linux/ar71xx/config-2.6.26 index 888635a5fe8..fcac34188a9 100644 --- a/target/linux/ar71xx/config-2.6.26 +++ b/target/linux/ar71xx/config-2.6.26 @@ -4,6 +4,7 @@ CONFIG_32BIT=y CONFIG_ADM6996_PHY=y CONFIG_AG71XX=y # CONFIG_AR71XX_EARLY_SERIAL is not set +CONFIG_AR71XX_MACH_AW_NR580=y CONFIG_AR71XX_MACH_GENERIC=y CONFIG_AR71XX_MACH_RB_4XX=y CONFIG_AR71XX_MACH_WP543=y diff --git a/target/linux/ar71xx/config-2.6.27 b/target/linux/ar71xx/config-2.6.27 index 7b7d36ea082..295b97eda3c 100644 --- a/target/linux/ar71xx/config-2.6.27 +++ b/target/linux/ar71xx/config-2.6.27 @@ -4,6 +4,7 @@ CONFIG_32BIT=y CONFIG_ADM6996_PHY=y CONFIG_AG71XX=y # CONFIG_AR71XX_EARLY_SERIAL is not set +CONFIG_AR71XX_MACH_AW_NR580=y CONFIG_AR71XX_MACH_GENERIC=y CONFIG_AR71XX_MACH_RB_4XX=y CONFIG_AR71XX_MACH_WP543=y diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig index 8640b2cc51c..d8ae08577be 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig @@ -6,6 +6,10 @@ config AR71XX_EARLY_SERIAL menu "Atheros AR71xx machine selection" +config AR71XX_MACH_AW_NR580 + bool "AzureWave AW-NR580 board support" + default y + config AR71XX_MACH_GENERIC bool "Generic AR71xx based machine support" default y diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile index 6e7ab1d48b8..175c43e911d 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile @@ -10,6 +10,7 @@ obj-y := prom.o irq.o setup.o platform.o gpio.o ar71xx.o +obj-$(CONFIG_AR71XX_MACH_AW_NR580) += mach-aw-nr580.o obj-$(CONFIG_AR71XX_MACH_GENERIC) += mach-generic.o obj-$(CONFIG_AR71XX_MACH_RB_4XX) += mach-rb-4xx.o obj-$(CONFIG_AR71XX_MACH_WP543) += mach-wp543.o diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c new file mode 100644 index 00000000000..0e22bf5fec5 --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c @@ -0,0 +1,39 @@ +/* + * AzureWave AW-NR580 board support + * + * Copyright (C) 2008 Gabor Juhos + * Copyright (C) 2008 Imre Kaloz + * + * 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 +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +static struct spi_board_info aw_nr580_spi_info[] = { + { + .bus_num = 0, + .chip_select = 0, + .max_speed_hz = 25000000, + .modalias = "m25p80", + } +}; + +static void __init aw_nr580_setup(void) +{ + ar71xx_add_device_spi(NULL, aw_nr580_spi_info, + ARRAY_SIZE(aw_nr580_spi_info)); +} + +MIPS_MACHINE(MACH_AR71XX_AW_NR580, "AzureWave AW-NR580", aw_nr580_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c b/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c index 1d55328aad0..cd6f26cdac4 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/prom.c @@ -43,6 +43,9 @@ static struct board_rec boards[] __initdata = { }, { .name = "493", .mach_type = MACH_AR71XX_RB_493, + }, { + .name = "AW-NR580", + .mach_type = MACH_AR71XX_AW_NR580, } }; diff --git a/target/linux/ar71xx/patches-2.6.26/001-ar71xx_core.patch b/target/linux/ar71xx/patches-2.6.26/001-ar71xx_core.patch index 3702b652c75..0249c500803 100644 --- a/target/linux/ar71xx/patches-2.6.26/001-ar71xx_core.patch +++ b/target/linux/ar71xx/patches-2.6.26/001-ar71xx_core.patch @@ -16,7 +16,7 @@ --- a/include/asm-mips/bootinfo.h +++ b/include/asm-mips/bootinfo.h -@@ -79,6 +79,16 @@ +@@ -79,6 +79,17 @@ #define MACH_LASAT_200 1 /* Masquerade PRO/SP200 */ /* @@ -28,6 +28,7 @@ +#define MACH_AR71XX_RB_433 3 /* MikroTik RouterBOARD 433/433AH */ +#define MACH_AR71XX_RB_450 4 /* MikroTik RouterBOARD 450 */ +#define MACH_AR71XX_RB_493 5 /* Mikrotik RouterBOARD 493/493AH */ ++#define MACH_AR71XX_AW_NR580 6 /* AzureWave AW-NR580 */ + +/* * Valid machtype for group NEC EMMA2RH diff --git a/target/linux/ar71xx/patches-2.6.27/001-ar71xx_core.patch b/target/linux/ar71xx/patches-2.6.27/001-ar71xx_core.patch index 5db99d6a82c..548c06b12da 100644 --- a/target/linux/ar71xx/patches-2.6.27/001-ar71xx_core.patch +++ b/target/linux/ar71xx/patches-2.6.27/001-ar71xx_core.patch @@ -16,7 +16,7 @@ --- a/include/asm-mips/bootinfo.h +++ b/include/asm-mips/bootinfo.h -@@ -57,6 +57,16 @@ +@@ -57,6 +57,17 @@ #define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */ #define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */ @@ -29,6 +29,7 @@ +#define MACH_AR71XX_RB_433 3 /* MikroTik RouterBOARD 433/433AH */ +#define MACH_AR71XX_RB_450 4 /* MikroTik RouterBOARD 450 */ +#define MACH_AR71XX_RB_493 5 /* MikroTik RouterBOARD 493 */ ++#define MACH_AR71XX_AW_NR580 6 /* AzureWave AW-NR580 */ + #define CL_SIZE COMMAND_LINE_SIZE