SMB23x battery charger

SMB23x is a single-cell linear battery charger which could draw 1.5 ampere
current at max from USB adapter to power the system and charge the battery,
and support 1 amper charging current at max.

The SMB23x interface is via I2C bus.

Required Properties:
- compatible:			Must be "qcom,smb231-lbc", "qcom,smb232-lbc" or
				"qcom,smb233-lbc".
- reg:				The device 7-bit I2C address.

Optional Properties:

- interrupts			This indicates the IRQ number of the GPIO connected to
				the STAT pin.
- qcom,bms-psy-name		The power supply name which used for getting the battery
				capacity. If left unspecified a pre-defined default value
				will be used for capacity value.
- pinctrl-names			The pinctrl state name of the pin which connects to the
				STAT line for interrupt notification.
				Only support: "default".
- pinctrl-0			The phandle to specify the configuration of the pin which
				connects to the STAT line for interrupt notification.
- qcom,float-voltage-mv	 	Float Voltage in mV - the maximum voltage up to which
				the battery is charged. Supported range from 3480mV
				to 4720mV.
- qcom,charging-timeout		Maximum duration in minutes that a single charge cycle
				may last.  Supported values are: 0, 180, 270, 360.
				A value of 0 means that no charge cycle timeout is used
				and charging can continue indefinitely.
- qcom,recharge-thresh-mv	Specifies the minimum voltage drop in millivolts below
				the float voltage that is required in order to initiate
				a new charging cycle.
				Supported values are: 150, 80mV.
- qcom,iterm-ma			Specifies the termination current to indicate
				end-of-charge. Possible values in mA: 20, 30, 50, 75.
- qcom,fastchg-ma		Specifies the maximum fast charge current. The possible
				value for fast charge current in mA: 100, 250, 300, 370,
				500, 600, 700, 1000.
- qcom,chg-inhibit-thresh-mv	Specifies the maximum voltage drop in millivolts below
				the float voltage for charging inhibit. The possible
				value for the threshold in mV: 265, 385, 512.
- qcom,hot-bat-decidegc		Hot battery temperature in decidegC. Charging will be
				stopped if battery temperature higher than it.
				The possible value: 500, 550, 600, 650.
- qcom,cold-bat-decidegc	Cold battery temperature in decidegC. Charging will be
				stopped if battery temperature lower than it.
				The possible value: (-50), 0, 50, 100.
- qcom,warm-bat-decidegc	Warm battery temperature in decidegC. The float voltage
				and fastchg current compensation(reduction) will be
				applied when the battery temperature higher than it but
				lower than "qcom,hot-bat-decidegc".
				The possible value: 400, 450, 500, 550.
- qcom,cool-bat-decidegc	Cool battery temperature in decidegC. The float voltage
				and fastchg current compensation(reduction) will be
				applied when the battery temperature lower than it but
				higher than "qcom,cold-bat-decidegc".
				The possible value: 0, 50, 100, 150.
- qcom,soft-temp-vfloat-comp-mv
				Specifies the float voltage compensation(reduction)
				in mV used for battery charging in warm/cool status.
				The possible value in mV: 80, 120, 160, 200.
- qcom,soft-temp-current-comp-ma
				Specifies the fastchg current compensation(reduction)
				in mA used for battery charging in warm/cool status.
				The possible value in mA should range from 0 to the
				value set in "qcom,fastchg-ma".
- qcom,thermal-mitigation	Array of input current limit values for different
				system thermal mitigation level.
- qcom,charging-disabled	A boolean property to specify if charging should be
				disabled in the build by default.
- qcom,recharge-disabled	A boolean property to specify if recharging depends
				on the voltage drop should be disabled. If yes, the
				battery won't be recharging whatever the battery
				voltage drops below the float voltage.
- qcom,aicl-disabled		A boolean property used to disable AICL function.
- qcom,apsd-disabled		A boolean property used to disable APSD function.
- qcom,chg-inhibit-disabled:	A boolean property used to disable the charger-inhibit
				function.
- qcom,iterm-disabled		A boolean property used to disable the current
				termination current feature.
- qcom,bms-controlled-charging  A boolean property to indicate if the charging
				termination and the recharging behavior will be
				controlled by BMS power supply according to the
				battery SoC (state of charge). If this property
				is specified, charging termination based on
				current and recharging based on voltage drop will
				be disabled automatically.
				"qcom,bms-psy-name" is need if it's been specified.

Example:
&i2c_4 {
	smb23x-lbc@1b {
		compatible = "qcom,smb231-lbc";
		reg = <0x12>;
		interrupt-parent = <&msm_gpio>;
		interrupts = <58 2>;
		qcom,bms-psy-name = "bms";
		pinctrl-names = "default";
		pinctrl-0 = <&smb_int_default>;
		qcom,float-voltage-mv = <4200>;
		qcom,charging-timeout = <360>;
		qcom,recharge-thresh-mv = <150>;
		qcom,iterm-ma = <50>;
		qcom,fastchg-ma = <1000>;
		qcom,hot-bat-decidegc = <550>;
		qcom,warm-bat-decidegc = <450>;
		qcom,cool-bat-decidegc = <50>;
		qcom,cold-bat-decidegc = <(-50)>;
		qcom,soft-temp-vfloat-comp-mv = <200>;
		qcom,soft-temp-current-comp-ma = <400>;
		qcom,chg-inhibit-disabled;
		qcom,apsd-disabled;
		qcom,thermal-mitigation = <1500 900 500 100>;
	};
};
