Commit e9c0d0aa authored by Gabor Juhos's avatar Gabor Juhos Committed by John Crispin

MIPS: ath79: add WMAC registration code for the QCA955X SoCs

The SoC has a built-in wireless MAC. Register a platform
device for that to make it usable with the ath9k driver.

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: default avatarGabor Juhos <juhosg@openwrt.org>
Patchwork: http://patchwork.linux-mips.org/patch/4956/Signed-off-by: default avatarJohn Crispin <blogic@openwrt.org>
parent 13992303
...@@ -108,7 +108,7 @@ config ATH79_DEV_USB ...@@ -108,7 +108,7 @@ config ATH79_DEV_USB
def_bool n def_bool n
config ATH79_DEV_WMAC config ATH79_DEV_WMAC
depends on (SOC_AR913X || SOC_AR933X || SOC_AR934X) depends on (SOC_AR913X || SOC_AR933X || SOC_AR934X || SOC_QCA955X)
def_bool n def_bool n
endif endif
...@@ -116,6 +116,24 @@ static void ar934x_wmac_setup(void) ...@@ -116,6 +116,24 @@ static void ar934x_wmac_setup(void)
ath79_wmac_data.is_clk_25mhz = true; ath79_wmac_data.is_clk_25mhz = true;
} }
static void qca955x_wmac_setup(void)
{
u32 t;
ath79_wmac_device.name = "qca955x_wmac";
ath79_wmac_resources[0].start = QCA955X_WMAC_BASE;
ath79_wmac_resources[0].end = QCA955X_WMAC_BASE + QCA955X_WMAC_SIZE - 1;
ath79_wmac_resources[1].start = ATH79_IP2_IRQ(1);
ath79_wmac_resources[1].end = ATH79_IP2_IRQ(1);
t = ath79_reset_rr(QCA955X_RESET_REG_BOOTSTRAP);
if (t & QCA955X_BOOTSTRAP_REF_CLK_40)
ath79_wmac_data.is_clk_25mhz = false;
else
ath79_wmac_data.is_clk_25mhz = true;
}
void __init ath79_register_wmac(u8 *cal_data) void __init ath79_register_wmac(u8 *cal_data)
{ {
if (soc_is_ar913x()) if (soc_is_ar913x())
...@@ -124,6 +142,8 @@ void __init ath79_register_wmac(u8 *cal_data) ...@@ -124,6 +142,8 @@ void __init ath79_register_wmac(u8 *cal_data)
ar933x_wmac_setup(); ar933x_wmac_setup();
else if (soc_is_ar934x()) else if (soc_is_ar934x())
ar934x_wmac_setup(); ar934x_wmac_setup();
else if (soc_is_qca955x())
qca955x_wmac_setup();
else else
BUG(); BUG();
......
...@@ -94,6 +94,9 @@ ...@@ -94,6 +94,9 @@
#define AR934X_SRIF_BASE (AR71XX_APB_BASE + 0x00116000) #define AR934X_SRIF_BASE (AR71XX_APB_BASE + 0x00116000)
#define AR934X_SRIF_SIZE 0x1000 #define AR934X_SRIF_SIZE 0x1000
#define QCA955X_WMAC_BASE (AR71XX_APB_BASE + 0x00100000)
#define QCA955X_WMAC_SIZE 0x20000
/* /*
* DDR_CTRL block * DDR_CTRL block
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment