1*013db96dSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*013db96dSKrzysztof Kozlowski%YAML 1.2
3*013db96dSKrzysztof Kozlowski---
4*013db96dSKrzysztof Kozlowski$id: http://devicetree.org/schemas/mfd/maxim,max77686.yaml#
5*013db96dSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*013db96dSKrzysztof Kozlowski
7*013db96dSKrzysztof Kozlowskititle: Maxim MAX77686 Power Management IC
8*013db96dSKrzysztof Kozlowski
9*013db96dSKrzysztof Kozlowskimaintainers:
10*013db96dSKrzysztof Kozlowski  - Chanwoo Choi <cw00.choi@samsung.com>
11*013db96dSKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
12*013db96dSKrzysztof Kozlowski
13*013db96dSKrzysztof Kozlowskidescription: |
14*013db96dSKrzysztof Kozlowski  This is a part of device tree bindings for Maxim MAX77686 Power Management
15*013db96dSKrzysztof Kozlowski  Integrated Circuit (PMIC).
16*013db96dSKrzysztof Kozlowski
17*013db96dSKrzysztof Kozlowski  The Maxim MAX77686 is a Power Management IC which includes voltage and
18*013db96dSKrzysztof Kozlowski  current regulators, RTC and clock outputs.
19*013db96dSKrzysztof Kozlowski
20*013db96dSKrzysztof Kozlowski  The MAX77686 provides three 32.768khz clock outputs that can be controlled
21*013db96dSKrzysztof Kozlowski  (gated/ungated) over I2C.  The clock IDs are defined as preprocessor macros
22*013db96dSKrzysztof Kozlowski  in dt-bindings/clock/maxim,max77686.h.
23*013db96dSKrzysztof Kozlowski
24*013db96dSKrzysztof Kozlowskiproperties:
25*013db96dSKrzysztof Kozlowski  compatible:
26*013db96dSKrzysztof Kozlowski    const: maxim,max77686
27*013db96dSKrzysztof Kozlowski
28*013db96dSKrzysztof Kozlowski  '#clock-cells':
29*013db96dSKrzysztof Kozlowski    const: 1
30*013db96dSKrzysztof Kozlowski
31*013db96dSKrzysztof Kozlowski  interrupts:
32*013db96dSKrzysztof Kozlowski    maxItems: 1
33*013db96dSKrzysztof Kozlowski
34*013db96dSKrzysztof Kozlowski  reg:
35*013db96dSKrzysztof Kozlowski    maxItems: 1
36*013db96dSKrzysztof Kozlowski
37*013db96dSKrzysztof Kozlowski  voltage-regulators:
38*013db96dSKrzysztof Kozlowski    $ref: ../regulator/maxim,max77686.yaml
39*013db96dSKrzysztof Kozlowski    description:
40*013db96dSKrzysztof Kozlowski      List of child nodes that specify the regulators.
41*013db96dSKrzysztof Kozlowski
42*013db96dSKrzysztof Kozlowski  wakeup-source: true
43*013db96dSKrzysztof Kozlowski
44*013db96dSKrzysztof Kozlowskirequired:
45*013db96dSKrzysztof Kozlowski  - compatible
46*013db96dSKrzysztof Kozlowski  - '#clock-cells'
47*013db96dSKrzysztof Kozlowski  - reg
48*013db96dSKrzysztof Kozlowski
49*013db96dSKrzysztof KozlowskiadditionalProperties: false
50*013db96dSKrzysztof Kozlowski
51*013db96dSKrzysztof Kozlowskiexamples:
52*013db96dSKrzysztof Kozlowski  - |
53*013db96dSKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
54*013db96dSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
55*013db96dSKrzysztof Kozlowski
56*013db96dSKrzysztof Kozlowski    i2c {
57*013db96dSKrzysztof Kozlowski        #address-cells = <1>;
58*013db96dSKrzysztof Kozlowski        #size-cells = <0>;
59*013db96dSKrzysztof Kozlowski
60*013db96dSKrzysztof Kozlowski        max77686: pmic@9 {
61*013db96dSKrzysztof Kozlowski            compatible = "maxim,max77686";
62*013db96dSKrzysztof Kozlowski            reg = <0x09>;
63*013db96dSKrzysztof Kozlowski
64*013db96dSKrzysztof Kozlowski            interrupt-parent = <&gpx0>;
65*013db96dSKrzysztof Kozlowski            interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
66*013db96dSKrzysztof Kozlowski            pinctrl-0 = <&max77686_irq>;
67*013db96dSKrzysztof Kozlowski            pinctrl-names = "default";
68*013db96dSKrzysztof Kozlowski            wakeup-source;
69*013db96dSKrzysztof Kozlowski            #clock-cells = <1>;
70*013db96dSKrzysztof Kozlowski
71*013db96dSKrzysztof Kozlowski            voltage-regulators {
72*013db96dSKrzysztof Kozlowski                LDO1 {
73*013db96dSKrzysztof Kozlowski                    regulator-name = "VALIVE_1.0V_AP";
74*013db96dSKrzysztof Kozlowski                    regulator-min-microvolt = <1000000>;
75*013db96dSKrzysztof Kozlowski                    regulator-max-microvolt = <1000000>;
76*013db96dSKrzysztof Kozlowski                    regulator-always-on;
77*013db96dSKrzysztof Kozlowski                };
78*013db96dSKrzysztof Kozlowski
79*013db96dSKrzysztof Kozlowski                LDO2 {
80*013db96dSKrzysztof Kozlowski                    regulator-name = "VM1M2_1.2V_AP";
81*013db96dSKrzysztof Kozlowski                    regulator-min-microvolt = <1200000>;
82*013db96dSKrzysztof Kozlowski                    regulator-max-microvolt = <1200000>;
83*013db96dSKrzysztof Kozlowski                    regulator-always-on;
84*013db96dSKrzysztof Kozlowski                    regulator-state-mem {
85*013db96dSKrzysztof Kozlowski                        regulator-on-in-suspend;
86*013db96dSKrzysztof Kozlowski                    };
87*013db96dSKrzysztof Kozlowski                };
88*013db96dSKrzysztof Kozlowski
89*013db96dSKrzysztof Kozlowski                // ...
90*013db96dSKrzysztof Kozlowski
91*013db96dSKrzysztof Kozlowski                LDO22 {
92*013db96dSKrzysztof Kozlowski                    regulator-name = "VMEM_VDD_2.8V";
93*013db96dSKrzysztof Kozlowski                    regulator-min-microvolt = <2800000>;
94*013db96dSKrzysztof Kozlowski                    regulator-max-microvolt = <2800000>;
95*013db96dSKrzysztof Kozlowski                    maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
96*013db96dSKrzysztof Kozlowski                };
97*013db96dSKrzysztof Kozlowski
98*013db96dSKrzysztof Kozlowski                // ...
99*013db96dSKrzysztof Kozlowski
100*013db96dSKrzysztof Kozlowski                BUCK1 {
101*013db96dSKrzysztof Kozlowski                    regulator-name = "VDD_MIF";
102*013db96dSKrzysztof Kozlowski                    regulator-min-microvolt = <850000>;
103*013db96dSKrzysztof Kozlowski                    regulator-max-microvolt = <1100000>;
104*013db96dSKrzysztof Kozlowski                    regulator-always-on;
105*013db96dSKrzysztof Kozlowski                    regulator-boot-on;
106*013db96dSKrzysztof Kozlowski                    regulator-state-mem {
107*013db96dSKrzysztof Kozlowski                        regulator-off-in-suspend;
108*013db96dSKrzysztof Kozlowski                    };
109*013db96dSKrzysztof Kozlowski                };
110*013db96dSKrzysztof Kozlowski
111*013db96dSKrzysztof Kozlowski                BUCK2 {
112*013db96dSKrzysztof Kozlowski                    regulator-name = "VDD_ARM";
113*013db96dSKrzysztof Kozlowski                    regulator-min-microvolt = <850000>;
114*013db96dSKrzysztof Kozlowski                    regulator-max-microvolt = <1500000>;
115*013db96dSKrzysztof Kozlowski                    regulator-always-on;
116*013db96dSKrzysztof Kozlowski                    regulator-boot-on;
117*013db96dSKrzysztof Kozlowski                    regulator-state-mem {
118*013db96dSKrzysztof Kozlowski                        regulator-on-in-suspend;
119*013db96dSKrzysztof Kozlowski                    };
120*013db96dSKrzysztof Kozlowski                };
121*013db96dSKrzysztof Kozlowski
122*013db96dSKrzysztof Kozlowski                // ...
123*013db96dSKrzysztof Kozlowski
124*013db96dSKrzysztof Kozlowski                BUCK9 {
125*013db96dSKrzysztof Kozlowski                    regulator-name = "CAM_ISP_CORE_1.2V";
126*013db96dSKrzysztof Kozlowski                    regulator-min-microvolt = <1000000>;
127*013db96dSKrzysztof Kozlowski                    regulator-max-microvolt = <1200000>;
128*013db96dSKrzysztof Kozlowski                    maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
129*013db96dSKrzysztof Kozlowski                };
130*013db96dSKrzysztof Kozlowski            };
131*013db96dSKrzysztof Kozlowski        };
132*013db96dSKrzysztof Kozlowski    };
133