Linux驱动开发 -- touch驱动注册

Linux i2c驱动开发 – touch 驱动


前言

  本章主要针i2c driver的注册,卸载以及probe函数的调用进行内容整理。初步学习,如有错误,还请指正。


一、i2c 驱动框架

在这里插入图片描述
  i2c驱动包含四个部分:总线、驱动、设备、适配器。当绑定总线后注册驱动时,驱动会进入设备列表进行对目标设备进行匹配,若匹配成功,则会调用probe函数。当probe函数执行成功后,那么整个驱动就注册完成了。

  那么在此之前,我们需对编写的模块进行处理。

二、Linux的MODULE声明

  头文件:#include <linux/module.h>
  这个头文件包含了许多符号与函数的定义,这些符号与函数多与加载模块有关。

1. MODULE相关声明

MODULE_AUTHOR("Tory");  //声明谁编写这个模块
MODULE_DESCRIPTION("TouchScreen Driver");   //概述模块内容
MODULE_DEVICE_TABLE(i2c, sth_ts_id);	//申明该模块支持哪些设备,第一个参数为设备类型,第二个参数为支持的设备列表
MODULE_LICENSE("GPL");  //声明此模块的许可证,内核接受的许可证有:“GPL”,“GPLv2”,“GPL and additional rights”,“Dual BSD/GPL”,“Dual MPL/GPL”,“Proprietary”。

  需要注意的是,如果未用MODULE_LICENSE申明模块的许可证时,那么内核在加载该模块时可能会报内核污染的错误(kernel tainted)。

三、模块的初始化与卸载

  头文件:#include <linux/init.h>
  这个头文件包含了模块初始化和清除的函数。

1. module_init()

此为模块初始化函数。包含驱动的注册、匹配及初始化。

static int __init sth_ts_init(void)
{
   
	int ret;
	ret = i2c_add_driver
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值