123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362 |
- Qualcomm Technologies, Inc. SMB5 Charger Specific Bindings
- SMB5 Charger is an efficient programmable battery charger capable of charging a
- high-capacity lithium-ion battery over micro-USB or USB Type-C ultrafast with
- Quick Charge 2.0, Quick Charge 3.0, and USB Power Delivery support. Wireless
- charging features full A4WP Rezence 1.2, WPC 1.2, and PMA support.
- =======================
- Required Node Structure
- =======================
- SMB5 Charger must be described in two levels of devices nodes.
- ===============================
- First Level Node - SMB5 Charger
- ===============================
- Charger specific properties:
- - compatible
- Usage: required
- Value type: <string>
- Definition: "qcom,qpnp-smb5".
- - qcom,pmic-revid
- Usage: required
- Value type: phandle
- Definition: Should specify the phandle of PMI's revid module. This is used to
- identify the PMI subtype.
- - qcom,batteryless-platform
- Usage: optional
- Value type: <empty>
- Definition: Boolean flag which indicates that the platform does not have a
- battery, and therefore charging should be disabled. In
- addition battery properties will be faked such that the device
- assumes normal operation.
- - qcom,fcc-max-ua
- Usage: optional
- Value type: <u32>
- Definition: Specifies the maximum fast charge current in micro-amps.
- If the value is not present, 1Amp is used as default.
- - qcom,fv-max-uv
- Usage: optional
- Value type: <u32>
- Definition: Specifies the maximum float voltage in micro-volts.
- If the value is not present, 4.35V is used as default.
- - qcom,usb-icl-ua
- Usage: optional
- Value type: <u32>
- Definition: Specifies the USB input current limit in micro-amps.
- If the value is not present, 1.5Amps is used as default.
- - qcom,usb-ocl-ua
- Usage: optional
- Value type: <u32>
- Definition: Specifies the OTG output current limit in micro-amps.
- If the value is not present, 1.5Amps is used as default.
- - qcom,dc-icl-ua
- Usage: optional
- Value type: <u32>
- Definition: Specifies the DC input current limit in micro-amps.
- - qcom,boost-threshold-ua
- Usage: optional
- Value type: <u32>
- Definition: Specifies the boost current threshold in micro-amps.
- If the value is not present, 100mA is used as default.
- - qcom,thermal-mitigation
- Usage: optional
- Value type: Array of <u32>
- Definition: Array of fast charge current limit values for
- different system thermal mitigation levels.
- This should be a flat array that denotes the
- maximum charge current in mA for each thermal
- level.
- - qcom,float-option
- Usage: optional
- Value type: <u32>
- Definition: Configures how the charger behaves when a float charger is
- detected by APSD.
- 1 - Treat as a DCP.
- 2 - Treat as a SDP.
- 3 - Disable charging.
- 4 - Suspend USB input.
- - qcom,hvdcp-disable
- Usage: optional
- Value type: <empty>
- Definition: Specifies if hvdcp charging is to be enabled or not.
- If this property is not specified hvdcp will be enabled.
- If this property is specified, hvdcp 2.0 detection will still
- happen but the adapter won't be asked to switch to a higher
- voltage point.
- - qcom,chg-inhibit-threshold-mv
- Usage: optional
- Value type: <u32>
- Definition: Charge inhibit threshold in milli-volts. Charging will be
- inhibited when the battery voltage is within this threshold
- from Vfloat at charger insertion. If this is not specified
- then charge inhibit will be disabled by default.
- Allowed values are: 50, 100, 200, 300.
- - qcom,auto-recharge-soc
- Usage: optional
- Value type: <u32>
- Definition: Specifies the SOC threshold at which the charger will
- restart charging after termination. The value specified
- ranges from 0 - 100. The feature is enabled if this
- property is specified with a valid SOC value.
- - qcom,auto-recharge-vbat-mv
- Usage: optional
- Value type: <u32>
- Definition: Specifies the battery voltage threshold at which the charger
- will restart charging after termination. The value specified
- is in milli-volts.
- - qcom,suspend-input-on-debug-batt
- Usage: optional
- Value type: <empty>
- Definition: Boolean flag which when present enables input suspend for
- debug battery.
- - qcom,min-freq-khz
- Usage: optional
- Value type: <u32>
- Definition: Specifies the minimum charger buck/boost switching frequency
- in KHz. It overrides the min frequency defined for the charger.
- - qcom,max-freq-khz
- Usage: optional
- Value type: <u32>
- Definition: Specifies the maximum charger buck/boost switching frequency in
- KHz. It overrides the max frequency defined for the charger.
- - qcom,otg-deglitch-time-ms
- Usage: optional
- Value type: <u32>
- Definition: Specifies the deglitch interval for OTG detection.
- If the value is not present, 50 msec is used as default.
- - qcom,step-charging-enable
- Usage: optional
- Value type: bool
- Definition: Boolean flag which when present enables step-charging.
- - qcom,wd-bark-time-secs
- Usage: optional
- Value type: <u32>
- Definition: WD bark-timeout in seconds. The possible values are
- 16, 32, 64, 128. If not defined it defaults to 64.
- - qcom,sw-jeita-enable
- Usage: optional
- Value type: bool
- Definition: Boolean flag which when present enables sw compensation for
- jeita.
- - qcom,battery-data
- Usage: optional
- Value type: <phandle>
- Definition: Specifies the phandle of the node which contains the battery
- profiles supported on the device.
- - qcom,flash-derating-soc
- Usage: optional
- Value type: <u32>
- Definition: SOC threshold in percentage below which hardware will start
- derating flash. This is only applicable to certain PMICs like
- PMI632 which has SCHGM_FLASH peripheral.
- - qcom,flash-disable-soc
- Usage: optional
- Value type: <u32>
- Definition: SOC threshold in percentage below which hardware will disable
- flash. This is only applicable to certain PMICs like PMI632
- which has SCHGM_FLASH peripheral.
- - qcom,headroom-mode
- Usage: optional
- Value type: <u32>
- Definition: Specifies flash hardware headroom management policy. The
- possible values are:
- <0>: Fixed mode, constant 5V at flash input.
- <1>: Adaptive mode allows charger output voltage to be
- dynamically controlled by the flash module based on the
- required flash headroom.
- This is only applicable to certain PMICs like PMI632 which
- has SCHGM_FLASH peripheral.
- - qcom,chg-vadc
- Usage: optional
- Value type: <phandle>
- Definition: Phandle for the VADC node, it is used to obtain USBIN_V
- and USBIN_I readings on PMIC632 based platform.
- =============================================
- Second Level Nodes - SMB5 Charger Peripherals
- =============================================
- Peripheral specific properties:
- - reg
- Usage: required
- Value type: <prop-encoded-array>
- Definition: Address and size of the peripheral's register block.
- - interrupts
- Usage: required
- Value type: <prop-encoded-array>
- Definition: Peripheral interrupt specifier.
- - interrupt-names
- Usage: required
- Value type: <stringlist>
- Definition: Interrupt names. This list must match up 1-to-1 with the
- interrupts specified in the 'interrupts' property.
- =======
- Example
- =======
- pmi8998_charger: qcom,qpnp-smb5 {
- compatible = "qcom,qpnp-smb5";
- #address-cells = <1>;
- #size-cells = <1>;
- dpdm-supply = <&qusb_phy0>;
- qcom,chgr@1000 {
- reg = <0x1000 0x100>;
- interrupts = <0x2 0x10 0x0 IRQ_TYPE_NONE>,
- <0x2 0x10 0x1 IRQ_TYPE_NONE>,
- <0x2 0x10 0x2 IRQ_TYPE_NONE>,
- <0x2 0x10 0x3 IRQ_TYPE_NONE>,
- <0x2 0x10 0x4 IRQ_TYPE_NONE>;
- interrupt-names = "chg-error",
- "chg-state-change",
- "step-chg-state-change",
- "step-chg-soc-update-fail",
- "step-chg-soc-update-request";
- };
- qcom,otg@1100 {
- reg = <0x1100 0x100>;
- interrupts = <0x2 0x11 0x0 IRQ_TYPE_NONE>,
- <0x2 0x11 0x1 IRQ_TYPE_NONE>,
- <0x2 0x11 0x2 IRQ_TYPE_NONE>,
- <0x2 0x11 0x3 IRQ_TYPE_NONE>;
- interrupt-names = "otg-fail",
- "otg-overcurrent",
- "otg-oc-dis-sw-sts",
- "testmode-change-detect";
- };
- qcom,bat-if@1200 {
- reg = <0x1200 0x100>;
- interrupts = <0x2 0x12 0x0 IRQ_TYPE_NONE>,
- <0x2 0x12 0x1 IRQ_TYPE_NONE>,
- <0x2 0x12 0x2 IRQ_TYPE_NONE>,
- <0x2 0x12 0x3 IRQ_TYPE_NONE>,
- <0x2 0x12 0x4 IRQ_TYPE_NONE>,
- <0x2 0x12 0x5 IRQ_TYPE_NONE>;
- interrupt-names = "bat-temp",
- "bat-ocp",
- "bat-ov",
- "bat-low",
- "bat-therm-or-id-missing",
- "bat-terminal-missing";
- };
- qcom,usb-chgpth@1300 {
- reg = <0x1300 0x100>;
- interrupts = <0x2 0x13 0x0 IRQ_TYPE_NONE>,
- <0x2 0x13 0x1 IRQ_TYPE_NONE>,
- <0x2 0x13 0x2 IRQ_TYPE_NONE>,
- <0x2 0x13 0x3 IRQ_TYPE_NONE>,
- <0x2 0x13 0x4 IRQ_TYPE_NONE>,
- <0x2 0x13 0x5 IRQ_TYPE_NONE>,
- <0x2 0x13 0x6 IRQ_TYPE_NONE>,
- <0x2 0x13 0x7 IRQ_TYPE_NONE>;
- interrupt-names = "usbin-collapse",
- "usbin-lt-3p6v",
- "usbin-uv",
- "usbin-ov",
- "usbin-plugin",
- "usbin-src-change",
- "usbin-icl-change",
- "type-c-change";
- };
- qcom,dc-chgpth@1400 {
- reg = <0x1400 0x100>;
- interrupts = <0x2 0x14 0x0 IRQ_TYPE_NONE>,
- <0x2 0x14 0x1 IRQ_TYPE_NONE>,
- <0x2 0x14 0x2 IRQ_TYPE_NONE>,
- <0x2 0x14 0x3 IRQ_TYPE_NONE>,
- <0x2 0x14 0x4 IRQ_TYPE_NONE>,
- <0x2 0x14 0x5 IRQ_TYPE_NONE>,
- <0x2 0x14 0x6 IRQ_TYPE_NONE>;
- interrupt-names = "dcin-collapse",
- "dcin-lt-3p6v",
- "dcin-uv",
- "dcin-ov",
- "dcin-plugin",
- "div2-en-dg",
- "dcin-icl-change";
- };
- qcom,chgr-misc@1600 {
- reg = <0x1600 0x100>;
- interrupts = <0x2 0x16 0x0 IRQ_TYPE_NONE>,
- <0x2 0x16 0x1 IRQ_TYPE_NONE>,
- <0x2 0x16 0x2 IRQ_TYPE_NONE>,
- <0x2 0x16 0x3 IRQ_TYPE_NONE>,
- <0x2 0x16 0x4 IRQ_TYPE_NONE>,
- <0x2 0x16 0x5 IRQ_TYPE_NONE>,
- <0x2 0x16 0x6 IRQ_TYPE_NONE>,
- <0x2 0x16 0x7 IRQ_TYPE_NONE>;
- interrupt-names = "wdog-snarl",
- "wdog-bark",
- "aicl-fail",
- "aicl-done",
- "high-duty-cycle",
- "input-current-limiting",
- "temperature-change",
- "switcher-power-ok";
- };
- qcom,schgm-flash@a600 {
- reg = <0xa600 0x100>;
- interrupts = <0x2 0xa6 0x0 IRQ_TYPE_NONE>,
- <0x2 0xa6 0x1 IRQ_TYPE_NONE>,
- <0x2 0xa6 0x2 IRQ_TYPE_NONE>,
- <0x2 0xa6 0x3 IRQ_TYPE_NONE>,
- <0x2 0xa6 0x4 IRQ_TYPE_NONE>,
- <0x2 0xa6 0x5 IRQ_TYPE_NONE>,
- <0x2 0xa6 0x6 IRQ_TYPE_NONE>,
- <0x2 0xa6 0x7 IRQ_TYPE_NONE>;
- interrupt-names = "flash-en",
- "torch-req",
- "flash-state-change",
- "vout-up",
- "vout-down",
- "ilim1-s1",
- "ilim2-s2",
- "vreg-ok";
- };
- };
|