debounce_interval =10, //设置按键防抖动时间,也可以不设置 .type = EV_KEY, .active_low = 1, //低电平有效 }, }; static struct gpio_keys_platform_data board_button_data = { .buttons = board_buttons, .nbuttons = ARRAY_SIZE(board_buttons), }; struct platform_device my_button_device =...
.wakeup =1, //设置为唤醒源 . debounce_interval =10, //设置按键防抖动时间,也可以不设置 .type = EV_KEY, .active_low = 1, //低电平有效 }, }; static struct gpio_keys_platform_data board_button_data = { .buttons = board_buttons, .nbuttons = ARRAY_SIZE(board_buttons), }; struct ...
SW_*)*/00000007intgpio;00000008intactive_low;00000009char*desc;00000010inttype;/*input event type (EV_KEY, EV_SW)*/00000011intwakeup;/*configure the button as a wake-up source*/00000012intdebounce_interval;/*debounce ticks interval in msecs*/00000013boolcan_disable;00000014...
//按键引脚.code=KEY_POWER,//用来定义按键产生事件时,要上传什么按键值.desc="power key",//描述信息,不填的话会默认设置为"gpio-keys".wakeup=1,//设置为唤醒源.debounce_interval=10,//设置按键防抖动时间,也可以
10 .debounce_interval = debounce, \ 11 } 12 13 static struct gpio_keys_button imx6q_buttons[] = { 14 GPIO_BUTTON(SABRESD_KEY_USER1, KEY_VOLUMEUP, 1, "user-key-1", 0, 1), 15 GPIO_BUTTON(SABRESD_KEY_USER2, KEY_VOLUMEDOWN, 1, "user-key-2", 0, 1), ...
(2)遍历DTS所有子节点,依次读取key/button的gpios、flags、linux,code、linux,input-type、gpio-key,wakeup、debounce-interval属性字段。 按键注册 gpio_keys_setup_key主要完成gpio的申请、配置以及gpio所关联的irq的申请、初始化配置功能,具体执行流程如下。
linux,code=<KEY_F14>;label="GPIO F14 Power";linux,input-type=<1>;gpio-key,wakeup=<1>;debounce-interval=<100>;};button@2 {gpios=<&pio 51 IRQ_TYPE_EDGE_BOTH>;linux,code=<KEY_F15>;label="GPIO F15 Power";linux,input-type=<1>;gpio-key,wakeup=<1>;debounce-interval=<100>;};}...
基础设备树文件中需将消抖延时参数debounce-interval配置为0(默认已为0)。如没有对其进行配置,驱动会将其设置成默认的参数值5ms,此时示波器测试结果约为5ms。在硬件特性上,由于按键电压由低电平上拉到高电平比较缓慢(实际测试中延时约为80us),因此本次测试实时事件的输入采用下降沿触发方式。
19 if (button->debounce_interval) 20 mod_timer(&bdata->timer, 21 jiffies + msecs_to_jiffies(button->debounce_interval)); 22 else 23 gpio_keys_report_event(bdata); 24 25 return IRQ_HANDLED; 26 } 第8行是报告键值,而第9行是1个同步事件,暗示前面报告的消息属于1个消息组。譬如用户在报告完...
switch-4{debounce-interval = <10>;label ="sw4";gpios = <&gpio10x340x0>;linux,code = <0x8f>;wakeup-source;};};}; 6. 在2023.2版本里,ATF和PLM需要两个patch来支持GPIO唤醒。使用下面方法将两个patch应用到petalinux工程,最后执行petalinux-build命令。