I am using GPIO_IO23 for WL_RST_PIN pin which is used for Resetting the WLAN chip.
GPIO_IO23 is defined in imxdl-pinfunc.h
#define MX6QDL_PAD_SD4_DAT5__GPIO2_IO13 0x354 0x73c 0x000 0x5 0x0
Defined this pin in my dts file under Hog group.
hog {
pinctrl_hog_1: hoggrp-1 {
fsl,pins = <
MX6QDL_PAD_SD4_DAT5__GPIO2_IO13 0x0f0b0 /* WIFI_ON (reset, active low) */
My Target is based on Wandboard design. So I refered Wandboard DT which has below configuration.
MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x0f0b0 /* WIFI_ON (reset, active low) */
and changed GPIO5_IO02 to GPIO2_IO13.
Used this pin in rfkill node.
wifi-rst-n = <&gpio2 13 0>;
static int wand_rfkill_wifi_probe(struct device *dev,
struct device_node *np,
struct wand_rfkill_data *rfkill)
{
int ret;
int wl_rst_n;
wl_rst_n = of_get_named_gpio(np, "wifi-rst-n", 0);
if (!gpio_is_valid(wl_rst_n))
pr_info("Dilshad %s incorrect wifi gpios\n",__func__);
dev_info(dev, "initialize wifi chip\n");
ret=gpio_request(wl_rst_n, "wl_rst_n");
dev_info(dev, "gpio request return value %d\n", ret);
gpio_direction_output(wl_rst_n, 0);
msleep(11);
gpio_set_value(wl_rst_n, 1);
I got below Kernel logs:
[ 0.318338] wandboard-rfkill rfkill.30: initialize wifi chip
[ 0.318352] wandboard-rfkill rfkill.30: gpio request return value -16
Error code 16 signifies to BUSY..
Also Let me know what does 0x0f0b0 signifies.
Please tell me if i am missing anything.