xref: /freebsd/sys/contrib/device-tree/Bindings/clock/maxim,max77686.txt (revision c7046f76c2c027b00c0e6ba57cfd28f1a78f5e23)
1Binding for Maxim MAX77686/MAX77802/MAX77620 32k clock generator block
2
3This is a part of device tree bindings of MAX77686/MAX77802/MAX77620
4multi-function device. More information can be found in MFD DT binding
5doc 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
10The MAX77686 contains three 32.768khz clock outputs that can be controlled
11(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
12dt-bindings/clock/maxim,max77686.h.
13
14
15The MAX77802 contains two 32.768khz clock outputs that can be controlled
16(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
17dt-bindings/clock/maxim,max77802.h.
18
19The MAX77686 contains one 32.768khz clock outputs that can be controlled
20(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
21dt-bindings/clock/maxim,max77620.h.
22
23Following properties should be presend in main device node of the MFD chip.
24
25Required properties:
26
27- #clock-cells: from common clock binding; shall be set to 1.
28
29Optional properties:
30- clock-output-names: From common clock binding.
31
32Each clock is assigned an identifier and client nodes can use this identifier
33to 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
38Clocks are defined as preprocessor macros in above dt-binding header for
39respective chips.
40
41Example:
42
431. With MAX77686:
44
45#include <dt-bindings/clock/maxim,max77686.h>
46/* ... */
47
48	Node of the MFD chip
49		max77686: max77686@9 {
50			compatible = "maxim,max77686";
51			interrupt-parent = <&wakeup_eint>;
52			interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
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
682. With MAX77802:
69
70#include <dt-bindings/clock/maxim,max77802.h>
71/* ... */
72
73	Node of the MFD chip
74		max77802: max77802@9 {
75			compatible = "maxim,max77802";
76			interrupt-parent = <&wakeup_eint>;
77			interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
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
943. 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		};
115