在一般的外设中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)