Battery Characteristics

The devicetree battery node provides static battery characteristics.
In smart batteries, these are typically stored in non-volatile memory
on a fuel gauge chip. The battery node should be used where there is
no appropriate non-volatile memory, or it is unprogrammed/incorrect.

Upstream dts files should not include battery nodes, unless the battery
represented cannot easily be replaced in the system by one of a
different type. This prevents unpredictable, potentially harmful,
behavior should a replacement that changes the battery type occur
without a corresponding update to the dtb.

Required Properties:
 - compatible: Must be "simple-battery"

Optional Properties:
 - voltage-min-design-microvolt: drained battery voltage
 - energy-full-design-microwatt-hours: battery design energy
 - charge-full-design-microamp-hours: battery design capacity
 - precharge-current-microamp: current for pre-charge phase
 - charge-term-current-microamp: current for charge termination phase
 - constant-charge-current-max-microamp: maximum constant input current
 - constant-charge-voltage-max-microvolt: maximum constant input voltage

Battery properties are named, where possible, for the corresponding
elements in enum power_supply_property, defined in
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/power_supply.h

Batteries must be referenced by chargers and/or fuel-gauges
using a phandle. The phandle's property should be named
"monitored-battery".

Example:

	bat: battery {
		compatible = "simple-battery";
		voltage-min-design-microvolt = <3200000>;
		energy-full-design-microwatt-hours = <5290000>;
		charge-full-design-microamp-hours = <1430000>;
		precharge-current-microamp = <256000>;
		charge-term-current-microamp = <128000>;
		constant-charge-current-max-microamp = <900000>;
		constant-charge-voltage-max-microvolt = <4200000>;
	};

	charger: charger@11 {
		....
		monitored-battery = <&bat>;
		...
	};

	fuel_gauge: fuel-gauge@22 {
		....
		monitored-battery = <&bat>;
		...
	};
