aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2013-02-15 08:38:20 -0500
committerJohn Crispin <blogic@openwrt.org>2013-02-19 03:36:27 -0500
commit7d4c2af9bdbbe789fe4a93f32c5890d72cbf60a1 (patch)
treed644649117aabbc274af4733b3e51c1b30011b08
parentf818ca3e6894d4a630a1ecc673c91df8fb6f6898 (diff)
MIPS: ath79: add QCA955X specific glue to ath79_device_reset_{set, clear}
The ath79_device_reset_* are causing BUG when those are used on the QCA955x SoCs. The patch adds the required code to avoid that. Cc: Rodriguez, Luis <rodrigue@qca.qualcomm.com> Cc: Giori, Kathy <kgiori@qca.qualcomm.com> Cc: QCA Linux Team <qca-linux-team@qca.qualcomm.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Patchwork: http://patchwork.linux-mips.org/patch/4948/ Signed-off-by: John Crispin <blogic@openwrt.org>
-rw-r--r--arch/mips/ath79/common.c4
-rw-r--r--arch/mips/include/asm/mach-ath79/ar71xx_regs.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/arch/mips/ath79/common.c b/arch/mips/ath79/common.c
index 5a4adfc9d79d..eb3966cd8cfc 100644
--- a/arch/mips/ath79/common.c
+++ b/arch/mips/ath79/common.c
@@ -72,6 +72,8 @@ void ath79_device_reset_set(u32 mask)
72 reg = AR933X_RESET_REG_RESET_MODULE; 72 reg = AR933X_RESET_REG_RESET_MODULE;
73 else if (soc_is_ar934x()) 73 else if (soc_is_ar934x())
74 reg = AR934X_RESET_REG_RESET_MODULE; 74 reg = AR934X_RESET_REG_RESET_MODULE;
75 else if (soc_is_qca955x())
76 reg = QCA955X_RESET_REG_RESET_MODULE;
75 else 77 else
76 BUG(); 78 BUG();
77 79
@@ -98,6 +100,8 @@ void ath79_device_reset_clear(u32 mask)
98 reg = AR933X_RESET_REG_RESET_MODULE; 100 reg = AR933X_RESET_REG_RESET_MODULE;
99 else if (soc_is_ar934x()) 101 else if (soc_is_ar934x())
100 reg = AR934X_RESET_REG_RESET_MODULE; 102 reg = AR934X_RESET_REG_RESET_MODULE;
103 else if (soc_is_qca955x())
104 reg = QCA955X_RESET_REG_RESET_MODULE;
101 else 105 else
102 BUG(); 106 BUG();
103 107
diff --git a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
index 4868ed5c149b..bf50ddfc9d5c 100644
--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
+++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
@@ -299,6 +299,7 @@
299#define AR934X_RESET_REG_BOOTSTRAP 0xb0 299#define AR934X_RESET_REG_BOOTSTRAP 0xb0
300#define AR934X_RESET_REG_PCIE_WMAC_INT_STATUS 0xac 300#define AR934X_RESET_REG_PCIE_WMAC_INT_STATUS 0xac
301 301
302#define QCA955X_RESET_REG_RESET_MODULE 0x1c
302#define QCA955X_RESET_REG_BOOTSTRAP 0xb0 303#define QCA955X_RESET_REG_BOOTSTRAP 0xb0
303#define QCA955X_RESET_REG_EXT_INT_STATUS 0xac 304#define QCA955X_RESET_REG_EXT_INT_STATUS 0xac
304 305