Значить так. если зарядка от USB, есть три варианта, два неправильные.
1) Правильный - ставим микруху которая договаривается с хостом о токе заряда, я использую BQ24295RGE, так же можно контроллером глянуть подтяжки USB шины и тогда применить например BQ25306, TP5100.
2) Неправильный - не общаемся по USB и поэтому не можем рассчитывать на ток более 500мА, в этом случае кажется логичным не ставить импульсник, я ставлю MCP73812T-420I/OT, ток примерно 450 мА, греется да, но полигон натянул и температура под 70 градусов, терпимо.
3) Сильно неправильный, используем импульсную зарядку на токи более 500 мА, но не учитываем что может выдать нам USB хост. Такое я не использую, но можно посмотреть микросхему TP5100, либо BQ25306
Если зарядка от внешнего напряжения, всё проще, мы заранее знаем сколько нам может дать адаптер, настраиваем на это микруху, тогда TP5100, либо BQ25306.
Интегрированного решения для подсчета заряда я не нашел, ставлю отдельно - MAX17262REWL+. Но у нее бывает тупость, упорно показывает менее 15% заряда при напряжении аккума под 4 вольта (1S), естественно это вранье и там по факту не менее 60%. Для того чтобы этот эффект минимизировать, периодически (каждые 5 включений прибора) командой делаю сброс микрухи, после чего она заново оценивает состояние аккума и считает заряд более правильно. Сама микруха простая по подключению (даже шунт не нужен) но довольно навороченная внутри, там и счётчик кулонов внутри и мат модель (оценивает напряжение, внутреннее сопротивление и температуру).