summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/mfd/maxim,max77686.yaml
blob: d027aabe453ba5d3a789244d37119768561e1dfd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/maxim,max77686.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim MAX77686 Power Management IC

maintainers:
  - Chanwoo Choi <cw00.choi@samsung.com>
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for Maxim MAX77686 Power Management
  Integrated Circuit (PMIC).

  The Maxim MAX77686 is a Power Management IC which includes voltage and
  current regulators, RTC and clock outputs.

  The MAX77686 provides three 32.768khz clock outputs that can be controlled
  (gated/ungated) over I2C.  The clock IDs are defined as preprocessor macros
  in dt-bindings/clock/maxim,max77686.h.

properties:
  compatible:
    const: maxim,max77686

  '#clock-cells':
    const: 1

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

  voltage-regulators:
    $ref: ../regulator/maxim,max77686.yaml
    description:
      List of child nodes that specify the regulators.

  wakeup-source: true

required:
  - compatible
  - '#clock-cells'
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        max77686: pmic@9 {
            compatible = "maxim,max77686";
            reg = <0x09>;

            interrupt-parent = <&gpx0>;
            interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
            pinctrl-0 = <&max77686_irq>;
            pinctrl-names = "default";
            wakeup-source;
            #clock-cells = <1>;

            voltage-regulators {
                LDO1 {
                    regulator-name = "VALIVE_1.0V_AP";
                    regulator-min-microvolt = <1000000>;
                    regulator-max-microvolt = <1000000>;
                    regulator-always-on;
                };

                LDO2 {
                    regulator-name = "VM1M2_1.2V_AP";
                    regulator-min-microvolt = <1200000>;
                    regulator-max-microvolt = <1200000>;
                    regulator-always-on;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                    };
                };

                // ...

                LDO22 {
                    regulator-name = "VMEM_VDD_2.8V";
                    regulator-min-microvolt = <2800000>;
                    regulator-max-microvolt = <2800000>;
                    maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
                };

                // ...

                BUCK1 {
                    regulator-name = "VDD_MIF";
                    regulator-min-microvolt = <850000>;
                    regulator-max-microvolt = <1100000>;
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-state-mem {
                        regulator-off-in-suspend;
                    };
                };

                BUCK2 {
                    regulator-name = "VDD_ARM";
                    regulator-min-microvolt = <850000>;
                    regulator-max-microvolt = <1500000>;
                    regulator-always-on;
                    regulator-boot-on;
                    regulator-state-mem {
                        regulator-on-in-suspend;
                    };
                };

                // ...

                BUCK9 {
                    regulator-name = "CAM_ISP_CORE_1.2V";
                    regulator-min-microvolt = <1000000>;
                    regulator-max-microvolt = <1200000>;
                    maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
                };
            };
        };
    };