MLK-11725 dts: imx6: add Murata BT/WiFi module support
authorDong Aisheng <aisheng.dong@freescale.com>
Thu, 15 Oct 2015 07:39:02 +0000 (15:39 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:48:57 +0000 (14:48 -0500)
Add Murata Type ZP (BCM4339) module support on below platforms:
- i.MX6Q/DL/QP SabreSD(SD2 slot) + Murata adapter V2.0
- i.MX6SX SDB (SD3+SD2 slot) + Murata adapter V1.0 & SD EXT card
- i.MX6SL EVK (SD1+SD3 slot) + Murata adapter V1.0 & SD EXT card
- i.MX6UL SDB RevC (SD1 slot) + Murata adapter V2.0

Note: MX6Q/DL/QP SabreSD board requires HW rework.
Please refer to rework guide specified in schematic.

Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
Conflicts:
arch/arm/boot/dts/Makefile

arch/arm/boot/dts/Makefile
arch/arm/boot/dts/imx6dl-sabresd-btwifi.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-sabresd-btwifi.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-sabresd-btwifi.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qp-sabresd-btwifi.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6sl-evk-btwifi.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6sx-sdb-btwifi.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-14x14-evk-btwifi.dts [new file with mode: 0644]

index c6ca147..e2da5f5 100644 (file)
@@ -348,6 +348,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-sabreauto.dtb \
        imx6dl-sabrelite.dtb \
        imx6dl-sabresd.dtb \
+       imx6dl-sabresd-btwifi.dtb \
        imx6dl-sabresd-hdcp.dtb \
        imx6dl-sabresd-ldo.dtb \
        imx6dl-ts4900.dtb \
@@ -395,6 +396,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6qp-sabreauto.dtb \
        imx6q-sabrelite.dtb \
        imx6q-sabresd.dtb \
+       imx6q-sabresd-btwifi.dtb \
        imx6q-sabresd-hdcp.dtb \
        imx6q-sabresd-ldo.dtb \
        imx6q-sabresd-uart.dtb \
@@ -418,6 +420,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6qp-sabresd.dtb
 dtb-$(CONFIG_SOC_IMX6SL) += \
        imx6sl-evk.dtb \
+       imx6sl-evk-btwifi.dtb \
        imx6sl-evk-ldo.dtb \
        imx6sl-evk-csi.dtb \
        imx6sl-evk-uart.dtb \
@@ -430,6 +433,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
        imx6sx-sdb-sai.dtb \
        imx6sx-sdb-reva-ldo.dtb \
        imx6sx-sdb.dtb  \
+       imx6sx-sdb-btwifi.dtb \
        imx6sx-sdb-lcdif1.dtb \
        imx6sx-sdb-ldo.dtb      \
        imx6sx-sdb-mqs.dtb \
@@ -439,6 +443,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
        imx6sx-19x19-arm2-csi.dtb
 dtb-$(CONFIG_SOC_IMX6UL) += \
        imx6ul-14x14-evk.dtb \
+       imx6ul-14x14-evk-btwifi.dtb \
        imx6ul-14x14-evk-csi.dtb \
        imx6ul-geam-kit.dtb \
        imx6ul-pico-hobbit.dtb \
diff --git a/arch/arm/boot/dts/imx6dl-sabresd-btwifi.dts b/arch/arm/boot/dts/imx6dl-sabresd-btwifi.dts
new file mode 100644 (file)
index 0000000..814c935
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "imx6dl-sabresd.dts"
+#include "imx6qdl-sabresd-btwifi.dtsi"
diff --git a/arch/arm/boot/dts/imx6q-sabresd-btwifi.dts b/arch/arm/boot/dts/imx6q-sabresd-btwifi.dts
new file mode 100644 (file)
index 0000000..af65f3a
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "imx6q-sabresd.dts"
+#include "imx6qdl-sabresd-btwifi.dtsi"
diff --git a/arch/arm/boot/dts/imx6qdl-sabresd-btwifi.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd-btwifi.dtsi
new file mode 100644 (file)
index 0000000..c2c305a
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/*
+ * NOTE: This DTS file is written for plugging in Murata Wi-Fi/BT EVK into SD2
+ * slot using Murata i.MX InterConnect Ver 2.0 Adapter & connecting Bluetooth
+ * UART & control signals via ribbon cable.
+ * This configuration supports both WLAN and Bluetooth.
+ * WL_REG_ON/BT_REG_ON/WL_HOST_WAKE are connected via ribbon cable (J13 connector
+ * on board).
+ * ==> Hardware modification is required. Refer to schematic.
+ */
+
+/ {
+       leds {
+               compatible = "gpio-leds";
+               status = "disabled";
+       };
+
+       regulators {
+               wlreg_on: fixedregulator@100 {
+                       compatible = "regulator-fixed";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-name = "wlreg_on";
+                       gpio = <&gpio4 7 0>;
+                       startup-delay-us = <100>;
+                       enable-active-high;
+               };
+       };
+
+       bcmdhd_wlan_0: bcmdhd_wlan@0 {
+               compatible = "android,bcmdhd_wlan";
+               wlreg_on-supply = <&wlreg_on>;
+       };
+};
+
+&iomuxc {
+       imx6qdl-sabresd-murata-v2 {
+               /* add MUXing entry for SD2 4-bit interface and configure control pins */
+               pinctrl_wifi: wifigrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD2_CMD__SD2_CMD             0x17059
+                               MX6QDL_PAD_SD2_CLK__SD2_CLK             0x10059
+                               MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x17059
+                               MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x17059
+                               MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x17059
+                               MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x17059
+                               MX6QDL_PAD_KEY_ROW0__GPIO4_IO07         0x13069 /* WL_REG_ON */
+                       >;
+               };
+       };
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wifi>;
+       bus-width = <4>;
+       no-1-8-v;
+       wifi-host;
+};
diff --git a/arch/arm/boot/dts/imx6qp-sabresd-btwifi.dts b/arch/arm/boot/dts/imx6qp-sabresd-btwifi.dts
new file mode 100644 (file)
index 0000000..38d39ca
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "imx6qp-sabresd.dts"
+#include "imx6qdl-sabresd-btwifi.dtsi"
diff --git a/arch/arm/boot/dts/imx6sl-evk-btwifi.dts b/arch/arm/boot/dts/imx6sl-evk-btwifi.dts
new file mode 100644 (file)
index 0000000..86924c7
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/* NOTE: This DTS file is written for plugging in Murata Wi-Fi/BT EVK into SD1
+ * slot using Murata i.MX InterConnect Ver 1.0 Adapter AND wiring in control
+ * signals with SD Card Extender on SD3 slot.
+ * Bluetooth UART connect via SD1 EMMC/MMC Plus pinout.
+ * WL_REG_ON/BT_REG_ON/WL_HOST_WAKE are connected from SD Card Extender on SD3
+ * slot.
+ */
+#include "imx6sl-evk.dts"
+
+/ {
+       regulators {
+               wlreg_on: fixedregulator@100 {
+                       compatible = "regulator-fixed";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-name = "wlreg_on";
+                       gpio = <&gpio5 16 0>;
+                       startup-delay-us = <100>;
+                       enable-active-high;
+               };
+       };
+
+       bcmdhd_wlan_0: bcmdhd_wlan@0 {
+               compatible = "android,bcmdhd_wlan";
+               wlreg_on-supply = <&wlreg_on>;
+       };
+};
+
+&iomuxc {
+       imx6sl-evk-murata-v1_sdext {
+               /* Only MUX SD1_DAT0..3 lines so UART4 can be MUXed on higher data lines. */
+               pinctrl_wifi: wifigrp {
+                       fsl,pins = <
+                               MX6SL_PAD_SD1_CMD__SD1_CMD              0x17059
+                               MX6SL_PAD_SD1_CLK__SD1_CLK              0x10059
+                               MX6SL_PAD_SD1_DAT0__SD1_DATA0           0x17059
+                               MX6SL_PAD_SD1_DAT1__SD1_DATA1           0x17059
+                               MX6SL_PAD_SD1_DAT2__SD1_DATA2           0x17059
+                               MX6SL_PAD_SD1_DAT3__SD1_DATA3           0x17059
+                               MX6SL_PAD_SD3_DAT2__GPIO5_IO16          0x13069 /* WL_REG_ON */
+                       >;
+               };
+
+               pinctrl_usdhc3_1: usdhc3grp-1 {
+                       fsl,pins = <
+                               MX6SL_PAD_SD3_CMD__SD3_CMD              0x17059
+                               MX6SL_PAD_SD3_CLK__SD3_CLK              0x10059
+                               MX6SL_PAD_SD3_DAT0__SD3_DATA0           0x17059
+                       >;
+               };
+       };
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wifi>;
+       bus-width = <4>;
+       no-1-8-v;
+       wifi-host;
+};
+
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3_1>;
+       bus-width = <1>;
+       no-1-8-v;
+};
diff --git a/arch/arm/boot/dts/imx6sx-sdb-btwifi.dts b/arch/arm/boot/dts/imx6sx-sdb-btwifi.dts
new file mode 100644 (file)
index 0000000..43868ec
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/*
+ * NOTE: This DTS file is written for plugging in Murata Wi-Fi/BT EVK into SD3
+ * slot using Murata i.MX InterConnect Ver 1.0 Adapter AND SD Card Extender on
+ * SD2 slot. Bluetooth UART connects via SD3 EMMC/MMC Plus pinout.
+ * WL_REG_ON/BT_REG_ON/WL_HOST_WAKE connect via SD Card Extender.
+ */
+
+#include "imx6sx-sdb.dts"
+
+/ {
+       regulators {
+               wlreg_on: fixedregulator@100 {
+                       compatible = "regulator-fixed";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-name = "wlreg_on";
+                       gpio = <&gpio6 10 0>;
+                       startup-delay-us = <100>;
+                       enable-active-high;
+               };
+       };
+
+       bcmdhd_wlan_0: bcmdhd_wlan@0 {
+               compatible = "android,bcmdhd_wlan";
+               wlreg_on-supply = <&wlreg_on>;
+       };
+};
+
+&iomuxc {
+       imx6sx-sdb-murata-v1_sdext {
+               /* change MUXing on SD2 slot for control signals. */
+               pinctrl_usdhc2_1: usdhc2grp-1 {
+                       fsl,pins = <
+                               MX6SX_PAD_SD2_CMD__USDHC2_CMD           0x17059
+                               MX6SX_PAD_SD2_CLK__USDHC2_CLK           0x10059
+                               MX6SX_PAD_SD2_DATA0__USDHC2_DATA0       0x17059
+                       >;
+               };
+
+               /* Murata change SD3 to 4-bit SDIO only; use upper 4-bits for UART. */
+               pinctrl_wifi: wifigrp {
+                       fsl,pins = <
+                               MX6SX_PAD_SD3_CMD__USDHC3_CMD           0x17069
+                               MX6SX_PAD_SD3_CLK__USDHC3_CLK           0x10071
+                               MX6SX_PAD_SD3_DATA0__USDHC3_DATA0       0x17069
+                               MX6SX_PAD_SD3_DATA1__USDHC3_DATA1       0x17069
+                               MX6SX_PAD_SD3_DATA2__USDHC3_DATA2       0x17069
+                               MX6SX_PAD_SD3_DATA3__USDHC3_DATA3       0x17069
+                               MX6SX_PAD_KEY_COL0__GPIO2_IO_10         0x17059 /* CD */
+                               MX6SX_PAD_KEY_ROW0__GPIO2_IO_15         0x17059 /* WP */
+                               /* Murata Module control signals */
+                               MX6SX_PAD_SD2_DATA2__GPIO6_IO_10        0x13069 /* WL_REG_ON */
+                       >;
+               };
+       };
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2_1>;
+       bus-width = <1>;
+};
+
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wifi>;
+       bus-width = <4>;
+       no-1-8-v;       /* force 3.3V VIO */
+       wifi-host;      /* pull in card detect mechanism for BCMDHD driver */
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk-btwifi.dts b/arch/arm/boot/dts/imx6ul-14x14-evk-btwifi.dts
new file mode 100644 (file)
index 0000000..97a21dc
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/*
+ * NOTE: This DTS file is written for plugging in Murata Wi-Fi/BT EVK into Slot
+ * SD1 and using Murata i.MX InterConnect Ver 2.0 Adapter. Bluetooth UART &
+ * control signals are connected via ribbon cable (J1701 connector).
+ */
+
+#include "imx6ul-14x14-evk.dts"
+
+/ {
+       regulators {
+               wlreg_on: fixedregulator@100 {
+                       compatible = "regulator-fixed";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-name = "wlreg_on";
+                       gpio = <&gpio5 1 0>;
+                       startup-delay-us = <100>;
+                       enable-active-high;
+               };
+       };
+
+       bcmdhd_wlan_0: bcmdhd_wlan@0 {
+               compatible = "android,bcmdhd_wlan";
+               wlreg_on-supply = <&wlreg_on>;
+       };
+};
+
+&iomuxc {
+       imx6ul-evk-murata-v2 {
+               pinctrl_wifi: wifigrp {
+                       fsl,pins = <
+                               MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x03029
+                       >;
+               };
+       };
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_wifi>;
+       no-1-8-v;
+       wifi-host; /* add hook for SD card detect mechanism for BCMDHD driver */
+};