前言:
Input子系统包括标准Linux,Android核心驱动,Android相关设备驱动,G-sensor的设备驱动程序。传感器作为
一种输入设备,也是通过input系统把其数据上报给系统,或者通过input系统得到用户的配置信息。这里以传感器
为例学习input driver层。
Sensor驱动从通过I2C从寄存器中读取sensor值,然后写入/dev/input/目录下对应的文件。HAL层通过读取该文件的
值进一步传递给Framework层。每个厂商使用的具体的输入驱动硬件不同,因此软件也不尽相同,但是具体的原理都
是一样的。
代码路径: kernel\drivers\input。
1,概论
Sensor模块的module_i2c_driver方法会向i2c总线挂载该驱动。
module_i2c_driver(mpu6880_i2c_driver);
mpu6880_i2c_driver结构体如下,
static struct i2c_driver mpu6880_i2c_driver = {
.driver = {
.name = "mpu6880",
.owner = THIS_MODULE,
.pm = &mpu6880_pm,
.of_match_table = mpu6880_of_match,
},
.probe = mpu6880_probe,
.remove = mpu6880_remove,
.id_table = mpu6880_ids,
};
module_i2c_driver(mpu6880_i2c_driver);
<