TP-Link Archer C6 V3.20 - WPS button does not work

Hi all,

I am finding an issue with TP-Link Archer C6 V3.2 (using TP-Link Archer C6 V3 firmware v22.03.2) regarding the WPS button. If you press it, it is not detected:

root@OpenWrt:~# cat /sys/kernel/debug/gpio | grep in
 gpio-488 (                    |reset               ) in  hi IRQ ACTIVE LOW
 gpio-508 (                    |wps                 ) in  hi IRQ ACTIVE LOW

WPS is in "hi" state when the button being pressed or not. No change. Reset button is detected correctly.

So, I wonder if there is an error with GPIO mappings. Someone has this information?

Thanks in advance.

Pablo.

In GPL tar of Archer A6/C6 v3, wps button is defined as
GPIO_BUTTON_WPS = 10
, but
gpios = <&gpio 28 GPIO_ACTIVE_LOW>
in dts of OpenWrt.
(GPL_Archer A6&C6.tar.gz/c6u-gpl/mtk_ApSoC_5050/Uboot/board/rt2880/ralink_gpio_C6V3.c, DL page)

1 Like

Thank you. I will be checking this, also looking if there are a difference between v3 and v3.20, because the GPIO mapping could be different.

I will be working in this fix and come back with feedback.

The v3 is the v3.20, there is no difference.

1 Like

Thanks!! I have tested this and I can confirm that works:

echo "490" > /sys/class/gpio/export # As the GPIO base is 480, 480+10
echo "in" > /sys/class/gpio/gpio490/direction # input mode
cat /sys/class/gpio/gpio490/value # check status

When the button is released the status is '1', while it is pressed it turns to '0'.

I will be trying to modify this in the OpenWRT source code, then compile a firmware and verifies that all is OK.

1 Like

I modified the GPIO number in the source code, and in fact, that worked. Now all the WPS button behavior works as expected.

In order to commit/push this fix and to be useful by all the community, I must follow this instructions? https://openwrt.org/docs/guide-developer/working-with-github-pr

That is enough?

Thanks!!

Pablo.