123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- 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,parallel-mode
- Usage: optional
- Value type: <u32>
- Definition: Specifies parallel charging mode. If not specified, MID-MID
- option is selected by default.
- - 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,use-extcon
- Usage: optional
- Value type: <empty>
- Definition: Boolean flag which specify that smb138x 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.
- - 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.
- - qcom,stacked-batfet
- Usage: optional
- Value type: <empty>
- Definition: boolean flag. Specifies if parallel charger has stacked BATFET
- cofiguration.
- ================================================
- 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";
- };
- };
|