高通kernel充电参数定义
来源:互联网 发布:mac搜狗五笔组词 编辑:程序博客网 时间:2024/05/16 06:03
1.从log中看出kernel初始化充电模块从subsys_initcall(batterydata_init);开始。
[ 2.818350] BATTERY: batterydata_init: Battery-data device created!
2.batterydata_init做了什么?
看下代码
int batterydata_init(void){int rc;struct battery_data *battery;battery = kzalloc(sizeof(*battery), GFP_KERNEL);if (!battery) {pr_err("Unable to allocate memory\n");return -ENOMEM;}/* character device to access the battery-data from userspace */rc = alloc_chrdev_region(&battery->dev_no, 0, 1, "battery_data");if (rc) {pr_err("Unable to allocate chrdev rc=%d\n", rc);return rc;}cdev_init(&battery->battery_cdev, &battery_data_fops);rc = cdev_add(&battery->battery_cdev, battery->dev_no, 1);if (rc) {pr_err("Unable to add battery_cdev rc=%d\n", rc);goto unregister_chrdev;}battery->battery_class = class_create(THIS_MODULE, "battery_data");if (IS_ERR_OR_NULL(battery->battery_class)) {pr_err("Fail to create battery class\n");rc = -ENODEV;goto delete_cdev;}battery->battery_device = device_create(battery->battery_class,NULL, battery->dev_no,NULL, "battery_data");if (IS_ERR(battery->battery_device)) {pr_err("Fail to create battery_device device\n");rc = -ENODEV;goto delete_cdev;}the_battery = battery;pr_info("Battery-data device created!\n");return 0;delete_cdev:cdev_del(&battery->battery_cdev);unregister_chrdev:unregister_chrdev_region(battery->dev_no, 1);the_battery = NULL;return rc;}
主要是填充结构体struct battery_data *battery;其他的都是正常的系统调用进行模块,设备注册,以及节点加载。
看看结构体battery_data里面有什么?
struct battery_data {dev_tdev_no;struct class*battery_class;struct device*battery_device;struct cdevbattery_cdev;struct bms_battery_data*profile;};主要是struct bms_battery_data *profile;这个结构体,其他的都是通用的。
看看bms_battery_data里面是什么?
/** * struct bms_battery_data - * @fcc:full charge capacity (mAmpHour) * @fcc_temp_lut:table to get fcc at a given temp * @pc_temp_ocv_lut:table to get percent charge given batt temp and cycles * @pc_sf_lut:table to get percent charge scaling factor given cycles *and percent charge * @rbatt_sf_lut:table to get battery resistance scaling factor given *temperature and percent charge * @default_rbatt_mohm:the default value of battery resistance to use when *readings from bms are not available. * @delta_rbatt_mohm:the resistance to be added towards lower soc to *compensate for battery capacitance. * @rbatt_capacitve_mohm: the resistance to be added to compensate for *battery capacitance * @flat_ocv_threshold_uv: the voltage where the battery's discharge curve *starts flattening out. * @max_voltage_uv:max voltage of the battery * @cutoff_uv:cutoff voltage of the battery * @iterm_ua:termination current of the battery when charging *to 100% * @batt_id_kohm:the best matched battery id resistor value * @fastchg_current_ma: maximum fast charge current * @fg_cc_cv_threshold_mv: CC to CV threashold voltage */struct bms_battery_data {unsigned intfcc;struct single_row_lut*fcc_temp_lut;struct single_row_lut*fcc_sf_lut;struct pc_temp_ocv_lut*pc_temp_ocv_lut;struct ibat_temp_acc_lut *ibat_acc_lut;struct sf_lut*pc_sf_lut;struct sf_lut*rbatt_sf_lut;intdefault_rbatt_mohm;intdelta_rbatt_mohm;intrbatt_capacitive_mohm;intflat_ocv_threshold_uv;intmax_voltage_uv;intcutoff_uv;intiterm_ua;intbatt_id_kohm;intfastchg_current_ma;intfg_cc_cv_threshold_mv;const char*battery_type;};
这里有大量和充电相关的参数定义。就是我们要找的参数。具体参数含义注释都有。
0 0
- 高通kernel充电参数定义
- 高通smb358的dtsi充电参数说明
- 高通平台:USB充电
- 高通研发出无线充电系统
- 高通平台手机开发之充电
- 高通平台usb充电检测
- 高通平台LK传递参数给kernel参考serialno的方式实现
- 高通kernel 补丁网址
- Kernel定义
- 高通QuickCharge 2.0技术可提高75%充电速度
- 高通Quick Charge 2.0 快速充电原理分析
- 高通Quick Charge 2.0 快速充电原理分析
- 高通Quick Charge 2.0 快速充电原理分析
- 高通msm8952平台如何修改SDP的充电电流
- 高通Quick Charge 2.0 快速充电原理分析
- SVM的高斯kernel 参数c和gamma说明
- Android系统高通平台Kernel Watchdog
- 高通平台 linux kernel pinctrl介绍
- YDB场景精选
- 正则表达式
- c++ primer之变量与基本类型
- sudo 出现unable to resolve host 解决方法
- 前端高质量知识(三)-JS变量对象详解
- 高通kernel充电参数定义
- linux日志管理
- YDB技术原理
- android studio 中如何配置ndk project path 解决NDK_PROJECT_PATH=null 解决方法
- 测试不同编码的string中文 equals结果
- Python爬取百度贴吧图片脚本
- vim中复制,剪切一行,快速查找某一单词的命令
- bug宝典 hadoop篇 /hadoop/hdfs/data is in an inconsistent state: file VERSION has cTime missing.
- 30分钟LINQ教程