- Thread starter
- #61
What type of charger are you using? I noticed that if I unplug my 2A charger and then plug in a 500mA charger, my tablet will charger to 100%. (My other tablet always charges to 100%.)The best I got was 98%
***EDIT***
I think I may have found an elegant solution! The original board files contain an additional bit of configuration data for the charger. I reimplemented just that configuration bit. Specifically, it results in the following difference in /sys/kernel/debug/smb349:
Code:
0x00: 0x6a
0x01: 0x48 --> 0x40
0x02: 0x97
0x03: 0xe5
0x04: 0x38
0x05: 0x16 --> 0x06
0x06: 0x66 --> 0x76
0x07: 0xdf --> 0x50
0x09: 0x00
0x0a: 0x47
0x0b: 0x45 --> 0x4e
0x0c: 0xfb --> 0x80
0x0d: 0xe1 --> 0x98
0x0e: 0x29
0x10: 0x0d --> 0x0f
0x11: 0x8b
0x12: 0x36
Especially the 0x01 register seems interesting. A Lenovo comment in the code suggests that it has to do with the current for "taper charging", which is the charging type just before the battery is full. My hypothesis is that the configuration change lowers the taper charging current, making charging last longer, until the battery is full.
Here is the full configuration bit, including, in the comment, the corresponding registers:
Code:
.configuration_data = {
0x6A,/*0x00*/ /*input current*/ //0x00
0x40,/*taper current*/ //0X01
0xFF, //0x02
0xFF, //0x03
0x38,/*recharge current=100mA*/ //0x04
0x06,/*500mA for other charger*/ //0x05
0xFF, //0x06
0x40,/*min system voltage and termal enable*/ //0x07
0xFF, //0x08, doesn't exist
0xFF,/*OTG active low: 0x20*/ //0x09
0xFF, //0x0a
0x4E,/*0x8E*/ /*temperature monitor:0~50*/ //0x0b
0x80, //0x0c
0x98,/*<-- interrupt mask*/ //0x0d
0xFF, //0x0e
0xFF, //0x0f
0x0F,/*low battery threshold:3.58*/ //0x10
},
Last edited: