电源部分驱动(DS2786 + MAX8677C)

 

尚未完成

 

DS2786中INITIAL_CAPACITY_SCALING_FACTOR的设置:

初试化值是0x80

IACR是Internal Accumulated Current Reg,就是充电的所有charge之和。单位是mVh。charge是从那个sensor resisitor上面测得的。

而ICSF的单位是百分比/Vh。

所以IACR*ICSF后就是百分比。

Relative Capacity是用IACR * Learned Capacity Scaling Factor + Last OCV Relative Capacity。

而Learned Capacity Scaling Factor是DS2786控制的。

 

PEN1 PEN2 POWER_SUS关系

我们是用DC接入,PEN1根据是否为充电器来决定充电电流(3000/R or decided by PEN2 & POWER_SUS)。

PEN2直接接高,表示最大充电电流限制在500ma(而非100ma).POWER_SUS可以用来控制是否充电。

 

 di->bat.external_power_changed =
      ds2786_battery_external_power_changed;  //when max-charger state changed, notify him

 

 static void power_supply_changed_work(struct work_struct *work)
{
 struct power_supply *psy = container_of(work, struct power_supply,
      changed_work);

 dev_dbg(psy->dev, "%s/n", __func__);

 class_for_each_device(power_supply_class, NULL, psy,
         __power_supply_changed_work);

 power_supply_update_leds(psy);

 kobject_uevent(&psy->dev->kobj, KOBJ_CHANGE);
}

显然,最后还是通过发uevent通知上层的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值