123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- SMB1360 battery charger and fuel gauge
- SMB1360 is a single path switch-mode battery charger and
- fuel gauge. The charger has a max current rating of 1.5A.
- The fuel gauge uses voltage + coulomb counting to report
- the state of charge.
- The smb1360 interface is via I2C bus.
- Required Properties:
- - compatible: Must be "qcom,smb1360-charger-fg"
- - reg: The device 7-bit I2C address.
- Optional Properties:
- - interrupts This indicates the IRQ number of the GPIO
- connected to the STAT pin.
- - pinctrl-names: The state name of the pin configuration. Only
- support: "default".
- - pinctrl-0: The phandle of the pin configuration node in
- pinctrl for smb_int_pin.
- For details of pinctrl properties, please refer to:
- "Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt"
- - qcom,float-voltage-mv Float Voltage in mV - the maximum voltage up to which
- the battery is charged. Supported range 3460V to 4360V
- - qcom,charging-timeout Maximum duration in minutes that a single charge
- cycle may last. Supported values are: 0, 192, 384,
- 768, and 1536. A value of 0 means that no
- charge cycle timeout is used and charging can
- continue indefinitely.
- - qcom,charging-disabled Set this if charging should be disabled in the build
- by default. Useful in usecases where battery current
- needs to be profiled even when USB is present.
- - 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: 50, 100, 200 and 300mV.
- - qcom,recharge-disabled Disabled the auto-recharge function
- - qcom,iterm-ma Specifies the termination current to indicate end-of-charge.
- Possible values in mA - 25, 50, 75, 100, 125, 150, 175, 200
- - qcom,iterm-disabled Disables the termination current feature. This is a bool
- property.
- - qcom,chg-inhibit-disabled Disables the charger-inhibit function.
- - qcom,disable-ov-ends-chg-cycle
- The boolean property to indicate if the ov-ends-charge-cycle
- feature is disabled. If the feature is disabled, charging
- could be resumed from battery OV (over voltage) status; otherwise,
- charging cycle will be terminated after battery OV event and
- won't be resumed until disable/enable charging.
- - qcom,batt-id-disabled Disabled the batt-id function. Doing this will
- disable the ability of RID based battery profile selection.
- - qcom,fg-delta-soc The delta in SOC which will generate an interrupt
- - qcom,fg-soc-max SOC value (max) at which an interrupt is generated.
- This can be used to alert the system when the
- battery reaches a specific (maximum) SOC value.
- - qcom,fg-soc-min SOC value (min) at which an interrupt is generated.
- This can be used to alert the system when the
- battery reaches a specific (minimum) SOC value.
- - qcom,fg-voltage-min-mv The minimum volatge at which an interrupt is generated.
- This can be used as an alert mechanism.
- - qcom,fg-voltage-empty-mv The voltage which indicates the battery is empty.
- - qcom,thermal-mitigation: Array of input current limit values for different
- system thermal mitigation level.
- - qcom,stat-pulsed-irq: A boolean flag to indicate the state-irq pin will generate pulse
- signal when interrupt happened. If this property is not specified,
- the default configuration is static level irq.
- - qcom,shdn-after-pwroff: A bool property to configure smb1360 for shutdown at power-off.
- - qcom,empty-soc-disabled: A bool property to indicate whether stop updating empty_soc flag.
- System reports 0% SOC when empty_soc being set.
- - qcom,awake-min-soc A bool property to indicate whether the system is prevented from
- sleeping when SOC is under the min_soc threshold.
- - qcom,batt-profile-select A boolean flag to indicate of battery-profile
- selection is enabled.
- - qcom,profile-a-rid-kohm The battery-ID resistor (RID) in Kohm supported by
- profile-A of SMB1360. This should be specified
- if 'batt-profile-select' is defined.
- - qcom,profile-b-rid-kohm The battery-ID resistor (RID) in Kohm supported by
- profile-B of SMB1360. This should be specified
- if 'batt-profile-select' is defined.
- - qcom,batt-id-vref-uv The reference voltage on the battery-ID line
- specified in micro-volts.
- - qcom,batt-id-rpullup-kohm The pull-up resistor connected on the battery-ID
- (vref) line.
- - qcom,smb1360-vadc VADC device phandle (used for reading the RID)
- - qcom,fg-batt-capacity-mah The new battery capacity to be supported.
- This updates the ACTUAL and NOMINAL CAPACITY
- of the profile.
- - qcom,fg-cc-soc-coeff The CC_TO_SOC_COEFF of the new battery capacity.
- This is updated only if 'fg-batt-capacity-mah'
- is specified. This value is calculated from the
- batt-capacity and then encoded as floating number.
- cc_soc_coeff = HALF_ENCODING(8192 / batt-capacity)
- - qcom,fg-cutoff-voltage-mv This is the minimum allowed system voltage. The
- FG will report SOC = 0 at this volatge. This
- value is in mv.
- - qcom,fg-iterm-ma This is termination current at which the
- Monotonic SOC reports 100. The value passed here
- is negated in the driver (assuming that the iterm
- is always -ve). This value is in mA.
- - qcom,fg-ibatt-standby-ma This is the minimum current value for the SOC to
- be above 0% at the cutoff voltage. This value
- is in mA.
- - qcom,fg-cc-to-cv-mv This is the voltage at which the FG transitions
- from CC to CV. This value should never be
- higher than the float volatge. Its in mV.
- - qcom,thermistor-c1-coeff This is the NTC thermistor C1 coeff for the
- thermistor inside the battery. This value is
- 16-bit float encoded value determined from the
- NTC-c1_coeff mapping.
- - qcom,otg-batt-curr-limit This property defines the current threshold draw
- from battery when device working at OTG mode.
- The possible values are: 350, 550, 950, 1500mA.
- - qcom,fg-auto-recharge-soc This property defines the auto recharging SOC threshold.
- - qcom,min-icl-100ma A bool property to set the minimum ICL current
- to 100mA. If this property is not set the minimum
- ICL is set to 500mA in all the scenarios.
- - qcom,config-hard-thresholds This property indicates if cold and hot thresholds need be modified.
- If it's not defined, default temp thresholds will be used. If this
- defined, it's required to specify the "qcom,hot-bat-decidegc" and
- "qcom,cold-bat-decidegc" values. If this defined, the serial properties
- (qcom,otp-hard-jeita-config, qcom,otp-hot-bat-decidegc,
- qcom,otp-cold-bat-decidegc) mustn't be defined.
- - qcom,hot-bat-decidegc Hot battery temperature in decidegC. This property should only be
- defined when "qcom,config-hard-thresholds" defined, and the value
- must be out of range [0, 55].
- - qcom,cold-bat-decidegc Cold battery temperature in decidegC. This property should only be
- defined when "qcom,config-hard-thresholds" defined, and the value
- must be out of range [0, 55].
- - qcom,otp-hard-jeita-config This property indicates if cold and hot thresholds need be modified.
- If it's not defined, default temp thresholds [0, 55] will be used.
- If this defined, it's required to specify the "qcom,otp-hot-bat-decidegc"
- and "qcom,otp-cold-bat-decidegc" values. If this is defined, the serial
- properties (qcom,config-hard-thresholds, qcom,hot-bat-decidegc,
- qcom,cold-bat-decidegc) mustn't be defined.
- - qcom,otp-hot-bat-decidegc Hot battery temperature in decidegC. This property could only be
- defined when qcom,config-otp-hard-jeita exist.
- - qcom,otp-cold-bat-decidegc Cold battery temperature in decidegC. This property could only be
- defined when qcom,config-otp-hard-jeita exist.
- - qcom,otp-hard-jeita-hysteresis This property contains two intergers to define the temperature
- hysteresis (in decidegC unit) for hard cold and hard hot.
- This property could only be defined when qcom,config-otp-hard-jeita exist.
- - qcom,soft-jeita-supported This property indicates whether soft jeita supported.
- - qcom,warm-bat-decidegc Warm battery temperature in decidegC. After hitting this threshold,
- "qcom,warm-bat-ma" defines maximum charging current and
- "qcom,warm-bat-mv" defines maximum target voltage.
- This property must be in range [0, 55] if needed.
- - qcom,cool-bat-decidegc Cool battery temperature in decidegC. After hitting this threshold,
- "qcom,cool-bat-ma" defines maximum charging current and
- "qcom,cool-bat-mv" defines maximum target voltage.
- This property must be in range [0, 55] if needed.
- - qcom,warm-bat-mv Maximum warm battery target voltage in milli-volts.
- - qcom,cool-bat-mv Maximum cool battery target voltage in milli-volts.
- - qcom,warm-bat-ma Maximum warm battery charge current in milli-amps.
- - qcom,cool-bat-ma Maximum cool battery charge current in milli-amps.
- - qcom,fg-reset-at-pon This is a bool property which indicates if the
- FG reset at power-on is enabled.
- - qcom,fg-reset-thresold-mv This value indicates the volatge threshold to
- reset the FG. This value is compared against
- the difference between in predicted voltage and
- current voltage. If this value is not specified
- a default value of 50mV is used. Unit is in milli-volts.
- - qcom,rsense-10mhom A bool property to indicate the Rsense resistor
- configuration. If set, the Rsense is 10mOhm else
- its 20mOhm.
- - qcom,otg-fet-present A bool property to indicate that a pMOS FET is present
- to boost the OTG current. On enabling this the max OTG
- current supported is 3x(qcom,otg-batt-curr-limit).
- - qcom,otg-fet-enable-gpio GPIO for enabling and disabling OTG FET.
- Following should be the PMIC gpio configuration:
- {
- qcom,mode = <1>; //Digital output
- qcom,pull = <0>; //Pull up configuration
- qcom,vin-sel = <0>; //Voltage level: VPH_PWR
- qcom,src-sel = <0>; //Pin function: GPIO
- qcom,master-en = <1>; //Enable
- }
- Please go through the documentation for PMIC gpio
- configuration details:
- Documentation/devicetree/bindings/gpio/qpnp-pin.txt
- - qcom,parallel-charging-enabled: A bool property which enables SMB1360 to
- operate in the parallel mode. SMB1360 acts
- as the primary charger.
- - qcom,max-parallel-current-ma: This is the max charging current which can be
- drawn from the secondary charger. If this is
- not specified this value defaults to 540mA.
- The overall current charging current is
- 1500mA(from SMB) + qcom,max-parallel-current-ma.
- Example:
- i2c@f9967000 {
- smb1360-chg-fg@1b {
- compatible = "qcom,smb1360-chg-fg";
- reg = <0x1b>;
- interrupt-parent = <&spmi_bus>;
- interrupts = <0x00 0xcd 0>;
- pinctrl-names = "default";
- pinctrl-0 = <&smb_int_default>;
- /* battery-profile selection properties */
- qcom,batt-profile-select;
- qcom,smb1360-vadc = <&pm8916_vadc>;
- qcom,batt-id-vref-uv = <1800000>;
- qcom,batt-id-rpullup-kohm = <100>;
- qcom,profile-a-rid-kohm = <78>;
- qcom,profile-b-rid-kohm = <200>;
- /* battery capacity */
- qcom,fg-batt-capacity-mah = <4000>;
- qcom,fg-cc-soc-coeff = <0x8009>;
- qcom,fg-cutoff-voltage-mv = <3300>;
- qcom,fg-iterm-ma = <100>;
- qcom,fg-ibatt-standby-ma = <200>;
- qcom,fg-cc-to-cv-mv = <4180>;
- qcom,thermistor-c1-coeff = <0x86DB>;
- qcom,float-voltage-mv = <4200>;
- qcom,iterm-ma = <100>;
- qcom,charging-disabled;
- qcom,recharge-thresh-mv = <100>;
- qcom,fg-soc-max = <85>;
- qcom,fg-soc-min = <15>;
- qcom,fg-auto-recharge-soc = <99>;
- qcom,thermal-mitigation = <1500 700 300 0>;
- qcom,config-hard-thresholds;
- qcom,hot-bat-decidegc = <650>;
- qcom,cold-bat-decidegc = <(-100)>;
- qcom,soft-jeita-supported;
- qcom,warm-bat-decidegc = <450>;
- qcom,cool-bat-decidegc = <100>;
- qcom,otp-hard-jeita-config;
- qcom,otp-hot-bat-decidegc = <550>;
- qcom,otp-cold-bat-decidegc = <0>;
- qcom,otp-hard-jeita-hysteresis = <0, 50>;
- qcom,warm-bat-mv = <4100>;
- qcom,cool-bat-mv = <4100>;
- qcom,warm-bat-ma = <750>;
- qcom,cool-bat-ma = <750>;
- qcom,otg-batt-curr-limit = <950>;
- qcom,fg-reset-at-pon;
- qcom,otg-fet-present;
- qcom,otg-fet-enable-gpio = <&pm8916_gpios 3 0>;
- };
- };
|