123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- Qualcomm Technologies, Inc. SMB2 Charger Specific Bindings
- SMB2 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
- =======================
- SMB2 Charger must be described in two levels of devices nodes.
- ===============================
- First Level Node - SMB2 Charger
- ===============================
- Charger specific properties:
- - compatible
- Usage: required
- Value type: <string>
- Definition: "qcom,qpnp-smb2".
- - 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,use-extcon
- Usage: optional
- Value type: <empty>
- Definition: Boolean flag which specify that SMB2 will act as main charger
- to do extcon USB calls. If not defined, other charger driver can
- act as main charger to do extcon USB calls.
- - 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,wipower-max-uw
- Usage: optional
- Value type: <u32>
- Definition: Specifies the DC input power limit in micro-watts.
- If the value is not present, 8W 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.
- - google,wlc-thermal-mitigation
- Usage: optional
- Value type: Array of <u32>
- Definition: Array of DC input current limit values for
- different system thermal mitigation levels.
- This should be a flat array that denotes the
- maximum DC input current in micro-amps for each
- thermal level.
- - io-channels
- Usage: optional
- Value type: List of <phandle u32>
- Definition: List of phandle and IIO specifier pairs, one pair
- for each IIO input to the device. Note: if the
- IIO provider specifies '0' for #io-channel-cells,
- then only the phandle portion of the pair will appear.
- - io-channel-names
- Usage: optional
- Value type: List of <string>
- Definition: List of IIO input name strings sorted in the same
- order as the io-channels property. Consumer drivers
- will use io-channel-names to match IIO input names
- with IIO specifiers.
- - 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: <empty>
- Definition: Specifies if automatic recharge needs to be based off battery
- SOC. If this property is not specified, then auto recharge will
- be based off battery voltage. For both SOC and battery voltage,
- charger receives the signal from FG to resume charging.
- - 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: <u32>
- Definition: Specifies the phandle of the node which contains the battery
- profiles supported on the device. This is only specified
- when step charging and sw-jeita configurations are desired
- to be get from these properties defined in battery profile:
- qcom,step-chg-ranges, qcom,jeita-fcc-ranges, qcom,jeita-fv-ranges.
- =============================================
- Second Level Nodes - SMB2 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-smb2 {
- compatible = "qcom,qpnp-smb2";
- #address-cells = <1>;
- #size-cells = <1>;
- io-channels = <&pmic_rradc 0>;
- io-channel-names = "rradc_batt_id";
- 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";
- };
- };
|