1*c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2*c66ec88fSEmmanuel Vadot%YAML 1.2
3*c66ec88fSEmmanuel Vadot---
4*c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/max77650.yaml#
5*c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel Vadottitle: MAX77650 ultra low-power PMIC from Maxim Integrated.
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadotmaintainers:
10*c66ec88fSEmmanuel Vadot  - Bartosz Golaszewski <bgolaszewski@baylibre.com>
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel Vadotdescription: |
13*c66ec88fSEmmanuel Vadot  MAX77650 is an ultra-low power PMIC providing battery charging and power
14*c66ec88fSEmmanuel Vadot  supply for low-power IoT and wearable applications.
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel Vadot  The GPIO-controller module is represented as part of the top-level PMIC
17*c66ec88fSEmmanuel Vadot  node. The device exposes a single GPIO line.
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel Vadot  For device-tree bindings of other sub-modules (regulator, power supply,
20*c66ec88fSEmmanuel Vadot  LEDs and onkey) refer to the binding documents under the respective
21*c66ec88fSEmmanuel Vadot  sub-system directories.
22*c66ec88fSEmmanuel Vadot
23*c66ec88fSEmmanuel Vadotproperties:
24*c66ec88fSEmmanuel Vadot  compatible:
25*c66ec88fSEmmanuel Vadot    const: maxim,max77650
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel Vadot  reg:
28*c66ec88fSEmmanuel Vadot    description:
29*c66ec88fSEmmanuel Vadot      I2C device address.
30*c66ec88fSEmmanuel Vadot    maxItems: 1
31*c66ec88fSEmmanuel Vadot
32*c66ec88fSEmmanuel Vadot  interrupts:
33*c66ec88fSEmmanuel Vadot    maxItems: 1
34*c66ec88fSEmmanuel Vadot
35*c66ec88fSEmmanuel Vadot  interrupt-controller: true
36*c66ec88fSEmmanuel Vadot
37*c66ec88fSEmmanuel Vadot  "#interrupt-cells":
38*c66ec88fSEmmanuel Vadot    const: 2
39*c66ec88fSEmmanuel Vadot    description:
40*c66ec88fSEmmanuel Vadot      The first cell is the IRQ number, the second cell is the trigger type.
41*c66ec88fSEmmanuel Vadot
42*c66ec88fSEmmanuel Vadot  gpio-controller: true
43*c66ec88fSEmmanuel Vadot
44*c66ec88fSEmmanuel Vadot  "#gpio-cells":
45*c66ec88fSEmmanuel Vadot    const: 2
46*c66ec88fSEmmanuel Vadot    description:
47*c66ec88fSEmmanuel Vadot      The first cell is the pin number and the second cell is used to specify
48*c66ec88fSEmmanuel Vadot      the gpio active state.
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel Vadot  gpio-line-names:
51*c66ec88fSEmmanuel Vadot    maxItems: 1
52*c66ec88fSEmmanuel Vadot    description:
53*c66ec88fSEmmanuel Vadot      Single string containing the name of the GPIO line.
54*c66ec88fSEmmanuel Vadot
55*c66ec88fSEmmanuel Vadot  regulators:
56*c66ec88fSEmmanuel Vadot    $ref: ../regulator/max77650-regulator.yaml
57*c66ec88fSEmmanuel Vadot
58*c66ec88fSEmmanuel Vadot  charger:
59*c66ec88fSEmmanuel Vadot    $ref: ../power/supply/max77650-charger.yaml
60*c66ec88fSEmmanuel Vadot
61*c66ec88fSEmmanuel Vadot  leds:
62*c66ec88fSEmmanuel Vadot    $ref: ../leds/leds-max77650.yaml
63*c66ec88fSEmmanuel Vadot
64*c66ec88fSEmmanuel Vadot  onkey:
65*c66ec88fSEmmanuel Vadot    $ref: ../input/max77650-onkey.yaml
66*c66ec88fSEmmanuel Vadot
67*c66ec88fSEmmanuel Vadotrequired:
68*c66ec88fSEmmanuel Vadot  - compatible
69*c66ec88fSEmmanuel Vadot  - reg
70*c66ec88fSEmmanuel Vadot  - interrupts
71*c66ec88fSEmmanuel Vadot  - interrupt-controller
72*c66ec88fSEmmanuel Vadot  - "#interrupt-cells"
73*c66ec88fSEmmanuel Vadot  - gpio-controller
74*c66ec88fSEmmanuel Vadot  - "#gpio-cells"
75*c66ec88fSEmmanuel Vadot
76*c66ec88fSEmmanuel VadotadditionalProperties: false
77*c66ec88fSEmmanuel Vadot
78*c66ec88fSEmmanuel Vadotexamples:
79*c66ec88fSEmmanuel Vadot  - |
80*c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
81*c66ec88fSEmmanuel Vadot    #include <dt-bindings/input/linux-event-codes.h>
82*c66ec88fSEmmanuel Vadot    i2c {
83*c66ec88fSEmmanuel Vadot        #address-cells = <1>;
84*c66ec88fSEmmanuel Vadot        #size-cells = <0>;
85*c66ec88fSEmmanuel Vadot
86*c66ec88fSEmmanuel Vadot        pmic@48 {
87*c66ec88fSEmmanuel Vadot            compatible = "maxim,max77650";
88*c66ec88fSEmmanuel Vadot            reg = <0x48>;
89*c66ec88fSEmmanuel Vadot
90*c66ec88fSEmmanuel Vadot            interrupt-controller;
91*c66ec88fSEmmanuel Vadot            interrupt-parent = <&gpio2>;
92*c66ec88fSEmmanuel Vadot            #interrupt-cells = <2>;
93*c66ec88fSEmmanuel Vadot            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
94*c66ec88fSEmmanuel Vadot
95*c66ec88fSEmmanuel Vadot            gpio-controller;
96*c66ec88fSEmmanuel Vadot            #gpio-cells = <2>;
97*c66ec88fSEmmanuel Vadot            gpio-line-names = "max77650-charger";
98*c66ec88fSEmmanuel Vadot
99*c66ec88fSEmmanuel Vadot            regulators {
100*c66ec88fSEmmanuel Vadot                compatible = "maxim,max77650-regulator";
101*c66ec88fSEmmanuel Vadot
102*c66ec88fSEmmanuel Vadot                max77650_ldo: regulator-ldo {
103*c66ec88fSEmmanuel Vadot                    regulator-name = "max77650-ldo";
104*c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <1350000>;
105*c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <2937500>;
106*c66ec88fSEmmanuel Vadot                };
107*c66ec88fSEmmanuel Vadot
108*c66ec88fSEmmanuel Vadot                max77650_sbb0: regulator-sbb0 {
109*c66ec88fSEmmanuel Vadot                    regulator-name = "max77650-sbb0";
110*c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
111*c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1587500>;
112*c66ec88fSEmmanuel Vadot                };
113*c66ec88fSEmmanuel Vadot            };
114*c66ec88fSEmmanuel Vadot
115*c66ec88fSEmmanuel Vadot            charger {
116*c66ec88fSEmmanuel Vadot                compatible = "maxim,max77650-charger";
117*c66ec88fSEmmanuel Vadot                input-voltage-min-microvolt = <4200000>;
118*c66ec88fSEmmanuel Vadot                input-current-limit-microamp = <285000>;
119*c66ec88fSEmmanuel Vadot            };
120*c66ec88fSEmmanuel Vadot
121*c66ec88fSEmmanuel Vadot            leds {
122*c66ec88fSEmmanuel Vadot                compatible = "maxim,max77650-led";
123*c66ec88fSEmmanuel Vadot                #address-cells = <1>;
124*c66ec88fSEmmanuel Vadot                #size-cells = <0>;
125*c66ec88fSEmmanuel Vadot
126*c66ec88fSEmmanuel Vadot                led@0 {
127*c66ec88fSEmmanuel Vadot                    reg = <0>;
128*c66ec88fSEmmanuel Vadot                    label = "blue:usr0";
129*c66ec88fSEmmanuel Vadot                };
130*c66ec88fSEmmanuel Vadot
131*c66ec88fSEmmanuel Vadot                led@1 {
132*c66ec88fSEmmanuel Vadot                    reg = <1>;
133*c66ec88fSEmmanuel Vadot                    label = "red:usr1";
134*c66ec88fSEmmanuel Vadot                    linux,default-trigger = "heartbeat";
135*c66ec88fSEmmanuel Vadot                };
136*c66ec88fSEmmanuel Vadot
137*c66ec88fSEmmanuel Vadot                led@2 {
138*c66ec88fSEmmanuel Vadot                    reg = <2>;
139*c66ec88fSEmmanuel Vadot                    label = "green:usr2";
140*c66ec88fSEmmanuel Vadot                };
141*c66ec88fSEmmanuel Vadot            };
142*c66ec88fSEmmanuel Vadot
143*c66ec88fSEmmanuel Vadot            onkey {
144*c66ec88fSEmmanuel Vadot                compatible = "maxim,max77650-onkey";
145*c66ec88fSEmmanuel Vadot                linux,code = <KEY_END>;
146*c66ec88fSEmmanuel Vadot                maxim,onkey-slide;
147*c66ec88fSEmmanuel Vadot            };
148*c66ec88fSEmmanuel Vadot        };
149*c66ec88fSEmmanuel Vadot    };
150