1# SPDX-License-Identifier: GPL-2.0
2# Copyright (C) 2021 Sebastian Reichel
3%YAML 1.2
4---
5$id: "http://devicetree.org/schemas/power/supply/bq24257.yaml#"
6$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7
8title: Binding for bq24250, bq24251 and bq24257 Li-Ion Charger
9
10maintainers:
11  - Sebastian Reichel <sre@kernel.org>
12
13allOf:
14  - $ref: power-supply.yaml#
15
16properties:
17  compatible:
18    enum:
19      - ti,bq24250
20      - ti,bq24251
21      - ti,bq24257
22
23  reg:
24    maxItems: 1
25
26  interrupts:
27    maxItems: 1
28
29  ti,battery-regulation-voltage:
30    $ref: /schemas/types.yaml#/definitions/uint32
31    description: maximum charging voltage in uV
32
33  ti,charge-current:
34    $ref: /schemas/types.yaml#/definitions/uint32
35    description: maximum charging current in uA
36
37  ti,termination-current:
38    $ref: /schemas/types.yaml#/definitions/uint32
39    description: |
40      charge will be terminated when current in constant-voltage phase
41      drops below this value (in uA)
42
43  pg-gpios:
44    description: |
45      GPIO used for connecting the bq2425x device PG (Power Good) pin.
46      This pin is not available on all devices however it should be used if
47      possible as this is the recommended way to obtain the charger's input PG
48      state. If this pin is not specified a software-based approach for PG
49      detection is used.
50    maxItems: 1
51
52  ti,current-limit:
53    $ref: /schemas/types.yaml#/definitions/uint32
54    description: |
55      The maximum current to be drawn from the charger's input (in uA).
56      If this property is not specified, the input limit current is set
57      automatically using USB D+/D- signal based charger type detection.
58      If the hardware does not support the D+/D- based detection, a default
59      of 500,000 is used (=500mA) instead.
60
61  ti,ovp-voltage:
62    $ref: /schemas/types.yaml#/definitions/uint32
63    description: |
64      Configures the over voltage protection voltage (in uV).
65      If not specified a default of 6,5000,000 (=6.5V) is used.
66
67  ti,in-dpm-voltage:
68    $ref: /schemas/types.yaml#/definitions/uint32
69    description: |
70      Configures the threshold input voltage for the dynamic power path management (in uV).
71      If not specified a default of 4,360,000 (=4.36V) is used.
72
73required:
74  - compatible
75  - reg
76  - interrupts
77  - ti,battery-regulation-voltage
78  - ti,charge-current
79  - ti,termination-current
80
81additionalProperties: false
82
83examples:
84  - |
85    #include <dt-bindings/gpio/gpio.h>
86    #include <dt-bindings/interrupt-controller/irq.h>
87    i2c0 {
88      #address-cells = <1>;
89      #size-cells = <0>;
90
91      charger@6a {
92        compatible = "ti,bq24257";
93        reg = <0x6a>;
94        interrupt-parent = <&gpio1>;
95        interrupts = <16 IRQ_TYPE_EDGE_BOTH>;
96
97        pg-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
98
99        ti,battery-regulation-voltage = <4200000>;
100        ti,charge-current = <1000000>;
101        ti,termination-current = <50000>;
102      };
103    };
104  - |
105    #include <dt-bindings/gpio/gpio.h>
106    #include <dt-bindings/interrupt-controller/irq.h>
107    i2c0 {
108      #address-cells = <1>;
109      #size-cells = <0>;
110
111      charger@6a {
112        compatible = "ti,bq24250";
113        reg = <0x6a>;
114        interrupt-parent = <&gpio1>;
115        interrupts = <16 IRQ_TYPE_EDGE_BOTH>;
116
117        ti,battery-regulation-voltage = <4200000>;
118        ti,charge-current = <500000>;
119        ti,termination-current = <50000>;
120        ti,current-limit = <900000>;
121        ti,ovp-voltage = <9500000>;
122        ti,in-dpm-voltage = <4440000>;
123      };
124    };
125