Introduction
This page will show you step-by-step how to interface a Inventek Systems ISM43362-B81 Wi-Fi 2.4Ghz SDIO SIP Module to the NXP MCIMX6UL-EVK.
Hardware Requirements
NXP MCIMX6UL-EVK base board:
MCIMX6UL-EVK at Digi-Key
Inventek Systems ISM43362-B81 Evaulation Board:
ISM43362-B81-EVB at Digi-Key
Software Requirements
- Install Software Image as shown: MCIMX6UL-EVK.
- Supplier Documentation: ISM43362-B81 Wi-Fi 2.4Ghz SDIO SIP Module
Modify /boot/uEnv.txt
This will force u-boot to load our customized device tree that is expecting the ISM43362-B81 to be connected over the large mmc interface.
#/boot/uEnv.txt
dtb=imx6ul-14x14-evk-ism43362-b81-evb.dtb`
Add ISM43362-B81’s firmware
We are assuming your microSD is stilll mounted at /media/rootfs/
wget https://raw.githubusercontent.com/rcn-ee/sdk-firmware/master/inventeksys/ISM43362_NVRAM_C1.txt
mkdir -p /media/rootfs/lib/firmware/brcm/
sudo cp -v ISM43362_NVRAM_C1.txt /media/rootfs/lib/firmware/brcm/brcmfmac43362-sdio.txt
Insert microSD and ISM43362-B81 and power up board
debian@arm:~$ dmesg | grep brcm
[ 22.217393] usbcore: registered new interface driver brcmfmac
[ 22.486704] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01-b30a427d
[ 22.694656] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code (0x30 0x30)
[ 25.208737] brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred
[ 27.884778] brcmfmac: brcmf_p2p_create_p2pdev: timeout occurred
debian@arm:~$ sudo ifconfig -a wlan0
wlan0 Link encap:Ethernet HWaddr c4:7f:51:80:05:e1
inet6 addr: fe80::c67f:51ff:fe80:5e1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST DYNAMIC MTU:1500 Metric:1
RX packets:1242 errors:0 dropped:2 overruns:0 frame:0
TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:165088 (161.2 KiB) TX bytes:5625 (5.4 KiB)
Kernel patch utilized
diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dts b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
index 7207280..5687142 100644
--- a/arch/arm/boot/dts/imx6ul-14x14-evk.dts
+++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
@@ -35,6 +35,16 @@
gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
+
+ wlreg_on: fixedregulator@100 {
+ compatible = "regulator-fixed";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-name = "wlreg_on";
+ gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+ startup-delay-us = <100>;
+ enable-active-high;
+ };
};
};
@@ -123,12 +133,17 @@
status = "okay";
};
+®_sd1_vmmc {
+ regulator-always-on;
+};
+
&usdhc1 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc1>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+ no-1-8-v;
keep-power-in-suspend;
wakeup-source;
vmmc-supply = <®_sd1_vmmc>;
@@ -317,7 +332,7 @@
pinctrl_usdhc1: usdhc1grp {
fsl,pins = <
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
- MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10071
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
@@ -325,6 +340,7 @@
MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */
MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x17059 /* SD1 VSELECT */
MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059 /* SD1 RESET */
+ MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x3029
>;
};
@@ -336,7 +352,7 @@
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
-
+ MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x3029
>;
};
@@ -348,6 +364,7 @@
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
+ MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x3029
>;
};