This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL1805MOD: Power consumption in WakeOnWlan mode

Part Number: WL1805MOD

Hi,

we have a board with WL1805 chip. We are able to properly configure wowlan feature to our needs.

Wifi module is connected to wifi, wowlan is configured and we can put device to sleep mode. (echo mem > /sys/power/state). Then we are able to wake it up via configured wowlan packet -> Everything works well.

The difference between sleep mode without wowlan and with wowlan is 13mA. We verified that without wowlan WL_ENABLE is low and in wowlan mode is high.

My quesiton is whether 13mA is expected consumption of the module in wowlan state or if we can achieve lower results. Maybe we can do some configuration changes or optimizations to consume less power.

Our board is powered by battery and every drop in consumption is welcome.

Thanks.

  • Hi,

    We fixed a similar issue in the driver where the device wasn't going to low power mode when wowlan was enabled . pls check if you have following patch applied to the driver: https://git.ti.com/wilink8-wlan/wl18xx/commit/8cbba968049bbb8c52220b1f07489265dce993cb

    Saurabh

  • Hi Saurabh,

    we use mainline linux kernel 4.19.58.  I checked the history and it should be in. However it was actually replaced by this commit

    Therefore I assume that proper handling is part of the driver.

  • Hi Petr ,

    I believe you had mentioned wlan_en goes low  when system goes to suspend .  when wlan_en is low , wifi ip on wilink8 is actually powered off . do you have correct sdio settings in dtb file to allow power in suspend mode ?

    Saurabh

  • Hi Saraubh,

    it is allowed power during suspend mode when wowlan is active. It means wlan_en is high when wowlan is set and suspend mode is executed.

    Here's my device tree wifi part

    wlan_en_reg: fixedregulator@2 {
            compatible = "regulator-fixed";
            regulator-name = "wlan-en-regulator";
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
    startup-delay-us= <70000>;

            /* WL_EN */
            gpio = <&gpio0 26 0>;
            enable-active-high;
        };
    ...
    /* wl18xx card enable/irq GPIOs. */
        wlan_pins: pinmux_wlan_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x828, PIN_OUTPUT_PULLDOWN | MUX_MODE7)    /* gpmc_ad10.gpio0_26 WL_EN*/
                AM33XX_IOPAD(0x82C, PIN_INPUT_PULLUP | MUX_MODE7)   /* gpmc_ad11.gpio0_27 WL_IRQ*/
                AM33XX_IOPAD(0x87C, PIN_OUTPUT_PULLUP | MUX_MODE0)  /* gpmc_csn0.gpio1_29 BF_EN*/
            >;
        };

        /* wl18xx card enable/irq GPIOs. */
        wlan_pins_sleep: pinmux_wlan_pins_sleep {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x828, PIN_OUTPUT_PULLUP | MUX_MODE7)  /* gpmc_ad10.gpio0_26 WL_EN*/
                AM33XX_IOPAD(0x82C, PIN_INPUT_PULLUP | MUX_MODE7)   /* gpmc_ad11.gpio0_27 WL_IRQ*/
                AM33XX_IOPAD(0x87C, PIN_OUTPUT_PULLUP | MUX_MODE0)  /* gpmc_csn0.gpio1_29 BF_EN*/
            >;
        };
    ...
    &mmc2 {
        status = "okay";
        vmmc-supply = <&wlan_en_reg>;
        bus-width = <4>;
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&mmc2_pins &wlan_pins>;
        pinctrl-1 = <&mmc2_pins_sleep &wlan_pins_sleep>;
        ti,non-removable;
        ti,needs-special-hs-handling;
        cap-power-off-card;
        keep-power-in-suspend;

        #address-cells = <1>;
        #size-cells = <0>;
        wlcore: wlcore@0 {
            compatible = "ti,wl1805";
            reg = <2>;
            interrupt-parent = <&gpio0>;
            interrupts = <27 IRQ_TYPE_EDGE_RISING>;
        };
    };
  • Hi Petr,

    Current consumption really depends upon RF and how often SoC wakes up to receive packets, beacons and if any packets are being passed to the host. You can check current profile on VBAT and check if during suspend (wowlan enabled ) you see current spikes only when SoC wakes up to receive beacons , packets and otherwise current consumption should remain low 

    Saurabh