blob: 5529e30811fb783361007c896120a74feb5f6cc3 [file] [log] [blame]
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"
smb138x Parallel Slave - "qcom,smb138x-parallel-slave"
smb1355 Parallel Slave - "qcom,smb1355-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,parallel-mode
Usage: optional
Value type: <u32>
Definition: Specifies parallel charging mode. If not specified, MID-MID
option is selected by default. Note that smb1355 can only
run in MID-MID configuration.
- 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,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";
};
};