summaryrefslogtreecommitdiff
path: root/target/linux/ar71xx/patches-3.2/026-MIPS-ath79-Rename-dev-ar913x-wmac.c-to-dev-wmac.c.patch
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2012-01-22 22:38:19 +0000
committerGabor Juhos <juhosg@openwrt.org>2012-01-22 22:38:19 +0000
commitaf015f956c35717909247a5732f6862d3de1476f (patch)
treec72d67ef23e35b8dd3e8177c4811773ed6eed759 /target/linux/ar71xx/patches-3.2/026-MIPS-ath79-Rename-dev-ar913x-wmac.c-to-dev-wmac.c.patch
parent386cbfe45bc521baa889a8c261b2c77e69fc956f (diff)
downloadmtk-20170518-af015f956c35717909247a5732f6862d3de1476f.zip
mtk-20170518-af015f956c35717909247a5732f6862d3de1476f.tar.gz
mtk-20170518-af015f956c35717909247a5732f6862d3de1476f.tar.bz2
ar71xx: add initial support for 3.2
Tested on the following boards: ALFA AP96 TL-MR3220 v1 TL-WR1043ND v1 TL-WR2543ND v1 TL-WR703N v1 TL-WR741ND v1 TL-WR741ND v4 WNDR3700 v1 WZR-HP-G300NH SVN-Revision: 29868
Diffstat (limited to 'target/linux/ar71xx/patches-3.2/026-MIPS-ath79-Rename-dev-ar913x-wmac.c-to-dev-wmac.c.patch')
-rw-r--r--target/linux/ar71xx/patches-3.2/026-MIPS-ath79-Rename-dev-ar913x-wmac.c-to-dev-wmac.c.patch255
1 files changed, 255 insertions, 0 deletions
diff --git a/target/linux/ar71xx/patches-3.2/026-MIPS-ath79-Rename-dev-ar913x-wmac.c-to-dev-wmac.c.patch b/target/linux/ar71xx/patches-3.2/026-MIPS-ath79-Rename-dev-ar913x-wmac.c-to-dev-wmac.c.patch
new file mode 100644
index 0000000..c9a4ce9
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.2/026-MIPS-ath79-Rename-dev-ar913x-wmac.c-to-dev-wmac.c.patch
@@ -0,0 +1,255 @@
+From c1999a36c113e583f785728b3d8f7a26412c61cd Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Fri, 18 Nov 2011 00:17:54 +0000
+Subject: [PATCH 26/27] MIPS: ath79: Rename dev-ar913x-wmac.c to dev-wmac.c
+
+Rename the file as a last step of the 'ar913x' removal changes.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+Cc: Imre Kaloz <kaloz@openwrt.org>
+Cc: linux-mips@linux-mips.org
+Patchwork: https://patchwork.linux-mips.org/patch/3034/
+Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
+---
+ arch/mips/ath79/Makefile | 2 +-
+ arch/mips/ath79/dev-ar913x-wmac.c | 109 -------------------------------------
+ arch/mips/ath79/dev-wmac.c | 109 +++++++++++++++++++++++++++++++++++++
+ 3 files changed, 110 insertions(+), 110 deletions(-)
+ delete mode 100644 arch/mips/ath79/dev-ar913x-wmac.c
+ create mode 100644 arch/mips/ath79/dev-wmac.c
+
+--- a/arch/mips/ath79/Makefile
++++ b/arch/mips/ath79/Makefile
+@@ -20,7 +20,7 @@ obj-$(CONFIG_ATH79_DEV_GPIO_BUTTONS) +=
+ obj-$(CONFIG_ATH79_DEV_LEDS_GPIO) += dev-leds-gpio.o
+ obj-$(CONFIG_ATH79_DEV_SPI) += dev-spi.o
+ obj-$(CONFIG_ATH79_DEV_USB) += dev-usb.o
+-obj-$(CONFIG_ATH79_DEV_WMAC) += dev-ar913x-wmac.o
++obj-$(CONFIG_ATH79_DEV_WMAC) += dev-wmac.o
+
+ #
+ # Machines
+--- a/arch/mips/ath79/dev-ar913x-wmac.c
++++ /dev/null
+@@ -1,109 +0,0 @@
+-/*
+- * Atheros AR913X/AR933X SoC built-in WMAC device support
+- *
+- * Copyright (C) 2008-2011 Gabor Juhos <juhosg@openwrt.org>
+- * Copyright (C) 2008 Imre Kaloz <kaloz@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/delay.h>
+-#include <linux/irq.h>
+-#include <linux/platform_device.h>
+-#include <linux/ath9k_platform.h>
+-
+-#include <asm/mach-ath79/ath79.h>
+-#include <asm/mach-ath79/ar71xx_regs.h>
+-#include "dev-wmac.h"
+-
+-static struct ath9k_platform_data ath79_wmac_data;
+-
+-static struct resource ath79_wmac_resources[] = {
+- {
+- /* .start and .end fields are filled dynamically */
+- .flags = IORESOURCE_MEM,
+- }, {
+- .start = ATH79_CPU_IRQ_IP2,
+- .end = ATH79_CPU_IRQ_IP2,
+- .flags = IORESOURCE_IRQ,
+- },
+-};
+-
+-static struct platform_device ath79_wmac_device = {
+- .name = "ath9k",
+- .id = -1,
+- .resource = ath79_wmac_resources,
+- .num_resources = ARRAY_SIZE(ath79_wmac_resources),
+- .dev = {
+- .platform_data = &ath79_wmac_data,
+- },
+-};
+-
+-static void __init ar913x_wmac_setup(void)
+-{
+- /* reset the WMAC */
+- ath79_device_reset_set(AR913X_RESET_AMBA2WMAC);
+- mdelay(10);
+-
+- ath79_device_reset_clear(AR913X_RESET_AMBA2WMAC);
+- mdelay(10);
+-
+- ath79_wmac_resources[0].start = AR913X_WMAC_BASE;
+- ath79_wmac_resources[0].end = AR913X_WMAC_BASE + AR913X_WMAC_SIZE - 1;
+-}
+-
+-
+-static int ar933x_wmac_reset(void)
+-{
+- ath79_device_reset_clear(AR933X_RESET_WMAC);
+- ath79_device_reset_set(AR933X_RESET_WMAC);
+-
+- return 0;
+-}
+-
+-static int ar933x_r1_get_wmac_revision(void)
+-{
+- return ath79_soc_rev;
+-}
+-
+-static void __init ar933x_wmac_setup(void)
+-{
+- u32 t;
+-
+- ar933x_wmac_reset();
+-
+- ath79_wmac_device.name = "ar933x_wmac";
+-
+- ath79_wmac_resources[0].start = AR933X_WMAC_BASE;
+- ath79_wmac_resources[0].end = AR933X_WMAC_BASE + AR933X_WMAC_SIZE - 1;
+-
+- t = ath79_reset_rr(AR933X_RESET_REG_BOOTSTRAP);
+- if (t & AR933X_BOOTSTRAP_REF_CLK_40)
+- ath79_wmac_data.is_clk_25mhz = false;
+- else
+- ath79_wmac_data.is_clk_25mhz = true;
+-
+- if (ath79_soc_rev == 1)
+- ath79_wmac_data.get_mac_revision = ar933x_r1_get_wmac_revision;
+-
+- ath79_wmac_data.external_reset = ar933x_wmac_reset;
+-}
+-
+-void __init ath79_register_wmac(u8 *cal_data)
+-{
+- if (soc_is_ar913x())
+- ar913x_wmac_setup();
+- if (soc_is_ar933x())
+- ar933x_wmac_setup();
+- else
+- BUG();
+-
+- if (cal_data)
+- memcpy(ath79_wmac_data.eeprom_data, cal_data,
+- sizeof(ath79_wmac_data.eeprom_data));
+-
+- platform_device_register(&ath79_wmac_device);
+-}
+--- /dev/null
++++ b/arch/mips/ath79/dev-wmac.c
+@@ -0,0 +1,109 @@
++/*
++ * Atheros AR913X/AR933X SoC built-in WMAC device support
++ *
++ * Copyright (C) 2008-2011 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@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/delay.h>
++#include <linux/irq.h>
++#include <linux/platform_device.h>
++#include <linux/ath9k_platform.h>
++
++#include <asm/mach-ath79/ath79.h>
++#include <asm/mach-ath79/ar71xx_regs.h>
++#include "dev-wmac.h"
++
++static struct ath9k_platform_data ath79_wmac_data;
++
++static struct resource ath79_wmac_resources[] = {
++ {
++ /* .start and .end fields are filled dynamically */
++ .flags = IORESOURCE_MEM,
++ }, {
++ .start = ATH79_CPU_IRQ_IP2,
++ .end = ATH79_CPU_IRQ_IP2,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static struct platform_device ath79_wmac_device = {
++ .name = "ath9k",
++ .id = -1,
++ .resource = ath79_wmac_resources,
++ .num_resources = ARRAY_SIZE(ath79_wmac_resources),
++ .dev = {
++ .platform_data = &ath79_wmac_data,
++ },
++};
++
++static void __init ar913x_wmac_setup(void)
++{
++ /* reset the WMAC */
++ ath79_device_reset_set(AR913X_RESET_AMBA2WMAC);
++ mdelay(10);
++
++ ath79_device_reset_clear(AR913X_RESET_AMBA2WMAC);
++ mdelay(10);
++
++ ath79_wmac_resources[0].start = AR913X_WMAC_BASE;
++ ath79_wmac_resources[0].end = AR913X_WMAC_BASE + AR913X_WMAC_SIZE - 1;
++}
++
++
++static int ar933x_wmac_reset(void)
++{
++ ath79_device_reset_clear(AR933X_RESET_WMAC);
++ ath79_device_reset_set(AR933X_RESET_WMAC);
++
++ return 0;
++}
++
++static int ar933x_r1_get_wmac_revision(void)
++{
++ return ath79_soc_rev;
++}
++
++static void __init ar933x_wmac_setup(void)
++{
++ u32 t;
++
++ ar933x_wmac_reset();
++
++ ath79_wmac_device.name = "ar933x_wmac";
++
++ ath79_wmac_resources[0].start = AR933X_WMAC_BASE;
++ ath79_wmac_resources[0].end = AR933X_WMAC_BASE + AR933X_WMAC_SIZE - 1;
++
++ t = ath79_reset_rr(AR933X_RESET_REG_BOOTSTRAP);
++ if (t & AR933X_BOOTSTRAP_REF_CLK_40)
++ ath79_wmac_data.is_clk_25mhz = false;
++ else
++ ath79_wmac_data.is_clk_25mhz = true;
++
++ if (ath79_soc_rev == 1)
++ ath79_wmac_data.get_mac_revision = ar933x_r1_get_wmac_revision;
++
++ ath79_wmac_data.external_reset = ar933x_wmac_reset;
++}
++
++void __init ath79_register_wmac(u8 *cal_data)
++{
++ if (soc_is_ar913x())
++ ar913x_wmac_setup();
++ if (soc_is_ar933x())
++ ar933x_wmac_setup();
++ else
++ BUG();
++
++ if (cal_data)
++ memcpy(ath79_wmac_data.eeprom_data, cal_data,
++ sizeof(ath79_wmac_data.eeprom_data));
++
++ platform_device_register(&ath79_wmac_device);
++}