I2C设备驱动Input设备注册流程实例

本文通过实例详细介绍了如何将I2C设备注册为Input设备,包括分配input设备内存、设置设备属性、检查功能、设备检测及驱动注册等步骤。驱动主要涉及`i2c_driver_demo_probe`、`i2c_driver_demo_remove`和`i2c_driver_demo_detect`函数,用于探测和移除设备,并检测设备是否符合预期。此外,还提到了在detect回调中判断I2C适配器与客户端的绑定情况,以及Input设备上报事件的常见机制如轮询和中断。

在一般的外设中i2c接口是比较常用的,android驱动设备中,重力感应,光感,ctp等等外设通常都是注册为input设备进行操作的,现在就来
举例注册一个input设备的流程

注册成一个I2C设备驱动
#include <linux/i2c.h>
#include <linux/kernel.h>

#include <linux/module.h>
#include <linux/init.h>

static int i2c_driver_demo_probe(struct i2c_client *client,const struct i2c_device_id * id)
{
struct input_dev *input_dev;
input_dev = input_allocate_device();//分配input设备内存
if(input_dev == NULL)
{
printk(“Failed to allocate input device!!!\n”);
return -ENOMEM;
}
input_dev->name = “input_device_name”;
input_dev->id.bustype = BUS_I2C;
input_dev->dev.parent = &client->dev;
__set_bit(EV_ABS,input_dev->evbit);
__set_bit(EV_KEY,input_dev->evbit);
return 0;
}
static void __devexit i2c_driver_demo_remove(struct i2c_client *client)
{
return 0;
}

static const struct i2c_device_id i2c_driver_demo_id[

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值