xref: /openbmc/linux/Documentation/devicetree/bindings/power/supply/summit,smb347-charger.yaml (revision c1f90759b3d536f9b1b047484d08dfd04af3c4b1)
1*c1f90759SDavid Heidelberg# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*c1f90759SDavid Heidelberg%YAML 1.2
3*c1f90759SDavid Heidelberg---
4*c1f90759SDavid Heidelberg$id: "http://devicetree.org/schemas/power/supply/summit,smb347-charger.yaml#"
5*c1f90759SDavid Heidelberg$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6*c1f90759SDavid Heidelberg
7*c1f90759SDavid Heidelbergtitle: Battery charger driver for SMB345, SMB347 and SMB358
8*c1f90759SDavid Heidelberg
9*c1f90759SDavid Heidelbergmaintainers:
10*c1f90759SDavid Heidelberg  - David Heidelberg <david@ixit.cz>
11*c1f90759SDavid Heidelberg  - Dmitry Osipenko <digetx@gmail.com>
12*c1f90759SDavid Heidelberg
13*c1f90759SDavid Heidelbergproperties:
14*c1f90759SDavid Heidelberg  compatible:
15*c1f90759SDavid Heidelberg    enum:
16*c1f90759SDavid Heidelberg      - summit,smb345
17*c1f90759SDavid Heidelberg      - summit,smb347
18*c1f90759SDavid Heidelberg      - summit,smb358
19*c1f90759SDavid Heidelberg
20*c1f90759SDavid Heidelberg  reg:
21*c1f90759SDavid Heidelberg    maxItems: 1
22*c1f90759SDavid Heidelberg
23*c1f90759SDavid Heidelberg  interrupts:
24*c1f90759SDavid Heidelberg    maxItems: 1
25*c1f90759SDavid Heidelberg
26*c1f90759SDavid Heidelberg  monitored-battery:
27*c1f90759SDavid Heidelberg    description: phandle to the battery node
28*c1f90759SDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/phandle
29*c1f90759SDavid Heidelberg
30*c1f90759SDavid Heidelberg  summit,enable-usb-charging:
31*c1f90759SDavid Heidelberg    type: boolean
32*c1f90759SDavid Heidelberg    description: Enable charging through USB.
33*c1f90759SDavid Heidelberg
34*c1f90759SDavid Heidelberg  summit,enable-otg-charging:
35*c1f90759SDavid Heidelberg    type: boolean
36*c1f90759SDavid Heidelberg    description: Provide power for USB OTG
37*c1f90759SDavid Heidelberg
38*c1f90759SDavid Heidelberg  summit,enable-mains-charging:
39*c1f90759SDavid Heidelberg    type: boolean
40*c1f90759SDavid Heidelberg    description: Enable charging through mains
41*c1f90759SDavid Heidelberg
42*c1f90759SDavid Heidelberg  summit,enable-charge-control:
43*c1f90759SDavid Heidelberg    description: Enable charging control
44*c1f90759SDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/uint32
45*c1f90759SDavid Heidelberg    enum:
46*c1f90759SDavid Heidelberg      - 0 # SMB3XX_CHG_ENABLE_SW SW (I2C interface)
47*c1f90759SDavid Heidelberg      - 1 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_LOW Pin control (Active Low)
48*c1f90759SDavid Heidelberg      - 2 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH Pin control (Active High)
49*c1f90759SDavid Heidelberg
50*c1f90759SDavid Heidelberg  summit,fast-voltage-threshold-microvolt:
51*c1f90759SDavid Heidelberg    description: Voltage threshold to transit to fast charge mode (in uV)
52*c1f90759SDavid Heidelberg    minimum: 2400000
53*c1f90759SDavid Heidelberg    maximum: 3000000
54*c1f90759SDavid Heidelberg
55*c1f90759SDavid Heidelberg  summit,mains-current-limit-microamp:
56*c1f90759SDavid Heidelberg    description: Maximum input current from AC/DC input (in uA)
57*c1f90759SDavid Heidelberg
58*c1f90759SDavid Heidelberg  summit,usb-current-limit-microamp:
59*c1f90759SDavid Heidelberg    description: Maximum input current from USB input (in uA)
60*c1f90759SDavid Heidelberg
61*c1f90759SDavid Heidelberg  summit,charge-current-compensation-microamp:
62*c1f90759SDavid Heidelberg    description: Charge current compensation (in uA)
63*c1f90759SDavid Heidelberg
64*c1f90759SDavid Heidelberg  summit,chip-temperature-threshold-celsius:
65*c1f90759SDavid Heidelberg    description: Chip temperature for thermal regulation in °C.
66*c1f90759SDavid Heidelberg    enum: [100, 110, 120, 130]
67*c1f90759SDavid Heidelberg
68*c1f90759SDavid Heidelberg  summit,soft-compensation-method:
69*c1f90759SDavid Heidelberg    description: Soft temperature limit compensation method
70*c1f90759SDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/uint32
71*c1f90759SDavid Heidelberg    enum:
72*c1f90759SDavid Heidelberg      - 0 # SMB3XX_SOFT_TEMP_COMPENSATE_NONE Compensation none
73*c1f90759SDavid Heidelberg      - 1 # SMB3XX_SOFT_TEMP_COMPENSATE_CURRENT Current compensation
74*c1f90759SDavid Heidelberg      - 2 # SMB3XX_SOFT_TEMP_COMPENSATE_VOLTAGE Voltage compensation
75*c1f90759SDavid Heidelberg
76*c1f90759SDavid HeidelbergallOf:
77*c1f90759SDavid Heidelberg  - if:
78*c1f90759SDavid Heidelberg      properties:
79*c1f90759SDavid Heidelberg        compatible:
80*c1f90759SDavid Heidelberg          enum:
81*c1f90759SDavid Heidelberg            - summit,smb345
82*c1f90759SDavid Heidelberg            - summit,smb358
83*c1f90759SDavid Heidelberg
84*c1f90759SDavid Heidelberg    then:
85*c1f90759SDavid Heidelberg      properties:
86*c1f90759SDavid Heidelberg        summit,mains-current-limit-microamp:
87*c1f90759SDavid Heidelberg          enum: [ 300000,  500000,  700000, 1000000,
88*c1f90759SDavid Heidelberg                 1500000, 1800000, 2000000]
89*c1f90759SDavid Heidelberg
90*c1f90759SDavid Heidelberg        summit,usb-current-limit-microamp:
91*c1f90759SDavid Heidelberg          enum: [ 300000,  500000,  700000, 1000000,
92*c1f90759SDavid Heidelberg                 1500000, 1800000, 2000000]
93*c1f90759SDavid Heidelberg
94*c1f90759SDavid Heidelberg        summit,charge-current-compensation-microamp:
95*c1f90759SDavid Heidelberg          enum: [200000, 450000, 600000, 900000]
96*c1f90759SDavid Heidelberg
97*c1f90759SDavid Heidelberg    else:
98*c1f90759SDavid Heidelberg      properties:
99*c1f90759SDavid Heidelberg        summit,mains-current-limit-microamp:
100*c1f90759SDavid Heidelberg          enum: [ 300000,  500000,  700000,  900000, 1200000,
101*c1f90759SDavid Heidelberg                 1500000, 1800000, 2000000, 2200000, 2500000]
102*c1f90759SDavid Heidelberg
103*c1f90759SDavid Heidelberg        summit,usb-current-limit-microamp:
104*c1f90759SDavid Heidelberg          enum: [ 300000,  500000,  700000,  900000, 1200000,
105*c1f90759SDavid Heidelberg                 1500000, 1800000, 2000000, 2200000, 2500000]
106*c1f90759SDavid Heidelberg
107*c1f90759SDavid Heidelberg        summit,charge-current-compensation-microamp:
108*c1f90759SDavid Heidelberg          enum: [250000, 700000, 900000, 1200000]
109*c1f90759SDavid Heidelberg
110*c1f90759SDavid Heidelbergrequired:
111*c1f90759SDavid Heidelberg  - compatible
112*c1f90759SDavid Heidelberg  - reg
113*c1f90759SDavid Heidelberg
114*c1f90759SDavid HeidelberganyOf:
115*c1f90759SDavid Heidelberg  - required:
116*c1f90759SDavid Heidelberg      - summit,enable-usb-charging
117*c1f90759SDavid Heidelberg  - required:
118*c1f90759SDavid Heidelberg      - summit,enable-otg-charging
119*c1f90759SDavid Heidelberg  - required:
120*c1f90759SDavid Heidelberg      - summit,enable-mains-charging
121*c1f90759SDavid Heidelberg
122*c1f90759SDavid HeidelbergadditionalProperties: false
123*c1f90759SDavid Heidelberg
124*c1f90759SDavid Heidelbergexamples:
125*c1f90759SDavid Heidelberg  - |
126*c1f90759SDavid Heidelberg    #include <dt-bindings/power/summit,smb347-charger.h>
127*c1f90759SDavid Heidelberg
128*c1f90759SDavid Heidelberg    i2c {
129*c1f90759SDavid Heidelberg        #address-cells = <1>;
130*c1f90759SDavid Heidelberg        #size-cells = <0>;
131*c1f90759SDavid Heidelberg
132*c1f90759SDavid Heidelberg        charger@7f {
133*c1f90759SDavid Heidelberg            compatible = "summit,smb347";
134*c1f90759SDavid Heidelberg            reg = <0x7f>;
135*c1f90759SDavid Heidelberg
136*c1f90759SDavid Heidelberg            summit,enable-charge-control = <SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH>;
137*c1f90759SDavid Heidelberg            summit,chip-temperature-threshold-celsius = <110>;
138*c1f90759SDavid Heidelberg            summit,mains-current-limit-microamp = <2000000>;
139*c1f90759SDavid Heidelberg            summit,usb-current-limit-microamp = <500000>;
140*c1f90759SDavid Heidelberg            summit,enable-usb-charging;
141*c1f90759SDavid Heidelberg            summit,enable-mains-charging;
142*c1f90759SDavid Heidelberg
143*c1f90759SDavid Heidelberg            monitored-battery = <&battery>;
144*c1f90759SDavid Heidelberg        };
145*c1f90759SDavid Heidelberg    };
146*c1f90759SDavid Heidelberg
147*c1f90759SDavid Heidelberg    battery: battery-cell {
148*c1f90759SDavid Heidelberg        compatible = "simple-battery";
149*c1f90759SDavid Heidelberg        constant-charge-current-max-microamp = <1800000>;
150*c1f90759SDavid Heidelberg        operating-range-celsius = <0 45>;
151*c1f90759SDavid Heidelberg        alert-celsius = <3 42>;
152*c1f90759SDavid Heidelberg    };
153