基于DragonBoard 410c之按键添加

原创 2018年01月03日 17:47:37

      今天给大家介绍一下如何运用Android已有的框架去添加按键.首先,我们来看一下按键的现象!

将DragonBoard 410c开发板连接到ubuntu, 输入以下命令:

$ adb root

$ adb shell

# getevent

在板子上分别按下电源键,音量+, 音量- 时,会看到有事件上报,如图1所示:


图1


现在来给大家详细介绍下如何在410c板子上添加一个按键,当输入上面的命令时按下该按键也能看到有事件上报.

1) 根据410c硬件原理图,如图2所示,选择一个合适的GPIO(支持中断),如GPIO_13.


图2

2)在msm8916-pinctrl.dtsi中添加GPIO13

        tlmm_gpio_key {

    //      qcom,pins = <&gp 107>, <&gp 108>, <&gp 109>;

            qcom,pins = <&gp 107>, <&gp 108>, <&gp 109>, <&gp 13>;

            qcom,pin-func = <0>; 

    //      qcom,num-grp-pins = <3>; 

            qcom,num-grp-pins = <4>;

            label = "tlmm_gpio_key";

            gpio_key_active: gpio_key_active {

                drive-strength = <2>; 

                bias-pull-up;

            };   

            gpio_key_suspend: gpio_key_suspend {

                drive-strength = <2>; 

                bias-pull-up;

            };   

        };


3) 查看kernel/include/uapi/linux/input.h文件,选择一个合适的键值(未被使用),如147,然后在apq8016-sbc.dtsi中添加相应的节点,如:

    gpio_keys {

        compatible = "gpio-keys";

        input-name = "gpio-keys";

        pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend";

        pinctrl-0 = <&gpio_key_active>;

        pinctrl-1 = <&gpio_key_suspend>;

 

        camera_focus {

            label = "camera_focus";

            gpios = <&msm_gpio 108 0x1>;

            linux,input-type = <1>;

            linux,code = <0x210>;

            gpio-key,wakeup;

            debounce-interval = <15>;

        };  

 

        camera_snapshot {

            label = "camera_snapshot";

            gpios = <&msm_gpio 109 0x1>;

            linux,input-type = <1>;

            linux,code = <0x2fe>;

            gpio-key,wakeup;

            debounce-interval = <15>;

        };  

 

        vol_up {

            label = "volume_up";

            gpios = <&msm_gpio 107 0x1>;

            linux,input-type = <1>;

            linux,code = <115>;

            gpio-key,wakeup;

            debounce-interval = <15>;

        };  

 

        my_key {

            label = "my_key";

            gpios = <&msm_gpio 13 0x1>;

            linux,input-type = <1>;

            linux,code = <147>;

            gpio-key,wakeup;

            debounce-interval = <15>;

        };  

    };  

4) 编译bootimage,并烧写到开发板就可以实现了,按下所添加的按键会看到有事件上报,如图3所示:


图3

以上就是添加按键的全部过程.至于上报的 0001 0093 00000001 表示什么含义,我将会在往后的blog进行讲解,敬请期待!









DragonBoard 410c手把手进行安卓开发之底层移植

耽误了这么久,终于开始写这篇文章了 这篇文章我们主要介绍如何从获取MSM源码,并为内核进行修改与移植的过程必须的前期准备首先我们需要准备如下四个条件: 1. Ubuntu 12.04 Linux ...
  • u010182064
  • u010182064
  • 2016年05月02日 10:14
  • 2156

玩转Dragonboard 410c USB摄像头——获取USB摄像头图像

摄像头是DIY常用的设备,在你的DIY创意上很多时候使用摄像头可以起到画龙点睛的作用,瞬间让你的DIY变得高大上,这期给大家推出一系列如何玩转Dragonbaord 410c开发板的USB摄像头的bl...
  • ANDYMFC
  • ANDYMFC
  • 2016年10月20日 18:39
  • 1599

快速下载和编译Dragonboard410c官网最新Android版本

最近刚入手一块Dragonboard410c开发板,准备用这块开发板自己搞搞几个智能家居类的原型玩玩,需要修改源代码的底层驱动,我比较熟悉Android系统,所以按着官方的开发编译文档一步步去弄,中间...
  • cgx090902
  • cgx090902
  • 2017年06月14日 17:10
  • 1162

如何在DragonBoard 410c上添加一个customized virtual sensors

随着近些年移动消费产品的快速发展,越来越多的传感器被添加到移动设备当中。而基于传感器各种各样的功能,工程师们开发出丰富多彩的应用,大大丰富了人们对移动设备产品的体验,也一定程度推动了移动消费产品的快速...
  • tamell5555
  • tamell5555
  • 2016年08月05日 13:39
  • 489

Dragonboard 410c 加载swap分区说明

  • 2017年06月18日 11:33
  • 56KB
  • 下载

官方DragonBoard 410c全套文档

  • 2015年12月22日 21:31
  • 19.88MB
  • 下载

高通DragonBoard 410c MIPI-DIS显示功能及驱动移植

为了满足部分IOT应用对显示的需求,高通DragonBoard 410c IOT平台提供了一个具有四路MIPI-DSI接口的高速扩展口用于提供显示支持,在DragonBoard 410c开发板设计中,...
  • ANDYMFC
  • ANDYMFC
  • 2016年08月05日 11:33
  • 4706

基于Dragonboard 410c平台的机器3D视觉——摄像机标定原理

相信大家在DIY机器人的时候,都想让自己的机器人像人一样能够识别周围的环境进行自主运动,今天推出的系列blog将带大家一起学习和了解机器3D视觉,向大家介绍3D视觉相关原理,并以Dragoboard4...
  • ANDYMFC
  • ANDYMFC
  • 2016年12月08日 11:37
  • 1260

基于DragonBoard 410c的遥控炮台六之控制协议优化(上)

一.背景 博主通过这个系列的博客给大家介绍了如何基于DragonBoard 410c开发怕得板去实现远程遥控炮台的demo制作,包括炮台底层基础从机构建与手机上位机远程遥控的设计。但是,作为一个完整的...
  • ad3600
  • ad3600
  • 2017年05月03日 11:50
  • 978

玩转Dragonboard 410c USB摄像头——保存图像

前一个blog中跟大家分享了如何快速的编写程序从连接在Dragonboard 410c开发板上的USB摄像头中读取图像信息,给大家简单介绍了一下如何搭建Dragonabord 410c开发板的摄像头开...
  • ANDYMFC
  • ANDYMFC
  • 2016年10月20日 18:59
  • 1224
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于DragonBoard 410c之按键添加
举报原因:
原因补充:

(最多只允许输入30个字)