123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- Qualcomm QPNP Linear Charger
- The charger module supports the linear battery charger peripherals on
- Qualcomm PMIC chips.
- There are four different peripherals in the charger module.
- Each of these peripherals are implemented as subnodes.
- - qcom,chgr: Supports charging control and status reporting
- - qcom,bat-if: Battery status reporting such as presence and
- temperature reporting.
- - qcom,usb-chgpth: USB charge path detection and input current
- limiting configuration.
- - qcom,chg-misc: Miscellaneous features such as comparator override
- features etc.
- Parent node required properties:
- - qcom,vddmax-mv: Target voltage of battery in mV.
- - qcom,vddsafe-mv: Maximum Vdd voltage in mV.
- - qcom,vinmin-mv: Minimum input voltage in mV.
- - qcom,ibatsafe-ma: Safety battery current setting
- Parent node optional properties:
- - qcom,vbatweak-uv: Weak battery voltage threshold in uV,
- above which fast charging can start.
- The supported voltage range is from
- 3000000uV to 3581250uV with a step
- size of 18750000 uV.
- - qcom,charging-disabled: Set this property to disable charging
- by default.
- - qcom,use-default-batt-values: Set this flag to force reporting of
- fake battery.
- - qcom,warm-bat-decidegc: Warm battery temperature in decidegC.
- - qcom,cool-bat-decidegc: Cool battery temperature in decidegC.
- Note that if both warm and cool
- battery temperatures are set, the
- corresponding ibatmax and bat-mv
- properties are required to be set.
- - qcom,ibatmax-cool-ma: Maximum cool battery charge current.
- - qcom,ibatmax-warm-ma: Maximum warm battery charge current.
- - qcom,warm-bat-mv: Warm temperature battery target
- voltage.
- - qcom,cool-bat-mv: Cool temperature battery target
- voltage.
- - qcom,thermal-mitigation: Array of ibatmax values for different
- system thermal mitigation level.
- - qcom,tchg-mins: Maximum total software initialized
- charge time.
- - qcom,bpd-detection: Select a battery presence detection
- scheme by specifying either "bpd_thm"
- "bpd_id" or "bpd_thm_id". "bpd_thm"
- selects the temperature pin, "bpd_id"
- uses the id pin for battery presence
- detection, "bpd_thm_id" selects both.
- If the property is not set, the
- temperatue pin will be used.
- - qcom,btc-disabled: If flag is set battery hot and cold
- monitoring is disabled in hardware.
- This monitoring is turned on by
- default.
- - qcom,batt-hot-percentage: Specify a supported hot threshold
- percentage.
- Supported thresholds: 25% and 35%. If
- none is specified hardware defaults
- will be used.
- - qcom,batt-cold-percentage: Specify a supported cold threshold
- percentage. Supported thresholds: 70%
- and 80%. If none is specified
- hardwaredefaults will be used.
- - qcom,chg-adc_tm Corresponding ADC TM device's phandle
- to set recurring measurements and
- receive notification for batt_therm.
- -qcom,float-charge If specified enable float charging.
- - qcom,chg-vadc Corresponding VADC device's phandle.
- - qcom,charger-detect-eoc If specified charger hardware will
- detect end-of-charge.
- If not specified charger driver
- depends on BMSfor end-of-charge
- detection.
- - qcom,disable-vbatdet-based-recharge If specified disable VBATDET irq
- and charging can only be resumed
- if charger is re-inserted or SOC
- falls below resume SOC.
- This property should always be used
- along with the BMS property:
- "qcom,disable-suspend-on-usb".
- - qcom,use-external-charger If specified the LBC module will
- be disabled and the driver will not
- register. It also enables BID for
- BPD and disables BTC. Declare this node
- only if you are using an external charger
- and not the PMIC internal LBC.
- - qcom,chgr-led-support There is a current sink device in linear
- charger module, it is used to control a
- led which can act as a charger led as well
- as a general notification led.
- - qcom,parallel-charger This is a bool property to indicate the
- LBC will operate as a secondary charger
- in the parallel mode. If this is enabled
- the charging operations will be controlled by
- the primary-charger.
- - qcom,collapsible-chgr-support If specified the collapsible charger feature
- will be supported. LBC will disable VIN_MIN
- comparator and use chg_gone interrupt to
- detect charger removal.
- Sub node required structure:
- - A qcom,charger node must be a child of an SPMI node that has specified
- the spmi-dev-container property. Each subnode reflects
- a hardware peripheral which adds a unique set of features
- to the collective charging device. For example USB detection
- and the battery interface are each separate peripherals and
- each should be their own subnode.
- Sub node required properties:
- - compatible: Must be "qcom,qpnp-linear-charger".
- - reg: Specifies the SPMI address and size for this
- peripheral.
- - interrupts: Specifies the interrupt associated with the
- peripheral.
- - interrupt-names: Specifies the interrupt names for the peripheral.
- Every available interrupt needs to have an associated
- name with it to indentify its purpose.
- The following lists each subnode and their
- corresponding required interrupt names:
- qcom,usb-chgpth:
- - usbin-valid
- The following interrupts are available:
- qcom,usb-chgpth:
- - usbin-valid: Indicates valid USB
- connection.
- - coarse-det-usb: Coarse detect interrupt
- triggers at low voltage on
- USB_IN.
- - chg-gone: Triggers on VCHG line.
- - overtemp: Triggers on over temperature
- condition
- qcom,chgr:
- - chg-done: Triggers on charge completion.
- - chg-failed: Notifies of charge failures.
- - fast-chg-on: Notifies of fast charging.
- - vbat-det-lo: Triggers on vbat-det-lo
- voltage.
- Example:
- pm8916-chg: qcom,charger {
- spmi-dev-container;
- compatible = "qcom,qpnp-linear-charger";
- #address-cells = <1>;
- #size-cells = <1>;
- qcom,vddmax-mv = <4200>;
- qcom,vddsafe-mv = <4200>;
- qcom,vinmin-mv = <4200>;
- qcom,ibatsafe-ma = <1440>;
- qcom,vbatweak-uv = <3200>;
- qcom,thermal-mitigation = <1500 700 600 325>;
- qcom,cool-bat-decidegc = <100>;
- qcom,warm-bat-decidegc = <450>;
- qcom,cool-bat-mv = <4100>;
- qcom,ibatmax-warm-ma = <360>;
- qcom,ibatmax-cool-ma = <360>;
- qcom,warm-bat-mv = <4100>;
- qcom,batt-hot-percentage = <25>;
- qcom,batt-cold-percentage = <85>;
- qcom,tchg-mins = <152>;
- qcom,resume-soc = <99>;
- qcom,btc-disabled = <0>;
- qcom,chg-vadc = <&pm8916_vadc>;
- qcom,chgr@1000 {
- reg = <0x1000 0x100>;
- interrupts = <0x0 0x10 0x7>,
- <0x0 0x10 0x6>,
- <0x0 0x10 0x5>,
- <0x0 0x10 0x0>;
- interrupt-names = "chg-done",
- "chg-failed",
- "fast-chg-on",
- "vbat-det-lo";
- };
- qcom,bat-if@1200 {
- reg = <0x1200 0x100>;
- interrupts = <0x0 0x12 0x1>,
- <0x0 0x12 0x0>;
- interrupt-names = "bat-temp-ok",
- "batt-pres";
- };
- qcom,usb-chgpth@1300 {
- reg = <0x1300 0x100>;
- interrupts = <0 0x13 0x2>,
- <0 0x13 0x1>;
- interrupt-names = "chg-gone",
- "usbin-valid";
- };
- qcom,chg-misc@1600 {
- reg = <0x1600 0x100>;
- };
- };
|