diff options
author | Imre Kaloz <kaloz@openwrt.org> | 2014-02-06 18:32:03 +0000 |
---|---|---|
committer | Imre Kaloz <kaloz@openwrt.org> | 2014-02-06 18:32:03 +0000 |
commit | f8d377994d22aefabc131e79a58e528d9ca28ffe (patch) | |
tree | 2898d8e6fda7be4b5b3b4308a38fbe995c975927 /target/linux/omap/patches-3.13/905-wlcore-sdio-add-wilink-clock-providers.patch | |
parent | 2949dd0cfeb17796ec3a6f78d38766313e30e675 (diff) | |
download | upstream-f8d377994d22aefabc131e79a58e528d9ca28ffe.tar.gz upstream-f8d377994d22aefabc131e79a58e528d9ca28ffe.tar.bz2 upstream-f8d377994d22aefabc131e79a58e528d9ca28ffe.zip |
[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.patch | 54 |
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: |