]>
Commit | Line | Data |
---|---|---|
e581245d | 1 | Binding for Maxim MAX77686/MAX77802/MAX77620 32k clock generator block |
b06c6987 | 2 | |
e581245d LD |
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. | |
b06c6987 TF |
9 | |
10 | The MAX77686 contains three 32.768khz clock outputs that can be controlled | |
e581245d LD |
11 | (gated/ungated) over I2C. Clocks are defined as preprocessor macros in |
12 | dt-bindings/clock/maxim,max77686.h. | |
13 | ||
b06c6987 | 14 | |
24f668de | 15 | The MAX77802 contains two 32.768khz clock outputs that can be controlled |
e581245d LD |
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. | |
24f668de | 22 | |
b06c6987 TF |
23 | Following properties should be presend in main device node of the MFD chip. |
24 | ||
25 | Required properties: | |
fcd0864c JMC |
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: | |
e581245d | 34 | - 0: 32khz_ap clock (max77686, max77802), 32khz_out0 (max77620) |
24f668de LD |
35 | - 1: 32khz_cp clock (max77686, max77802), |
36 | - 2: 32khz_pmic clock (max77686). | |
b06c6987 | 37 | |
e581245d LD |
38 | Clocks are defined as preprocessor macros in above dt-binding header for |
39 | respective chips. | |
24f668de LD |
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: | |
fcd0864c | 69 | |
24f668de LD |
70 | #include <dt-bindings/clock/maxim,max77802.h> |
71 | /* ... */ | |
b06c6987 | 72 | |
24f668de LD |
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>; | |
b06c6987 | 80 | |
24f668de LD |
81 | /* ... */ |
82 | }; | |
b06c6987 | 83 | |
24f668de | 84 | Clock consumer node |
b06c6987 | 85 | |
24f668de LD |
86 | foo@0 { |
87 | compatible = "bar,foo"; | |
88 | /* ... */ | |
89 | clock-names = "my-clock"; | |
90 | clocks = <&max77802 MAX77802_CLK_32K_AP>; | |
91 | }; | |
e581245d LD |
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 | }; |