| 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>; |
| }; |
| }; |