qcom smgr的attr概述
来源:互联网 发布:游戏配乐知乎 编辑:程序博客网 时间:2024/05/17 22:11
高通8926平台通过get和set attr来控制sensor,所有的attr由下面的enum列举。
typedef enum
{SNS_DDF_ATTRIB_POWER_INFO,
SNS_DDF_ATTRIB_POWER_STATE,
SNS_DDF_ATTRIB_DELAYS,
SNS_DDF_ATTRIB_RANGE,
SNS_DDF_ATTRIB_RESOLUTION_ADC,
SNS_DDF_ATTRIB_RESOLUTION,
SNS_DDF_ATTRIB_LOWPASS,
SNS_DDF_ATTRIB_MOTION_DETECT,
SNS_DDF_ATTRIB_DRIVER_INFO,
SNS_DDF_ATTRIB_DEVICE_INFO,
SNS_DDF_ATTRIB_THRESHOLD,
SNS_DDF_ATTRIB_ACCURACY,
SNS_DDF_ATTRIB_BIAS,
SNS_DDF_ATTRIB_ODR,
SNS_DDF_ATTRIB_SUPPORTED_ODR_LIST,
SNS_DDF_ATTRIB_REGISTRY_GROUP,
SNS_DDF_ATTRIB_IO_REGISTER,
SNS_DDF_ATTRIB_FIFO,
SNS_DDF_ATTRIB_ODR_TOLERANCE
} sns_ddf_attribute_e;
下面由本人结合代码简要说明,如有错误,请指正。
每个驱动必备的,都是set,没有get;
2. SNS_DDF_ATTRIB_MOTION_DETECT:
都是set,没有get;通过sns_smgr_set_hw_md_int()调用,这里只设置accel sensor,但gyro中也有对此attr的处理。
设置中断相关寄存器。
3. SNS_DDF_ATTRIB_THRESHOLD:
主要用于get光传感器和接近传感器的THRESHOLD
4. SNS_DDF_ATTRIB_ACCURACY:
主要用于get光传感器和接近传感器的精确度。代码里2771的prox的accuracy是40,手册里没找到,不知怎么得到的
5. SNS_DDF_ATTRIB_SUPPORTED_ODR_LIST:
sns_smgr_dd_init会调用sns_smgr_init_odr_tables来get device driver的odr list。
6. SNS_DDF_ATTRIB_REGISTRY_GROUP:
多用于ALS/PROX初始化时,通过sns_ddf_smgr_notify_event(SNS_DDF_EVENT_UPDATE_REGISTRY_GROUP),更新nv
7. SNS_DDF_ATTRIB_ODR_TOLERANCE:
只有accel lis3dsh的get attr中包含此attr,但实际没有地方进行get。
下面的属性以sns_dd_akm8975_get_attr为例:
1. SNS_DDF_ATTRIB_POWER_INFO:
需要将sns_ddf_power_info_s结构体赋值,它包含active_current和lowpower_current俩个成员,查看datasheet的
Electrical Characteristics-->>DC Characteristics-->>Current consumption
2. SNS_DDF_ATTRIB_RANGE:
需要将sns_ddf_range_s结构体赋值,它包含min和max俩个成员,查看datasheet的
Electrical Characteristics-->>Analog Circuit Characteristics-->>Magnetic sensor measurement range
3. SNS_DDF_ATTRIB_RESOLUTION_ADC:
需要将sns_ddf_resolution_adc_s结构体赋值,它包含bit_len和max_freq俩个成员,
bit_len:查看datasheet的Electrical Characteristics-->>Analog Circuit Characteristics-->>Measurement data output bit
max_freq:根据代码中注释,他是驱动在bit_len下合适的最大频率。AKM8975是50,不知怎么算的???
4. SNS_DDF_ATTRIB_RESOLUTION:
需要将sns_ddf_resolution_t类型变量赋值,它实际类型为q16_t,
查看datasheet的Overview-->>Output data resolution:13 bit (0.3 μT / LSB),经公式FX_FLTTOFIX_Q16(0.3 * TESLA_TO_GAUSS / 1000000)转换
5. SNS_DDF_ATTRIB_DELAYS:
需要将sns_ddf_delays_s结构体赋值,它包含time_to_active和time_to_data俩个成员,
查看datasheet的Electrical Characteristics-->>Analog Circuit Characteristics-->>Time for measurement
6. SNS_DDF_ATTRIB_DRIVER_INFO:
给sns_ddf_driver_info_s赋值
7. SNS_DDF_ATTRIB_DEVICE_INFO:
给sns_ddf_device_info_s赋值
下面的属性以sns_dd_acc_bma2x2_get_attr为例:
1. SNS_DDF_ATTRIB_LOWPASS:
需要将sns_ddf_lowpass_freq_t类型变量赋值,它实际类型为q16_t,
查看datasheet的Table 8: Bandwidth configuration
2. SNS_DDF_ATTRIB_IO_REGISTER:
虽然是get,但传入的value是有值的,driver根据这个值来读取指定寄存器,在把值赋值给value传给SMGR
需要将sns_ddf_io_register_s结构体赋值。
3. SNS_DDF_ATTRIB_BIAS:
轴偏差,没有偏差就是0
4. SNS_DDF_ATTRIB_ODR:
就是将之前set的odr反馈给smgr,可配置的值查看datasheet的Table 8: Bandwidth configuration
5. SNS_DDF_ATTRIB_FIFO:
将sns_ddf_fifo_attrib_get_s结构体赋值,值不知道是怎么来的。set的时候是写了两个reserved的寄存器,不知道什么用。
阅读全文
0 0
- qcom smgr的attr概述
- 高通8926 smgr的attr概述
- PostgreSQL的Storage(2)-file 和 smgr
- QCOM 开机的LOGO显示
- Qcom从CPU的启动
- Qcom spk protect 的流程
- Linux/Android系统知识之Qcom Platform开机流程概述
- qcom 8916平台的i2c init部分
- qcom 平台 Kernel Panic log 的保存
- linux device tree的board-id、qcom,msm-id、qcom,pmic-id属性
- style[attr]和style.attr的问题
- attr 的使用
- jquery 的attr
- jQuery的attr()属性
- attr()的使用
- jquery的attr
- attr
- attr()
- Redis数据库--快速入门手册
- 守护进程理解与创建
- 怎么查看电脑主板是否支持UEFI+GPT启动模式
- Win10上的git、github部署及基本使用方法
- 排序+链表 CF——752D
- qcom smgr的attr概述
- 30.根据程序当前界面找出对应活动-活动实践
- 为Cubieboard2构建自己的的Debian Linux的步骤(2)(分色排版)下载cb2的内核==
- CTF安卓逆向练习第三弹
- Spring mvc interceptor配置拦截器
- SYD8801 ADC使用说明【校准】
- centos6.7下ngnix1.8+tomcat8+memcached1.4.25 集群实现session共享
- SIM800A模块进行HTTP的GET和POST操作
- Android 之简易涂鸦板