Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Qualcomm Switch-Mode Battery Charger and Boost

PROPERTIES
- compatible:
  Usage: required
  Value type: <stringlist>
  Description: Must be one of:
               - "qcom,pm8941-charger"

- reg:
  Usage: required
  Value type: <prop-encoded-array>
  Description: Base address of registers for SMBB block

- interrupts:
  Usage: required
  Value type: <prop-encoded-array>
  Description: The format of the specifier is defined by the binding document
               describing the node's interrupt parent.  Must contain one
               specifier for each of the following interrupts, in order:
               - charge done
               - charge fast mode
               - charge trickle mode
               - battery temperature ok
               - battery present
               - charger disconnected
               - USB-in valid
               - DC-in valid

- interrupt-names:
  Usage: required
  Value type: <stringlist>
  Description: Must contain the following list, strictly ordered:
               "chg-done",
               "chg-fast",
               "chg-trkl",
               "bat-temp-ok",
               "bat-present",
               "chg-gone",
               "usb-valid",
               "dc-valid"

- qcom,fast-charge-current-limit:
  Usage: optional (default: 1A, or pre-configured value)
  Value type: <u32>; uA; range [100mA : 3A]
  Description: Maximum charge current; May be clamped to safety limits.

- qcom,fast-charge-low-threshold-voltage:
  Usage: optional (default: 3.2V, or pre-configured value)
  Value type: <u32>; uV; range [2.1V : 3.6V]
  Description: Battery voltage limit above which fast charging may operate;
               Below this value linear or switch-mode auto-trickle-charging
               will operate.

- qcom,fast-charge-high-threshold-voltage:
  Usage: optional (default: 4.2V, or pre-configured value)
  Value type: <u32>; uV; range [3.24V : 5V]
  Description: Battery voltage limit below which fast charging may operate;
               The fast charger will attempt to charge the battery to this
               voltage.  May be clamped to safety limits.

- qcom,fast-charge-safe-voltage:
  Usage: optional (default: 4.2V, or pre-configured value)
  Value type: <u32>; uV; range [3.24V : 5V]
  Description: Maximum safe battery voltage; May be pre-set by bootloader, in
               which case, setting this will harmlessly fail. The property
               'fast-charge-high-watermark' will be clamped by this value.

- qcom,fast-charge-safe-current:
  Usage: optional (default: 1A, or pre-configured value)
  Value type: <u32>; uA; range [100mA : 3A]
  Description: Maximum safe battery charge current; May pre-set by bootloader,
               in which case, setting this will harmlessly fail. The property
               'qcom,fast-charge-current-limit' will be clamped by this value.

- qcom,auto-recharge-threshold-voltage:
  Usage: optional (default: 4.1V, or pre-configured value)
  Value type: <u32>; uV; range [3.24V : 5V]
  Description: Battery voltage limit below which auto-recharge functionality
               will restart charging after end-of-charge;  The high cutoff
               limit for auto-recharge is 5% above this value.

- qcom,minimum-input-voltage:
  Usage: optional (default: 4.3V, or pre-configured value)
  Value type: <u32>; uV; range [4.2V : 9.6V]
  Description: Input voltage level above which charging may operate

- qcom,dc-current-limit:
  Usage: optional (default: 100mA, or pre-configured value)
  Value type: <u32>; uA; range [100mA : 2.5A]
  Description: Default DC charge current limit

- qcom,disable-dc:
  Usage: optional (default: false)
  Value type: boolean: <u32> or <empty>
  Description: Disable DC charger

- qcom,jeita-extended-temp-range:
  Usage: optional (default: false)
  Value type: boolean: <u32> or <empty>
  Description: Enable JEITA extended temperature range;  This does *not*
               adjust the maximum charge voltage or current in the extended
               temperature range.  It only allows charging when the battery
               is in the extended temperature range.  Voltage/current
               regulation must be done externally to fully comply with
               the JEITA safety guidelines if this flag is set.

EXAMPLE
charger@1000 {
       compatible = "qcom,pm8941-charger";
       reg = <0x1000 0x700>;
       interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
                       <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
                       <0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>,
                       <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
                       <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
                       <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
                       <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
                       <0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>;
       interrupt-names = "chg-done",
                       "chg-fast",
                       "chg-trkl",
                       "bat-temp-ok",
                       "bat-present",
                       "chg-gone",
                       "usb-valid",
                       "dc-valid";

       qcom,fast-charge-current-limit = <1000000>;
       qcom,dc-charge-current-limit = <1000000>;
};