summaryrefslogtreecommitdiff
path: root/target/linux/omap/patches-3.13/905-wlcore-sdio-add-wilink-clock-providers.patch
diff options
context:
space:
mode:
authorkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>2014-02-06 18:32:03 +0000
committerkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>2014-02-06 18:32:03 +0000
commit455a0e4e1b848d96a28a0cea0b2208e6c536662f (patch)
tree2898d8e6fda7be4b5b3b4308a38fbe995c975927 /target/linux/omap/patches-3.13/905-wlcore-sdio-add-wilink-clock-providers.patch
parentf64562e8bafacec8e08ef28d7442decff45d69d9 (diff)
[omap]: add 3.13 support
Signed-off-by: Imre Kaloz <kaloz@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39508 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/omap/patches-3.13/905-wlcore-sdio-add-wilink-clock-providers.patch')
-rw-r--r--target/linux/omap/patches-3.13/905-wlcore-sdio-add-wilink-clock-providers.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/target/linux/omap/patches-3.13/905-wlcore-sdio-add-wilink-clock-providers.patch b/target/linux/omap/patches-3.13/905-wlcore-sdio-add-wilink-clock-providers.patch
new file mode 100644
index 0000000000..c800ec700c
--- /dev/null
+++ b/target/linux/omap/patches-3.13/905-wlcore-sdio-add-wilink-clock-providers.patch
@@ -0,0 +1,54 @@
+Add refclock and tcxoclock as clock providers in WiLink. These clocks
+are not accesible outside the WiLink module, but they are registered
+in the clock framework anyway. Only the WiLink chip consumes these
+clocks.
+
+In theory, the WiLink chip could be connected to external clocks
+instead of using these internal clocks, so make the clock consumer
+code generic enough. If external clocks are used, then the internal
+clock device tree nodes are not necessary, but the external ones must
+be specified.
+
+Signed-off-by: Luciano Coelho <coelho@ti.com>
+Reviewed-by: Felipe Balbi <balbi@ti.com>
+
+---
+drivers/net/wireless/ti/wlcore/sdio.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/net/wireless/ti/wlcore/sdio.c
++++ b/drivers/net/wireless/ti/wlcore/sdio.c
+@@ -34,6 +34,7 @@
+ #include <linux/wl12xx.h>
+ #include <linux/pm_runtime.h>
+ #include <linux/printk.h>
++#include <linux/clk-provider.h>
+
+ #include "wlcore.h"
+ #include "wl12xx_80211.h"
+@@ -214,10 +215,15 @@ static struct wl1271_if_operations sdio_
+ .set_block_size = wl1271_sdio_set_block_size,
+ };
+
++static const struct of_device_id wlcore_sdio_of_clk_match_table[] = {
++ { .compatible = "ti,wilink-clock" },
++};
++
+ static struct wl12xx_platform_data *wlcore_get_pdata_from_of(struct device *dev)
+ {
+ struct wl12xx_platform_data *pdata;
+ struct device_node *np = dev->of_node;
++ struct device_node *clock_node;
+
+ if (!np) {
+ np = of_find_matching_node(NULL, dev->driver->of_match_table);
+@@ -241,6 +247,9 @@ static struct wl12xx_platform_data *wlco
+ goto out_free;
+ }
+
++ for_each_matching_node(clock_node, wlcore_sdio_of_clk_match_table)
++ of_fixed_clk_setup(clock_node);
++
+ goto out;
+
+ out_free: