A battery charger apparatus for charging a battery, comprises a
charge-current control circuit for receiving a charge-current control
signal to control an amount of charge current being drawn from an input
source, e.g., a USB port or a line adapter; an analog control circuit for
generating an analog control signal representative of a maximum amount of
charge current to be used to charge a battery; a digital charge reduction
loop including a circuit for determining a charge-current adjustment
signal based on a source voltage of the input source; a counter for
generating a digital count value based on the charge-current adjustment
signal; and a digital-to-analog converter (DAC) for generating a DAC
control signal based on the digital count value of the counter, the DAC
control signal being representative of a reduced amount of charge current
to be used to charge the battery; and a switching mechanism for selecting
one of the analog control signal or the DAC control signal based on the
source voltage, the selected control signal being used as the
charge-current control signal to the charge-current control circuit.