android input子系统分析---驱动层

本文详细探讨了Android系统中Input子系统的驱动层,特别是针对传感器(sensor)的操作。从驱动如何从I2C寄存器读取sensor数据,到注册传感器,再到利用定时中断读取数据,最后将数据上报给Input子系统。通过实例讲解了mpu6880_i2c_driver的probe方法和数据读取过程,包括mpu6880_read_accel_data方法的i2c_transfer系统调用。
摘要由CSDN通过智能技术生成

前言:

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);
<
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值