<*> kmod-gpio-button-hotplug................Simple GPIO Button Hotplug driver
gpio-button-hotplug是gpio-button platform總線的driver,負責與name為gpio-button-hotplug的platform總線 device匹配
源代碼:./build_dir/linux-ralink_mt7620/gpio-button-hotplug/gpio-button-hotplug.c
<*> kmod-input-polldev........................... Polled Input device support
是input system的input_dev,采用采取輪詢方式,不斷通過input_gpio_button查詢GPIO狀態,然后發送input event。
源代碼: ./build_dir/linux-ralink_mt7620/linux-3.3.8/drivers/input/input-polldev.c
<*> kmod-button-hotplug................................ Button Hotplug driver
button-hotplug是面向應用層接口的,把input_event轉換成hotplug消息。這個主要是內核的hotplug機制(通過內核netlink技術廣播對象消息,從而支持熱插拔之類的)。OpenWRT用的是hotplug2,具體配置在/etc/hotplug.d下。如果要在應用層處理按鍵事件,就新建/etc/hotplug.d/button目錄,寫個測試腳本;
源代碼:./build_dir/linux-ralink_mt7620/button-hotplug/button-hotplug.c
源代碼:
build_dir/linux-ralink_mt7620/linux-3.3.8/arch/mips/ralink/dev-gpio-buttons.c
build_dir/linux-ralink_mt7620/linux-3.3.8/arch/mips/ralink/boards/wr8305rt-board.c
上面dev-gpio-buttons.c是gpio button platform driver注冊;boards/wr8305rt-board.c是特定的board板platform 總線的button device驅動