Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Verifying of PBC HW button in BPI

Method 1:

Code Block
languagebash
 Added configurations for support of gpio_keys module and evtest  - https://github.com/rdkcentral/meta-cmf-bananapi/pull/98

...


 load the gpio-key module

...


root@Filogic-GW:/lib/modules/5.4.271-yocto-standard/kernel/drivers/input/keyboard# modprobe gpio_keys

...


root@Filogic-GW:/lib/modules/5.4.271-yocto-standard/kernel/drivers/input/keyboard# dmesg | grep gpio

...


[  163.696818] input: gpio-keys as /devices/platform/gpio-keys/input/input0

...


root@Filogic-GW:/lib/modules/5.4.271-yocto-standard/kernel/drivers/input/keyboard# cat /sys/kernel/debug/gpio

...


gpiochip0: GPIOs 428-511, parent: platform/1001f000.pinctrl, pinctrl_moore:

...


 gpio-428 (                    |tx-disable          ) in  lo

...


 gpio-430 (                    |los                 ) in  hi IRQ

...


 gpio-432 (                    |asm_sel             ) in  hi

...


 gpio-433 (                    |pca9545_rst         ) in  hi

...


 gpio-441 (                    |reset               ) in  lo IRQ ACTIVE LOW

...


 gpio-442 (                    |wps                 ) in  hi IRQ ACTIVE LOW

...


 gpio-482 (                    |los                 ) in  hi IRQ

...


 gpio-498 (                    |tx-disable          ) in  lo

...


 gpio-510 (                    |mod-def0            ) in  hi IRQ ACTIVE LOW

...


 gpio-511 (                    |mod-def0            ) in  hi IRQ ACTIVE LOW

...


 run the evtest

...


root@Filogic-GW:/lib/modules/5.4.271-yocto-standard/kernel/drivers/input/keyboard# evtest

...


No device specified, trying to scan all of /dev/input/event*

...


Available devices:

...


/dev/input/event0:      gpio-keys

...


Select the device event number [0-0]: 0

...


Input driver version is 1.0.1

...


Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100

...


Input device name: "gpio-keys"

...


Supported events:

...


  Event type 0 (EV_SYN)

...


  Event type 1 (EV_KEY)

...


    Event code 256 (BTN_0)

...


    Event code 529 (KEY_WPS_BUTTON)

...


Properties:

...


Testing ... (interrupt to exit)

...


Event: time 1739261802.084437, type 1 (EV_KEY), code 529 (KEY_WPS_BUTTON), value     # when HW WPS button pushed

...


Event: time 1739261802.084437, -------------- SYN_REPORT ------------

...


Event: time 1739261802.282856, type 1 (EV_KEY), code 529 (KEY_WPS_BUTTON), value 0     # when HW WPS button released


Method 2:

Code Block
languagebash
since buttons are associated with GPIO, we can do the export wps gpio using its number 

...


 In mt7988a-bananapi-bpi-r4-nand.dts file, we can see WPS is defined with 14 

...


    wps {

...


                        label = "wps";

...


                        linux,code = <KEY_WPS_BUTTON>;

...


                        gpios = <&pio 14 GPIO_ACTIVE_LOW>;

...


                };

...


root@Filogic-GW:~# cd /sys/class/gpio/

...


export       gpiochip428/ unexport

...


 Here by using 14+428=442, 428 (gpiochip428 refers to a GPIO controller that manages GPIO pins, starting from GPIO number 428.)

...


 export the WPS pin number

...


root@Filogic-GW:/sys/class/gpio# echo 442 > /sys/class/gpio/export

...


root@Filogic-GW:/sys/class/gpio/gpio442# cat value

...


1

...


 Whenever we press the WPS, this gpio442 value is changed to 

...


root@Filogic-GW:/sys/class/gpio/gpio442# cat value

...


0