diff options
author | fang hui <hui.fang@nxp.com> | 2017-01-03 14:40:06 +0800 |
---|---|---|
committer | Mohammed Habibulla <moch@google.com> | 2017-02-07 17:29:42 -0800 |
commit | 17c941923ed3e19e36f2b72bb7e0b9f20149c6de (patch) | |
tree | 29a8c54d35e7d4ec71ac61173270e8e6d02bc4ec | |
parent | 178b26d69bd116bef15222b2ecde4b14f218db39 (diff) | |
download | imx-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.dtsi | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/clk-imx7d.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/bcmdhd/dhd_linux_platdev.c | 27 |
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); |