aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2014-09-01 15:09:03 +0100
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2014-09-01 15:09:03 +0100
commit4c05cb23f852f19a998497b6d18b64996e9d66dd (patch)
tree316a2e57d0e8648a433276f44d23085810df956e
parentf2fbc83fab9583cecea7974c94441c17ec1527e5 (diff)
parentedec6b13c1531870352d3a64993aebf8a6ced72d (diff)
Merge branch 'tracking-qcomlt-wlan' into integration-linux-qcomlt
* tracking-qcomlt-wlan: ARM:qcom: Add WLAN reset support ath6kl: Add SDIO device ID for QCA6234X Support
-rw-r--r--arch/arm/mach-qcom/board.c31
-rw-r--r--drivers/net/wireless/ath/ath6kl/sdio.c1
2 files changed, 31 insertions, 1 deletions
diff --git a/arch/arm/mach-qcom/board.c b/arch/arm/mach-qcom/board.c
index c437a9941726..a0e9b477fabf 100644
--- a/arch/arm/mach-qcom/board.c
+++ b/arch/arm/mach-qcom/board.c
@@ -11,6 +11,10 @@
*/
#include <linux/init.h>
+#include <linux/of.h>
+#include <linux/of_gpio.h>
+#include <linux/of_platform.h>
+#include <linux/delay.h>
#include <asm/mach/arch.h>
@@ -23,6 +27,31 @@ static const char * const qcom_dt_match[] __initconst = {
NULL
};
+static void __init qcom_late_init(void)
+{
+ struct device_node *node;
+ int reset_gpio, ret;
+
+ for_each_compatible_node(node, NULL, "atheros,ath6kl") {
+ of_node_put(node);
+
+ reset_gpio = of_get_named_gpio(node, "reset-gpio", 0);
+ if (reset_gpio < 0)
+ return;
+
+ ret = gpio_request_one(reset_gpio,
+ GPIOF_DIR_OUT | GPIOF_INIT_HIGH, "reset");
+ if (ret)
+ return;
+
+ udelay(100);
+ gpio_set_value(reset_gpio, 0);
+ udelay(100);
+ gpio_set_value(reset_gpio, 1);
+ }
+}
+
DT_MACHINE_START(QCOM_DT, "Qualcomm (Flattened Device Tree)")
- .dt_compat = qcom_dt_match,
+ .init_late = qcom_late_init,
+ .dt_compat = qcom_dt_match,
MACHINE_END
diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index 339d89f14d32..eab0ab976af2 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -1400,6 +1400,7 @@ static const struct sdio_device_id ath6kl_sdio_devices[] = {
{SDIO_DEVICE(MANUFACTURER_CODE, (MANUFACTURER_ID_AR6003_BASE | 0x1))},
{SDIO_DEVICE(MANUFACTURER_CODE, (MANUFACTURER_ID_AR6004_BASE | 0x0))},
{SDIO_DEVICE(MANUFACTURER_CODE, (MANUFACTURER_ID_AR6004_BASE | 0x1))},
+ {SDIO_DEVICE(MANUFACTURER_CODE, (MANUFACTURER_ID_AR6004_BASE | 0x2))},
{},
};