资料下载

coding无法使用浏览器打开,必须用git工具下载:

git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git

视频观看

百问网驱动大全

编写input_dev驱动框架

参考资料:

  • Linux 5.x内核文档

  • Documentation\input\input-programming.rst

    • Documentation\input\event-codes.rst
  • Linux 4.x内核文档

    • Documentation\input\input-programming.txt
    • Documentation\input\event-codes.txt
  • 本节视频代码:GIT仓库中

    IMX6ULL\source\05_Input\02_input_dev_framework
    STM32MP157\source\A7\05_Input\02_input_dev_framework
    

1. 回顾框架

在这里插入图片描述

2. 怎么编写input_dev驱动

2.1 分配/设置/注册input_dev

在这里插入图片描述

2.2 硬件相关的操作

  • 申请中断

  • 在中断服务程序里

    • 读取硬件获得数据

    • 上报数据

      void input_event(struct input_dev *dev,
      		 unsigned int type, unsigned int code, int value);
      		 
      static inline void input_sync(struct input_dev *dev); // 实质也是 input_event
      

3. 现场编程

在这里插入图片描述

  • 在设备树里创建一个节点
    • 指定硬件资源等信息
  • 编译一个plartform_driver驱动
    • 在probe函数里
      • 从设备树获得资源
      • 分配/设置/注册input_dev
      • 硬件相关的操作 be函数里
      • 从设备树获得资源
      • 分配/设置/注册input_dev
      • 硬件相关的操作
        • request_irq等