MTK平台下Battery驱动分析

主要涉及代码:Kernel:kernel-3.10\drivers\power\mediatek\kernel-3.10\drivers\misc\mediatek\mach\mt6580\\power\MTK Battery框架结构图通过上层通过读取创建一系列的设备节点获取电池相关的状态信息android电源管理系统/sys/c
摘要由CSDN通过智能技术生成

主要涉及代码:

Kernel:

kernel-3.10\drivers\power\mediatek\

kernel-3.10\drivers\misc\mediatek\mach\mt6580\<project_name>\power\


MTK Battery框架结构图


通过上层通过读取创建一系列的设备节点获取电池相关的状态信息




android电源管理系统
/sys/class/power_supply/ac/online //AC 电源连接状态 交流电 即电源插座


/sys/class/power_supply/usb/online //USB电源连接状态


/sys/class/power_supply/battery/status //充电状态


/sys/class/power_supply/battery/health //电池状态


/sys/class/power_supply/battery/present //使用状态


/sys/class/power_supply/battery/capacity //电池 level


/sys/class/power_supply/battery/batt_vol //电池电压


/sys/class/power_supply/battery/batt_temp //电池温度


/sys/class/power_supply/battery/technology //电池技术


代码框架:


battery_common.c

在Battery驱动模块中,battery_probe函数中会创建一些设备节点,并且运行一个线程bat_thread_kthread获取电池相关的数据信息


battery_kthread_hrtimer_init();//检测电池插入/拔出

kthread_run(bat_thread_kthread, NULL, "bat_thread_kthread");


在bat_thread_kthread线程中

int bat_thread_kthread(void *x)
{
	ktime_t ktime = ktime_set(3, 0);	/* 10s, 10* 1000 ms */

#ifdef BATTERY_CDP_WORKAROUND
	if (is_usb_rdy() == KAL_FALSE) {
		battery_log(BAT_LOG_CRTI, "CDP, block\n");
		wait_event(bat_thread_wq, (is_usb_rdy() == KAL_TRUE));
		battery_log(BAT_LOG_CRTI, "CDP, 
  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值