Comment 1 by Nikolaus Schaller, May 4, 2014
Compare/see https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commi t/?id=94647a30124e2c7243ffcd780862ed591ae36450 since the Overo uses the same Wi2Wi module as we do. Only hardware wiring (power, reset etc.) might be slightly different.
Comment 2 by Nikolaus Schaller, May 24, 2014
I have looked into this and they use a new feature of the MMC driver - which can now separately control VDDQ and VDD-AUX. Those are used to control the WiFi reset through a GPIO: /* Regulator to trigger the nReset signal of the Wifi module */ w3cbw003c_wifi_nreset: regulator-w3cbw003c-wifi-nreset { pinctrl-names = "default"; pinctrl-0 = <&w3cbw003c_pins &w3cbw003c_2_pins>; compatible = "regulator-fixed"; regulator-name = "regulator-w3cbw003c-wifi-nreset"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&gpio1 16 GPIO_ACTIVE_HIGH>; /* gpio_16: WiFi nReset */ startup-delay-us = <10000>; }; &mmc2 { pinctrl-names = "default"; pinctrl-0 = <&mmc2_pins>; vmmc-supply = <&w3cbw003c_npoweron>; vqmmc-supply = <&w3cbw003c_bt_nreset>; vmmc_aux-supply = <&w3cbw003c_wifi_nreset>; bus-width = <4>; cap-sdio-irq; non-removable; }; We could easily achieve the same by providing the TCA6507 GPIO for the "w3cbw003c_npoweron". Then, we will no longer need the "reset-gpios" properties and patch for drivers/mmc/host/omap_hsmmc.c Another bonus is that we can specify a startup-delay (if we want to).
Comment 3 by Nikolaus Schaller, May 24, 2014
After thinking a little, this might not correctly work. The reason is that this requires a separate reset for WLAN and Bluetooth. On the Overo it is available. On our board, this would mean that disabling the interface will activate reset for both, effectively stopping Bluetooth as well. So they can't be operated independently. Using the reset mechanism we currently have, means that there will be a short reset impulse - and only if needed by the MMC driver. What we could learn is to use cap-sdio-irq. This might speed up WiFi processing.
Comment 4 by Nikolaus Schaller, Dec 17, 2016
All what is described here as problems seems to be working at least in 4.9.0. So we can close this topic.
Status:
Fixed
Sign in to reply to this comment.
Reported by Nikolaus Schaller, Apr 10, 2014