diff options
Diffstat (limited to 'target/linux/ar71xx/patches-3.3/640-MIPS-ath79-dir-825-b1-for-owrt-board-def.patch')
-rw-r--r-- | target/linux/ar71xx/patches-3.3/640-MIPS-ath79-dir-825-b1-for-owrt-board-def.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/target/linux/ar71xx/patches-3.3/640-MIPS-ath79-dir-825-b1-for-owrt-board-def.patch b/target/linux/ar71xx/patches-3.3/640-MIPS-ath79-dir-825-b1-for-owrt-board-def.patch new file mode 100644 index 0000000..c3c383b --- /dev/null +++ b/target/linux/ar71xx/patches-3.3/640-MIPS-ath79-dir-825-b1-for-owrt-board-def.patch @@ -0,0 +1,73 @@ +--- a/arch/mips/ath79/mach-dir-825-b1.c ++++ b/arch/mips/ath79/mach-dir-825-b1.c +@@ -46,6 +46,12 @@ + #define DIR825B1_MAC_LOCATION_0 0x1f66ffa0 + #define DIR825B1_MAC_LOCATION_1 0x1f66ffb4 + ++#define DIR825B1_OPENWRT_CAL_LOCATION_0 0x1f7f1000 ++#define DIR825B1_OPENWRT_CAL_LOCATION_1 0x1f7f5000 ++ ++#define DIR825B1_OPENWRT_MAC_LOCATION_0 0x1f7fffa0 ++#define DIR825B1_OPENWRT_MAC_LOCATION_1 0x1f7fffb4 ++ + static struct gpio_led dir825b1_leds_gpio[] __initdata = { + { + .name = "d-link:blue:usb", +@@ -124,12 +130,12 @@ static void dir825b1_read_ascii_mac(u8 * + memset(dest, 0, ETH_ALEN); + } + +-static void __init dir825b1_setup(void) +-{ ++static void __init dir825b1_common_setup(unsigned int macloc1, unsigned int macloc2, ++ unsigned int calloc1, unsigned int calloc2) { + u8 mac1[ETH_ALEN], mac2[ETH_ALEN]; + +- dir825b1_read_ascii_mac(mac1, DIR825B1_MAC_LOCATION_0); +- dir825b1_read_ascii_mac(mac2, DIR825B1_MAC_LOCATION_1); ++ dir825b1_read_ascii_mac(mac1, macloc1); ++ dir825b1_read_ascii_mac(mac2, macloc2); + + ath79_register_mdio(0, 0x0); + +@@ -165,9 +171,27 @@ static void __init dir825b1_setup(void) + ap9x_pci_setup_wmac_led_pin(0, 5); + ap9x_pci_setup_wmac_led_pin(1, 5); + +- ap94_pci_init((u8 *) KSEG1ADDR(DIR825B1_CAL_LOCATION_0), mac1, +- (u8 *) KSEG1ADDR(DIR825B1_CAL_LOCATION_1), mac2); ++ ap94_pci_init((u8 *) KSEG1ADDR(calloc1), mac1, ++ (u8 *) KSEG1ADDR(calloc2), mac2); ++} ++ ++static void __init dir825b1_setup(void) ++{ ++ dir825b1_common_setup(DIR825B1_MAC_LOCATION_0, DIR825B1_MAC_LOCATION_1, ++ DIR825B1_CAL_LOCATION_0, DIR825B1_CAL_LOCATION_1); ++} ++ ++static void __init dir825b1_openwrt_setup(void) ++{ ++ dir825b1_common_setup(DIR825B1_OPENWRT_MAC_LOCATION_0, DIR825B1_OPENWRT_MAC_LOCATION_1, ++ DIR825B1_OPENWRT_CAL_LOCATION_0, DIR825B1_OPENWRT_CAL_LOCATION_1); + } + + MIPS_MACHINE(ATH79_MACH_DIR_825_B1, "DIR-825-B1", "D-Link DIR-825 rev. B1", + dir825b1_setup); ++ ++MIPS_MACHINE(ATH79_MACH_DIR_825_B1_OPENWRT, "DIR-825-B1_OPENWRT", "D-Link DIR-825 rev. B1 OpenWrt", ++ dir825b1_openwrt_setup); ++ ++MIPS_MACHINE(ATH79_MACH_DIR_825_B1_TOSTOCK, "DIR-825-B1_TOSTOCK", "D-Link DIR-825 rev. B1 TOSTOCK", dir825b1_openwrt_setup); ++ +--- a/arch/mips/ath79/machtypes.h ++++ b/arch/mips/ath79/machtypes.h +@@ -35,6 +35,8 @@ enum ath79_mach_type { + ATH79_MACH_DIR_615_C1, /* D-Link DIR-615 rev. C1 */ + ATH79_MACH_DIR_615_E4, /* D-Link DIR-615 rev. E4 */ + ATH79_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */ ++ ATH79_MACH_DIR_825_B1_OPENWRT, /* D-Link DIR-825 rev. B1 OpenWrt */ ++ ATH79_MACH_DIR_825_B1_TOSTOCK, /* D-Link DIR-825 rev. B1 TOSTOCK */ + ATH79_MACH_EW_DORIN, /* embedded wireless Dorin Platform */ + ATH79_MACH_EW_DORIN_ROUTER, /* embedded wireless Dorin Router Platform */ + ATH79_MACH_EAP7660D, /* Senao EAP7660D */ |