summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfang hui <hui.fang@nxp.com>2017-01-03 14:40:06 +0800
committerMohammed Habibulla <moch@google.com>2017-02-07 17:29:42 -0800
commit17c941923ed3e19e36f2b72bb7e0b9f20149c6de (patch)
tree29a8c54d35e7d4ec71ac61173270e8e6d02bc4ec
parent178b26d69bd116bef15222b2ecde4b14f218db39 (diff)
downloadimx-v4.1-n-iot-preview-2.tar.gz
Enable pico-7d 32K clk output to BCM4339android-n-iot-preview-2n-iot-preview-2
In bcmdhd driver probe stage check clk configs in DTS and enable it since pico-7d use CCM generated clock to BCM4339 chip. Change-Id: I3a036ace9ab5fb798b0c4b2f3e982f500b6aba20 Signed-off-by: Haoran Wang <elven.wang@nxp.com>
-rw-r--r--arch/arm/boot/dts/imx7d-pico.dtsi1
-rw-r--r--arch/arm/mach-imx/clk-imx7d.c3
-rw-r--r--drivers/net/wireless/bcmdhd/dhd_linux_platdev.c27
3 files changed, 21 insertions, 10 deletions
diff --git a/arch/arm/boot/dts/imx7d-pico.dtsi b/arch/arm/boot/dts/imx7d-pico.dtsi
index e88503abf7ab..a7d93e11d968 100644
--- a/arch/arm/boot/dts/imx7d-pico.dtsi
+++ b/arch/arm/boot/dts/imx7d-pico.dtsi
@@ -69,6 +69,7 @@
pinctrl-0 = <&pinctrl_wifi_ctrl &pinctrl_bt_ctrl>;
status = "okay";
wlreg_on-supply = <&wlreg_on>;
+ clocks = <&clks IMX7D_CLKO2_ROOT_DIV>;
};
pxp_v4l2_out {
diff --git a/arch/arm/mach-imx/clk-imx7d.c b/arch/arm/mach-imx/clk-imx7d.c
index 6e1cff0a3024..ddbcdaa21796 100644
--- a/arch/arm/mach-imx/clk-imx7d.c
+++ b/arch/arm/mach-imx/clk-imx7d.c
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2014-2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
*
* The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License
@@ -367,7 +368,7 @@ static int const clks_init_on[] __initconst = {
IMX7D_PLL_SYS_MAIN_480M_CLK, IMX7D_NAND_USDHC_BUS_ROOT_CLK,
IMX7D_DRAM_PHYM_ROOT_CLK, IMX7D_DRAM_ROOT_CLK,
IMX7D_DRAM_PHYM_ALT_ROOT_CLK, IMX7D_DRAM_ALT_ROOT_CLK,
- IMX7D_AHB_CHANNEL_ROOT_CLK, IMX7D_CLKO2_ROOT_DIV,
+ IMX7D_AHB_CHANNEL_ROOT_CLK,
};
static struct clk_onecell_data clk_data;
diff --git a/drivers/net/wireless/bcmdhd/dhd_linux_platdev.c b/drivers/net/wireless/bcmdhd/dhd_linux_platdev.c
index 7c0f8247f030..1eec057f654c 100644
--- a/drivers/net/wireless/bcmdhd/dhd_linux_platdev.c
+++ b/drivers/net/wireless/bcmdhd/dhd_linux_platdev.c
@@ -23,26 +23,27 @@
*
* $Id: dhd_linux_platdev.c 401742 2013-05-13 15:03:21Z $
*/
-#include <typedefs.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
#include <bcmutils.h>
-#include <linux_osl.h>
#include <dhd_dbg.h>
+#include <dhd_linux.h>
#include <dngl_stats.h>
#include <dhd.h>
#include <dhd_bus.h>
-#include <dhd_linux.h>
-#include <wl_android.h>
+#include <linux/clk.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux_osl.h>
#if defined(CONFIG_WIFI_CONTROL_FUNC)
#include <linux/wlan_plat.h>
#endif
#ifdef CONFIG_DTS
-#include<linux/regulator/consumer.h>
#include<linux/of_gpio.h>
+#include<linux/regulator/consumer.h>
#endif /* CONFIG_DTS */
+#include <typedefs.h>
+#include <wl_android.h>
#if !defined(CONFIG_WIFI_CONTROL_FUNC)
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 58))
@@ -325,6 +326,14 @@ static int wifi_plat_dev_drv_probe(struct platform_device *pdev)
DHD_ERROR(("%s regulator is null\n", __FUNCTION__));
return -1;
}
+
+ struct clk *clk32k;
+ clk32k = devm_clk_get(&pdev->dev, NULL);
+ /* pico-7d board use CCM generated 32K clk */
+ if (!IS_ERR(clk32k)) {
+ clk_prepare_enable(clk32k);
+ }
+
#if defined(OOB_INTR_ONLY) && defined (HW_OOB)
/* This is to get the irq for the OOB */
gpio = of_get_gpio(pdev->dev.of_node, 0);