Hi! > Let's allow reconfiguring the cpcap-charger max charge voltage and > default to 4.2V that should be safe for the known users. > > This allows the users to use 4.35V for the extra capacity if really > needed at a cost of probably shorter battery life. We check the > constant charge voltage limit set by the battery. > > Some pieces of the property setting code is based on an earlier patch > from Pavel Machek <pavel@xxxxxx> but limited to configuring the charge > voltage for now. I'm sorry I'm a tiny bit busy at the moment. > +const int cpcap_charge_voltage[] = { > + [CPCAP_REG_CRM_VCHRG_3V80] = 3800000, > + [CPCAP_REG_CRM_VCHRG_4V10] = 4100000, > + [CPCAP_REG_CRM_VCHRG_4V12] = 4120000, > + [CPCAP_REG_CRM_VCHRG_4V15] = 4150000, > + [CPCAP_REG_CRM_VCHRG_4V17] = 4170000, > + [CPCAP_REG_CRM_VCHRG_4V20] = 4200000, > + [CPCAP_REG_CRM_VCHRG_4V23] = 4230000, > + [CPCAP_REG_CRM_VCHRG_4V25] = 4250000, > + [CPCAP_REG_CRM_VCHRG_4V27] = 4270000, > + [CPCAP_REG_CRM_VCHRG_4V30] = 4300000, > + [CPCAP_REG_CRM_VCHRG_4V33] = 4330000, > + [CPCAP_REG_CRM_VCHRG_4V35] = 4350000, > + [CPCAP_REG_CRM_VCHRG_4V38] = 4380000, > + [CPCAP_REG_CRM_VCHRG_4V40] = 4400000, > + [CPCAP_REG_CRM_VCHRG_4V42] = 4420000, > + [CPCAP_REG_CRM_VCHRG_4V44] = 4440000, > +}; We really don't need this kind of explicit table, as the values can be simply computed. Can I offer this? Best regards, Pavel static int voltage_to_register(int microvolt) { int milivolt = microvolt/1000; int res; if (milivolt < 4100) return CPCAP_REG_CRM_VCHRG_3V80; if (milivolt > 4350) return -EINVAL; milivolt = milivolt - (4100 - 250); res = milivolt / 250; BUG_ON(res < 1); BUG_ON(res > 0xb); return CPCAP_REG_CRM_VCHRG(res); } -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature