A method of charging a battery (150, 250, 550, 650), the method comprising: receiving a first input voltage and a first input current at the input of a switching regulator (203, 510, 610, 1001); generating a first output current from the switching regulator (203, 510, 610, 1001) to the battery (150, 250, 550, 650), wherein the first output current to the battery (150, 250, 550, 650) is greater than the first input current; and wherein generating the first output current from the switching regulator (203, 510, 610, 1001) to the battery (150, 250, 550, 650) comprises: initially generating a constant precharge current; when the battery voltage increases above a precharge voltage threshold, increase the first output current to a maximum value; sensing the first input current to the switching regulator (203, 510, 610, 1001), and in accordance therewith, adjusting the first output current as a first output voltage on the battery (150, 250, 550, 650) increases, so that the first input current to the switching regulator (203, 510, 610, 1001) is maintained below a first value, wherein the first output current is reduced incrementally in response to sensing the first input current to the switching regulator (203, 510, 610, 1001), and determining that the first input current has increased above the first value. receiving a first input voltage and a first input current at the input of a switching regulator (203, 510, 610, 1001); generating a first output current from the switching regulator (203, 510, 610, 1001) to the battery (150, 250, 550, 650), wherein the first output current to the battery (150, 250, 550, 650) is greater than the first input current; and wherein generating the first output current from the switching regulator (203, 510, 610, 1001) to the battery (150, 250, 550, 650) comprises: initially generating a constant precharge current; when the battery voltage increases above a precharge voltage threshold, increase the first output current to a maximum value; sensing the first input current to the switching regulator (203, 510, 610, 1001), and in accordance therewith, adjusting the first output current as a first output voltage on the battery (150, 250, 550, 650) increases, so that the first input current to the switching regulator (203, 510, 610, 1001) is maintained below a first value, wherein the first output current is reduced incrementally in response to sensing the first input current to the switching regulator (203, 510, 610, 1001), and determining that the first input current has increased above the first value. initially generating a constant precharge current; when the battery voltage increases above a precharge voltage threshold, increase the first output current to a maximum value; sensing the first input current to the switching regulator (203, 510, 610, 1001), and in accordance therewith, adjusting the first output current as a first output voltage on the battery (150, 250, 550, 650) increases, so that the first input current to the switching regulator (203, 510, 610, 1001) is maintained below a first value, wherein the first output current is reduced incrementally in response to sensing the first input current to the switching regulator (203, 510, 610, 1001), and determining that the first input current has increased above the first value.