xref: /linux/Documentation/devicetree/bindings/mfd/nxp,pf1550.yaml (revision 84318277d6334c6981ab326d4acc87c6a6ddc9b8)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/nxp,pf1550.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP PF1550 Power Management IC
8
9maintainers:
10  - Samuel Kayode <samuel.kayode@savoirfairelinux.com>
11
12description:
13  PF1550 PMIC provides battery charging and power supply for low power IoT and
14  wearable applications. This device consists of an i2c controlled MFD that
15  includes regulators, battery charging and an onkey/power button.
16
17$ref: /schemas/power/supply/power-supply.yaml
18
19properties:
20  compatible:
21    const: nxp,pf1550
22
23  reg:
24    maxItems: 1
25
26  interrupts:
27    maxItems: 1
28
29  wakeup-source: true
30
31  regulators:
32    type: object
33    additionalProperties: false
34
35    patternProperties:
36      "^(ldo[1-3]|sw[1-3]|vrefddr)$":
37        type: object
38        $ref: /schemas/regulator/regulator.yaml
39        description:
40          regulator configuration for ldo1-3, buck converters(sw1-3)
41          and DDR termination reference voltage (vrefddr)
42        unevaluatedProperties: false
43
44  monitored-battery:
45    description: |
46      A phandle to a monitored battery node that contains a valid value
47      for:
48      constant-charge-voltage-max-microvolt.
49
50  nxp,thermal-regulation-celsius:
51    description:
52      Temperature threshold for thermal regulation of charger in celsius.
53    enum: [ 80, 95, 110, 125 ]
54
55  nxp,min-system-microvolt:
56    description:
57      System specific lower limit voltage.
58    enum: [ 3500000, 3700000, 4300000 ]
59
60  nxp,disable-key-power:
61    type: boolean
62    description:
63      Disable power-down using a long key-press. The onkey driver will remove
64      support for the KEY_POWER key press when triggered using a long press of
65      the onkey.
66
67required:
68  - compatible
69  - reg
70  - interrupts
71
72unevaluatedProperties: false
73
74examples:
75  - |
76    #include <dt-bindings/interrupt-controller/irq.h>
77    #include <dt-bindings/input/linux-event-codes.h>
78
79    battery: battery-cell {
80        compatible = "simple-battery";
81        constant-charge-voltage-max-microvolt = <4400000>;
82    };
83
84    i2c {
85        #address-cells = <1>;
86        #size-cells = <0>;
87
88        pmic@8 {
89            compatible = "nxp,pf1550";
90            reg = <0x8>;
91
92            interrupt-parent = <&gpio1>;
93            interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
94            wakeup-source;
95            monitored-battery = <&battery>;
96            nxp,min-system-microvolt = <4300000>;
97            nxp,thermal-regulation-celsius = <80>;
98
99            regulators {
100                sw1_reg: sw1 {
101                    regulator-name = "sw1";
102                    regulator-min-microvolt = <600000>;
103                    regulator-max-microvolt = <1387500>;
104                    regulator-always-on;
105                    regulator-ramp-delay = <6250>;
106
107                    regulator-state-mem {
108                        regulator-on-in-suspend;
109                        regulator-suspend-min-microvolt = <1270000>;
110                    };
111                };
112
113                sw2_reg: sw2 {
114                    regulator-name = "sw2";
115                    regulator-min-microvolt = <600000>;
116                    regulator-max-microvolt = <1387500>;
117                    regulator-always-on;
118
119                    regulator-state-mem {
120                        regulator-on-in-suspend;
121                    };
122                };
123
124                sw3_reg: sw3 {
125                    regulator-name = "sw3";
126                    regulator-min-microvolt = <1800000>;
127                    regulator-max-microvolt = <3300000>;
128                    regulator-always-on;
129
130                    regulator-state-mem {
131                        regulator-on-in-suspend;
132                    };
133                };
134
135                vldo1_reg: ldo1 {
136                    regulator-name = "ldo1";
137                    regulator-min-microvolt = <750000>;
138                    regulator-max-microvolt = <3300000>;
139                    regulator-always-on;
140
141                    regulator-state-mem {
142                        regulator-off-in-suspend;
143                    };
144                };
145
146                vldo2_reg: ldo2 {
147                    regulator-name = "ldo2";
148                    regulator-min-microvolt = <1800000>;
149                    regulator-max-microvolt = <3300000>;
150                    regulator-always-on;
151                };
152
153                vldo3_reg: ldo3 {
154                    regulator-name = "ldo3";
155                    regulator-min-microvolt = <750000>;
156                    regulator-max-microvolt = <3300000>;
157                    regulator-always-on;
158                };
159            };
160        };
161    };
162