123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 |
- Qualcomm Techonologies, Inc. QPNP PMIC QGAUGE (QG) Device
- QPNP PMIC QGAUGE device provides the ability to gauge the State-of-Charge
- of the battery. It provides an interface to the clients to read various
- battery related parameters.
- =======================
- Required Node Structure
- =======================
- Qgauge device must be described in two level of nodes. The first level
- describes the properties of the Qgauge device and the second level
- describes the peripherals managed/used of the module.
- ====================================
- First Level Node - QGAUGE device
- ====================================
- - compatible
- Usage: required
- Value type: <string>
- Definition: Should be "qcom,qpnp-qg".
- - qcom,pmic-revid
- Usage: required
- Value type: <phandle>
- Definition: Should specify the phandle of PMIC revid module. This is
- used to identify the PMIC subtype.
- - qcom,qg-vadc
- Usage: required
- Value type: <phandle>
- Definition: Phandle for the VADC node, it is used for BATT_ID and
- BATT_THERM readings.
- - qcom,vbatt-empty-mv
- Usage: optional
- Value type: <u32>
- Definition: The battery voltage threshold (in mV) at which the
- vbatt-empty interrupt fires. The SOC is forced to 0
- when this interrupt fires. If not specified, the
- default value is 3200 mV.
- - qcom,vbatt-empty-cold-mv
- Usage: optional
- Value type: <u32>
- Definition: The battery voltage threshold (in mV) at which the
- vbatt-empty interrupt fires. This threshold is only
- applied at cold temperature specified by
- 'qcom,cold-temp-threshold'. The SOC is forced to 0
- when this interrupt fires. If not specified, the
- default value is 3000 mV.
- - qcom,vbatt-cutoff-mv
- Usage: optional
- Value type: <u32>
- Definition: The battery voltage threshold (in mV) at which the
- the Qgauge algorithm converges to 0 SOC. If not specified
- the default value is 3400 mV.
- - qcom,vbatt-low-mv
- Usage: optional
- Value type: <u32>
- Definition: The battery voltage threshold (in mV) at which the
- the VBAT_LOW interrupt fires. Software can take necessary
- the action when this interrupt fires. If not specified
- the default value is 3500 mV.
- - qcom,vbatt-low-cold-mv
- Usage: optional
- Value type: <u32>
- Definition: The battery voltage threshold (in mV) at which the
- the VBAT_LOW interrupt fires. The threshold is only
- applied at cold temperature specified by
- 'qcom,cold-temp-threshold'. Software can take necessary
- the action when this interrupt fires. If not specified
- the default value is 3800 mV.
- - qcom,qg-iterm-ma
- Usage: optional
- Value type: <u32>
- Definition: The battery current (in mA) at which the the QG algorithm
- converges the SOC to 100% during charging and can be used to
- terminate charging. If not specified, the default value is
- 100mA.
- - qcom,delta-soc
- Usage: optional
- Value type: <u32>
- Definition: The SOC percentage increase at which the SOC is
- periodically reported to the userspace. If not specified,
- the value defaults to 1%.
- - qcom,s2-fifo-length
- Usage: optional
- Value type: <u32>
- Definition: The total number if FIFO samples which need to be filled up
- in S2 state of QG to fire the FIFO DONE interrupt.
- Minimum value = 1 Maximum Value = 8. If not specified,
- the default value is 5.
- - qcom,s2-acc-length
- Usage: optional
- Value type: <u32>
- Definition: The number of distinct V & I samples to be accumulated
- in each FIFO in the S2 state of QG.
- Minimum Value = 0 Maximum Value = 256. If not specified,
- the default value is 128.
- - qcom,s2-acc-interval-ms
- Usage: optional
- Value type: <u32>
- Definition: The time (in ms) between each of the V & I samples being
- accumulated in FIFO.
- Minimum Value = 0 ms Maximum Value = 2550 ms. If not
- specified the default value is 100 ms.
- - qcom,ocv-timer-expiry-min
- Usage: optional
- Value type: <u32>
- Definition: The maximum time (in minutes) for the QG to transition from
- S3 to S2 state.
- Minimum Value = 2 min Maximum Value = 30 min. If not
- specified the hardware default is set to 14 min.
- - qcom,ocv-tol-threshold-uv
- Usage: optional
- Value type: <u32>
- Definition: The OCV detection error tolerance (in uV). The maximum
- voltage allowed between 2 VBATT readings in the S3 state
- to qualify for a valid OCV.
- Minimum Value = 0 uV Maximum Value = 12262 uV Step = 195 uV
- - qcom,s3-entry-fifo-length
- Usage: optional
- Value type: <u32>
- Definition: The minimum number if FIFO samples which have to qualify the
- S3 IBAT entry threshold (qcom,s3-entry-ibat-ua) for QG
- to enter into S3 state.
- Minimum Value = 1 Maximum Value = 8. The hardware default
- is configured to 3.
- - qcom,s3-entry-ibat-ua
- Usage: optional
- Value type: <u32>
- Definition: The battery current (in uA) for the QG to enter into the S3
- state. The QG algorithm enters into S3 if the battery
- current is lower than this threshold consecutive for
- the FIFO length specified in 'qcom,s3-entry-fifo-length'.
- Minimum Value = 0 uA Maximum Value = 155550 uA
- Step = 610 uA.
- - qcom,s3-exit-ibat-ua
- Usage: optional
- Value type: <u32>
- Definition: The battery current (in uA) for the QG to exit S3 state.
- If the battery current is higher than this threshold QG
- exists S3 state.
- Minimum Value = 0 uA Maximum Value = 155550 uA
- Step = 610 uA.
- - qcom,rbat-conn-mohm
- Usage: optional
- Value type: <u32>
- Definition: Resistance of the battery connectors in mOhms.
- - qcom,ignore-shutdown-soc-secs
- Usage: optional
- Value type: <u32>
- Definition: Time in seconds beyond which shutdown SOC is ignored.
- If not specified the default value is 360 secs.
- - qcom,hold-soc-while-full
- Usage: optional
- Value type: <empty>
- Definition: A boolean property that when defined holds SOC at 100% when
- the battery is full until recharge starts.
- - qcom,linearize-soc
- Usage: optional
- Value type: <empty>
- Definition: A boolean property that when defined linearizes SOC when
- the SOC drops after charge termination monotonically to
- improve the user experience. This is applicable only if
- "qcom,hold-soc-while-full" is specified.
- - qcom,cold-temp-threshold
- Usage: optional
- Value type: <u32>
- Definition: Temperature threshold in decidegree at which the low
- temperature specific configuration as applied. If not
- specified, the default value is 0 degree centigrade.
- - qcom,cl-disable
- Usage: optional
- Value type: <empty>
- Definition: A boolean property to disable the battery capacity
- learning when charging.
- - qcom,cl-feedback-on
- Usage: optional
- Value type: <empty>
- Definition: A boolean property to feedback the learned capacity into
- the capacity lerning algorithm. This has to be used only if the
- property "qcom,cl-disable" is not specified.
- - qcom,cl-max-start-soc
- Usage: optional
- Value type: <u32>
- Definition: Battery SOC has to be below or equal to this value at the
- start of a charge cycle to start the capacity learning.
- If this is not specified, then the default value used
- will be 15. Unit is in percentage.
- - qcom,cl-min-start-soc
- Usage: optional
- Value type: <u32>
- Definition: Battery SOC has to be above or equal to this value at the
- start of a charge cycle to start the capacity learning.
- If this is not specified, then the default value used
- will be 10. Unit is in percentage.
- - qcom,cl-min-temp
- Usage: optional
- Value type: <u32>
- Definition: Lower limit of battery temperature to start the capacity
- learning. If this is not specified, then the default value
- used will be 150 (15 C). Unit is in decidegC.
- - qcom,cl-max-temp
- Usage: optional
- Value type: <u32>
- Definition: Upper limit of battery temperature to start the capacity
- learning. If this is not specified, then the default value
- used will be 500 (50 C). Unit is in decidegC.
- - qcom,cl-max-increment
- Usage: optional
- Value type: <u32>
- Definition: Maximum capacity increment allowed per capacity learning
- cycle. If this is not specified, then the default value
- used will be 5 (0.5%). Unit is in decipercentage.
- - qcom,cl-max-decrement
- Usage: optional
- Value type: <u32>
- Definition: Maximum capacity decrement allowed per capacity learning
- cycle. If this is not specified, then the default value
- used will be 100 (10%). Unit is in decipercentage.
- - qcom,cl-min-limit
- Usage: optional
- Value type: <u32>
- Definition: Minimum limit that the capacity cannot go below in a
- capacity learning cycle. If this is not specified, then
- the default value is 0. Unit is in decipercentage.
- - qcom,cl-max-limit
- Usage: optional
- Value type: <u32>
- Definition: Maximum limit that the capacity cannot go above in a
- capacity learning cycle. If this is not specified, then
- the default value is 0. Unit is in decipercentage.
- ==========================================================
- Second Level Nodes - Peripherals managed by QGAUGE driver
- ==========================================================
- - reg
- Usage: required
- Value type: <prop-encoded-array>
- Definition: Addresses and sizes for the specified peripheral
- - interrupts
- Usage: optional
- Value type: <prop-encoded-array>
- Definition: Interrupt mapping as per the interrupt encoding
- - interrupt-names
- Usage: optional
- Value type: <stringlist>
- Definition: Interrupt names. This list must match up 1-to-1 with the
- interrupts specified in the 'interrupts' property.
- ========
- Example
- ========
- pmi632_qg: qpnp,qg {
- compatible = "qcom,qpnp-qg";
- qcom,pmic-revid = <&pmi632_revid>;
- qcom,qg-vadc = <&pmi632_vadc>;
- qcom,vbatt-empty-mv = <3200>;
- qcom,vbatt-low-mv = <3500>;
- qcom,vbatt-cutoff-mv = <3400>;
- qcom,qg-iterm-ma = <100>;
- qcom,qgauge@4800 {
- status = "okay";
- reg = <0x4800 0x100>;
- interrupts = <0x2 0x48 0x0 IRQ_TYPE_EDGE_BOTH>,
- <0x2 0x48 0x1 IRQ_TYPE_EDGE_BOTH>,
- <0x2 0x48 0x2 IRQ_TYPE_EDGE_BOTH>,
- <0x2 0x48 0x4 IRQ_TYPE_EDGE_BOTH>,
- <0x2 0x48 0x5 IRQ_TYPE_EDGE_BOTH>,
- <0x2 0x48 0x6 IRQ_TYPE_EDGE_BOTH>;
- interrupt-names = "qg-batt-missing",
- "qg-vbat-low",
- "qg-vbat-empty",
- "qg-fifo-done",
- "qg-good-ocv",
- "qg-fsm-state-chg",
- "qg-event";
- };
- qcom,qg-sdam@b000 {
- status = "okay";
- reg = <0xb000 0x100>;
- };
- };
|