This does in indeed seem to help massively, at least for the 5 GHz band (qca4019 and qca9984).
All defaults (voskhod
):
root@lyra:~# cat /sys/class/gpio/gpiochip412/base
412
# /* 2.4G tx power switch */
# gpio_dir(39, GPIO_DIR_OUT);
# if ((nvram_match("wl0_country_code", "GB") && nvram_invmatch("territory_code", "EU/02") && nvram_invmatch("territory_code", "UK/02"))
# || nvram_match("wl0_country_code", "CN"))
# set_gpio(39, 1); // 3.3v: echo 1 > /sys/class/gpio/gpio39/value
# else
# set_gpio(39, 0); // 5v : echo 0 > /sys/class/gpio/gpio39/value
root@lyra:~# echo 451 >/sys/class/gpio/export
root@lyra:~# echo out >/sys/class/gpio/gpio451/direction
root@lyra:~# echo 0 >/sys/class/gpio/gpio451/value
# /* set DPDT */
# gpio_dir(44, GPIO_DIR_OUT);
# set_gpio(44, 1);
root@lyra:~# echo 456 >/sys/class/gpio/export
root@lyra:~# echo out >/sys/class/gpio/gpio456/direction
root@lyra:~# echo 1 >/sys/class/gpio/gpio456/value
# gpio_dir(45, GPIO_DIR_OUT);
# set_gpio(45, 0);
root@lyra:~# echo 457 >/sys/class/gpio/export
root@lyra:~# echo out >/sys/class/gpio/gpio457/direction
root@lyra:~# echo 0 >/sys/class/gpio/gpio457/value
# gpio_dir(46, GPIO_DIR_OUT);
# set_gpio(46, 1);
root@lyra:~# echo 458 >/sys/class/gpio/export
root@lyra:~# echo out >/sys/class/gpio/gpio458/direction
root@lyra:~# echo 1 >/sys/class/gpio/gpio458/value
# gpio_dir(47, GPIO_DIR_OUT);
# set_gpio(47, 0);
root@lyra:~# echo 459 >/sys/class/gpio/export
root@lyra:~# echo out >/sys/class/gpio/gpio459/direction
root@lyra:~# echo 0 >/sys/class/gpio/gpio459/value
after (voskhod
):
I'm not quite sure how to best express this in the DTS though.