0001 Binding for Maxim MAX77686/MAX77802/MAX77620 32k clock generator block
0002
0003 This is a part of device tree bindings of MAX77686/MAX77802/MAX77620
0004 multi-function device. More information can be found in MFD DT binding
0005 doc as follows:
0006 bindings/mfd/max77686.txt for MAX77686 and
0007 bindings/mfd/max77802.txt for MAX77802 and
0008 bindings/mfd/max77620.txt for MAX77620.
0009
0010 The MAX77686 contains three 32.768khz clock outputs that can be controlled
0011 (gated/ungated) over I2C. Clocks are defined as preprocessor macros in
0012 dt-bindings/clock/maxim,max77686.h.
0013
0014
0015 The MAX77802 contains two 32.768khz clock outputs that can be controlled
0016 (gated/ungated) over I2C. Clocks are defined as preprocessor macros in
0017 dt-bindings/clock/maxim,max77802.h.
0018
0019 The MAX77686 contains one 32.768khz clock outputs that can be controlled
0020 (gated/ungated) over I2C. Clocks are defined as preprocessor macros in
0021 dt-bindings/clock/maxim,max77620.h.
0022
0023 Following properties should be presend in main device node of the MFD chip.
0024
0025 Required properties:
0026
0027 - #clock-cells: from common clock binding; shall be set to 1.
0028
0029 Optional properties:
0030 - clock-output-names: From common clock binding.
0031
0032 Each clock is assigned an identifier and client nodes can use this identifier
0033 to specify the clock which they consume. Following indices are allowed:
0034 - 0: 32khz_ap clock (max77686, max77802), 32khz_out0 (max77620)
0035 - 1: 32khz_cp clock (max77686, max77802),
0036 - 2: 32khz_pmic clock (max77686).
0037
0038 Clocks are defined as preprocessor macros in above dt-binding header for
0039 respective chips.
0040
0041 Example:
0042
0043 1. With MAX77686:
0044
0045 #include <dt-bindings/clock/maxim,max77686.h>
0046 /* ... */
0047
0048 Node of the MFD chip
0049 max77686: max77686@9 {
0050 compatible = "maxim,max77686";
0051 interrupt-parent = <&wakeup_eint>;
0052 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
0053 reg = <0x09>;
0054 #clock-cells = <1>;
0055
0056 /* ... */
0057 };
0058
0059 Clock consumer node
0060
0061 foo@0 {
0062 compatible = "bar,foo";
0063 /* ... */
0064 clock-names = "my-clock";
0065 clocks = <&max77686 MAX77686_CLK_PMIC>;
0066 };
0067
0068 2. With MAX77802:
0069
0070 #include <dt-bindings/clock/maxim,max77802.h>
0071 /* ... */
0072
0073 Node of the MFD chip
0074 max77802: max77802@9 {
0075 compatible = "maxim,max77802";
0076 interrupt-parent = <&wakeup_eint>;
0077 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
0078 reg = <0x09>;
0079 #clock-cells = <1>;
0080
0081 /* ... */
0082 };
0083
0084 Clock consumer node
0085
0086 foo@0 {
0087 compatible = "bar,foo";
0088 /* ... */
0089 clock-names = "my-clock";
0090 clocks = <&max77802 MAX77802_CLK_32K_AP>;
0091 };
0092
0093
0094 3. With MAX77620:
0095
0096 #include <dt-bindings/clock/maxim,max77620.h>
0097 /* ... */
0098
0099 Node of the MFD chip
0100 max77620: max77620@3c {
0101 compatible = "maxim,max77620";
0102 reg = <0x3c>;
0103 #clock-cells = <1>;
0104 /* ... */
0105 };
0106
0107 Clock consumer node
0108
0109 foo@0 {
0110 compatible = "bar,foo";
0111 /* ... */
0112 clock-names = "my-clock";
0113 clocks = <&max77620 MAX77620_CLK_32K_OUT0>;
0114 };