GNU Linux-libre 4.14.266-gnu1
[releases.git] / Documentation / devicetree / bindings / clock / maxim,max77686.txt
1 Binding for Maxim MAX77686/MAX77802/MAX77620 32k clock generator block
2
3 This is a part of device tree bindings of MAX77686/MAX77802/MAX77620
4 multi-function device. More information can be found in MFD DT binding
5 doc as follows:
6         bindings/mfd/max77686.txt for MAX77686 and
7         bindings/mfd/max77802.txt for MAX77802 and
8         bindings/mfd/max77620.txt for MAX77620.
9
10 The MAX77686 contains three 32.768khz clock outputs that can be controlled
11 (gated/ungated) over I2C. Clocks are defined as preprocessor macros in
12 dt-bindings/clock/maxim,max77686.h.
13
14
15 The MAX77802 contains two 32.768khz clock outputs that can be controlled
16 (gated/ungated) over I2C. Clocks are defined as preprocessor macros in
17 dt-bindings/clock/maxim,max77802.h.
18
19 The MAX77686 contains one 32.768khz clock outputs that can be controlled
20 (gated/ungated) over I2C. Clocks are defined as preprocessor macros in
21 dt-bindings/clock/maxim,max77620.h.
22
23 Following properties should be presend in main device node of the MFD chip.
24
25 Required properties:
26
27 - #clock-cells: from common clock binding; shall be set to 1.
28
29 Optional properties:
30 - clock-output-names: From common clock binding.
31
32 Each clock is assigned an identifier and client nodes can use this identifier
33 to specify the clock which they consume. Following indices are allowed:
34     - 0: 32khz_ap clock (max77686, max77802), 32khz_out0 (max77620)
35     - 1: 32khz_cp clock (max77686, max77802),
36     - 2: 32khz_pmic clock (max77686).
37
38 Clocks are defined as preprocessor macros in above dt-binding header for
39 respective chips.
40
41 Example:
42
43 1. With MAX77686:
44
45 #include <dt-bindings/clock/maxim,max77686.h>
46 /* ... */
47
48         Node of the MFD chip
49                 max77686: max77686@09 {
50                         compatible = "maxim,max77686";
51                         interrupt-parent = <&wakeup_eint>;
52                         interrupts = <26 0>;
53                         reg = <0x09>;
54                         #clock-cells = <1>;
55
56                         /* ... */
57                 };
58
59         Clock consumer node
60
61                 foo@0 {
62                         compatible = "bar,foo";
63                         /* ... */
64                         clock-names = "my-clock";
65                         clocks = <&max77686 MAX77686_CLK_PMIC>;
66                 };
67
68 2. With MAX77802:
69
70 #include <dt-bindings/clock/maxim,max77802.h>
71 /* ... */
72
73         Node of the MFD chip
74                 max77802: max77802@09 {
75                         compatible = "maxim,max77802";
76                         interrupt-parent = <&wakeup_eint>;
77                         interrupts = <26 0>;
78                         reg = <0x09>;
79                         #clock-cells = <1>;
80
81                         /* ... */
82                 };
83
84         Clock consumer node
85
86                 foo@0 {
87                         compatible = "bar,foo";
88                         /* ... */
89                         clock-names = "my-clock";
90                         clocks = <&max77802 MAX77802_CLK_32K_AP>;
91                 };
92
93
94 3. With MAX77620:
95
96 #include <dt-bindings/clock/maxim,max77620.h>
97 /* ... */
98
99         Node of the MFD chip
100                 max77620: max77620@3c {
101                         compatible = "maxim,max77620";
102                         reg = <0x3c>;
103                         #clock-cells = <1>;
104                         /* ... */
105                 };
106
107         Clock consumer node
108
109                 foo@0 {
110                         compatible = "bar,foo";
111                         /* ... */
112                         clock-names = "my-clock";
113                         clocks = <&max77620 MAX77620_CLK_32K_OUT0>;
114                 };