| Qualcomm Technologies, Inc. SMB138X Charger Specific Bindings |
| |
| SMB138X 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 support. Wireless charging features full |
| A4WP Rezence 1.2, WPC 1.2, and PMA support. |
| |
| ======================= |
| Required Node Structure |
| ======================= |
| |
| SMB138X Charger must be described in two levels of devices nodes. |
| |
| ================================== |
| First Level Node - SMB138X Charger |
| ================================== |
| |
| Charger specific properties: |
| - compatible |
| Usage: required |
| Value type: <string> |
| Definition: String which indicates the charging mode. Can be one of the |
| following: |
| Standalone/Parallel Master - "qcom,smb138x-charger" |
| Parallel Slave - "qcom,smb138x-parallel-slave" |
| |
| - qcom,pmic-revid |
| Usage: required |
| Value type: phandle |
| Definition: Should specify the phandle of SMB's |
| revid module. This is used to identify |
| the SMB subtype. |
| |
| - qcom,suspend-input |
| Usage: optional |
| Value type: <empty> |
| Definition: Boolean flag which indicates that the charger should not draw |
| current from any of its input sources (USB, DC). |
| |
| - qcom,fcc-max-ua |
| Usage: optional |
| Value type: <u32> |
| Definition: Specifies the maximum fast charge current in micro-amps. |
| |
| - qcom,usb-icl-ua |
| Usage: optional |
| Value type: <u32> |
| Definition: Specifies the USB input current limit in micro-amps. |
| |
| - qcom,dc-icl-ua |
| Usage: optional |
| Value type: <u32> |
| Definition: Specifies the DC input current limit in micro-amps. |
| |
| - qcom,charger-temp-max-mdegc |
| Usage: optional |
| Value type: <u32> |
| Definition: Specifies the maximum charger temperature in milli-degrees |
| Celsius. If unspecified a default of 80000 will be used. |
| |
| - qcom,connector-temp-max-mdegc |
| Usage: optional |
| Value type: <u32> |
| Definition: Specifies the maximum connector temperature in milli-degrees |
| Celsius. If unspecified a default value of 105000 will be used. |
| |
| - 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. |
| |
| ================================================ |
| Second Level Nodes - SMB138X 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. |
| |
| ======================================= |
| Second Level Nodes - SMB138X Regulators |
| ======================================= |
| |
| The following regulator nodes are supported: |
| "qcom,smb138x-vbus" - Regulator for enabling VBUS |
| "qcom,smb138x-vconn" - Regulator for enabling VCONN |
| |
| - regulator-name |
| Usage: required |
| Value type: <string> |
| Definition: Specifies the name for this regulator. |
| |
| ======= |
| Example |
| ======= |
| |
| smb138x_charger: qcom,smb138x-charger { |
| compatible = "qcom,qpnp-smb138x-charger"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| qcom,suspend-input; |
| dpdm-supply = <&qusb_phy0>; |
| |
| qcom,chgr@1000 { |
| reg = <0x1000 0x100>; |
| interrupts = <0x10 0x0 IRQ_TYPE_EDGE_BOTH>, |
| <0x10 0x1 IRQ_TYPE_EDGE_BOTH>, |
| <0x10 0x2 IRQ_TYPE_EDGE_BOTH>, |
| <0x10 0x3 IRQ_TYPE_EDGE_BOTH>, |
| <0x10 0x4 IRQ_TYPE_EDGE_BOTH>; |
| |
| 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 = <0x11 0x0 IRQ_TYPE_EDGE_BOTH>, |
| <0x11 0x1 IRQ_TYPE_EDGE_BOTH>, |
| <0x11 0x2 IRQ_TYPE_EDGE_BOTH>, |
| <0x11 0x3 IRQ_TYPE_EDGE_BOTH>; |
| |
| interrupt-names = "otg-fail", |
| "otg-overcurrent", |
| "otg-oc-dis-sw-sts", |
| "testmode-change-detect"; |
| }; |
| |
| qcom,bat-if@1200 { |
| reg = <0x1200 0x100>; |
| interrupts = <0x12 0x0 IRQ_TYPE_EDGE_BOTH>, |
| <0x12 0x1 IRQ_TYPE_EDGE_BOTH>, |
| <0x12 0x2 IRQ_TYPE_EDGE_BOTH>, |
| <0x12 0x3 IRQ_TYPE_EDGE_BOTH>, |
| <0x12 0x4 IRQ_TYPE_EDGE_BOTH>, |
| <0x12 0x5 IRQ_TYPE_EDGE_BOTH>; |
| |
| 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 = <0x13 0x0 IRQ_TYPE_EDGE_BOTH>, |
| <0x13 0x1 IRQ_TYPE_EDGE_BOTH>, |
| <0x13 0x2 IRQ_TYPE_EDGE_BOTH>, |
| <0x13 0x3 IRQ_TYPE_EDGE_BOTH>, |
| <0x13 0x4 IRQ_TYPE_EDGE_BOTH>, |
| <0x13 0x5 IRQ_TYPE_EDGE_BOTH>, |
| <0x13 0x6 IRQ_TYPE_EDGE_BOTH>, |
| <0x13 0x7 IRQ_TYPE_EDGE_BOTH>; |
| |
| 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 = <0x14 0x0 IRQ_TYPE_EDGE_BOTH>, |
| <0x14 0x1 IRQ_TYPE_EDGE_BOTH>, |
| <0x14 0x2 IRQ_TYPE_EDGE_BOTH>, |
| <0x14 0x3 IRQ_TYPE_EDGE_BOTH>, |
| <0x14 0x4 IRQ_TYPE_EDGE_BOTH>, |
| <0x14 0x5 IRQ_TYPE_EDGE_BOTH>, |
| <0x14 0x6 IRQ_TYPE_EDGE_BOTH>; |
| |
| 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 = <0x16 0x0 IRQ_TYPE_EDGE_BOTH>, |
| <0x16 0x1 IRQ_TYPE_EDGE_BOTH>, |
| <0x16 0x2 IRQ_TYPE_EDGE_BOTH>, |
| <0x16 0x3 IRQ_TYPE_EDGE_BOTH>, |
| <0x16 0x4 IRQ_TYPE_EDGE_BOTH>, |
| <0x16 0x5 IRQ_TYPE_EDGE_BOTH>, |
| <0x16 0x6 IRQ_TYPE_EDGE_BOTH>, |
| <0x16 0x7 IRQ_TYPE_EDGE_BOTH>; |
| |
| interrupt-names = "wdog-snarl", |
| "wdog-bark", |
| "aicl-fail", |
| "aicl-done", |
| "high-duty-cycle", |
| "input-current-limiting", |
| "temperature-change", |
| "switcher-power-ok"; |
| }; |
| }; |