162306a36Sopenharmony_ciBinding for Maxim MAX77686/MAX77802/MAX77620 32k clock generator block
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciThis is a part of device tree bindings of MAX77686/MAX77802/MAX77620
462306a36Sopenharmony_cimulti-function device. More information can be found in MFD DT binding
562306a36Sopenharmony_cidoc as follows:
662306a36Sopenharmony_ci	bindings/mfd/max77686.txt for MAX77686 and
762306a36Sopenharmony_ci	bindings/mfd/max77802.txt for MAX77802 and
862306a36Sopenharmony_ci	bindings/mfd/max77620.txt for MAX77620.
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciThe MAX77686 contains three 32.768khz clock outputs that can be controlled
1162306a36Sopenharmony_ci(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
1262306a36Sopenharmony_cidt-bindings/clock/maxim,max77686.h.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciThe MAX77802 contains two 32.768khz clock outputs that can be controlled
1662306a36Sopenharmony_ci(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
1762306a36Sopenharmony_cidt-bindings/clock/maxim,max77802.h.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciThe MAX77686 contains one 32.768khz clock outputs that can be controlled
2062306a36Sopenharmony_ci(gated/ungated) over I2C. Clocks are defined as preprocessor macros in
2162306a36Sopenharmony_cidt-bindings/clock/maxim,max77620.h.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciFollowing properties should be presend in main device node of the MFD chip.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciRequired properties:
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci- #clock-cells: from common clock binding; shall be set to 1.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciOptional properties:
3062306a36Sopenharmony_ci- clock-output-names: From common clock binding.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciEach clock is assigned an identifier and client nodes can use this identifier
3362306a36Sopenharmony_cito specify the clock which they consume. Following indices are allowed:
3462306a36Sopenharmony_ci    - 0: 32khz_ap clock (max77686, max77802), 32khz_out0 (max77620)
3562306a36Sopenharmony_ci    - 1: 32khz_cp clock (max77686, max77802),
3662306a36Sopenharmony_ci    - 2: 32khz_pmic clock (max77686).
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciClocks are defined as preprocessor macros in above dt-binding header for
3962306a36Sopenharmony_cirespective chips.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciExample:
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci1. With MAX77686:
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci#include <dt-bindings/clock/maxim,max77686.h>
4662306a36Sopenharmony_ci/* ... */
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	Node of the MFD chip
4962306a36Sopenharmony_ci		max77686: max77686@9 {
5062306a36Sopenharmony_ci			compatible = "maxim,max77686";
5162306a36Sopenharmony_ci			interrupt-parent = <&wakeup_eint>;
5262306a36Sopenharmony_ci			interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
5362306a36Sopenharmony_ci			reg = <0x09>;
5462306a36Sopenharmony_ci			#clock-cells = <1>;
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci			/* ... */
5762306a36Sopenharmony_ci		};
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci	Clock consumer node
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci		foo@0 {
6262306a36Sopenharmony_ci			compatible = "bar,foo";
6362306a36Sopenharmony_ci			/* ... */
6462306a36Sopenharmony_ci			clock-names = "my-clock";
6562306a36Sopenharmony_ci			clocks = <&max77686 MAX77686_CLK_PMIC>;
6662306a36Sopenharmony_ci		};
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci2. With MAX77802:
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci#include <dt-bindings/clock/maxim,max77802.h>
7162306a36Sopenharmony_ci/* ... */
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	Node of the MFD chip
7462306a36Sopenharmony_ci		max77802: max77802@9 {
7562306a36Sopenharmony_ci			compatible = "maxim,max77802";
7662306a36Sopenharmony_ci			interrupt-parent = <&wakeup_eint>;
7762306a36Sopenharmony_ci			interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
7862306a36Sopenharmony_ci			reg = <0x09>;
7962306a36Sopenharmony_ci			#clock-cells = <1>;
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci			/* ... */
8262306a36Sopenharmony_ci		};
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci	Clock consumer node
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci		foo@0 {
8762306a36Sopenharmony_ci			compatible = "bar,foo";
8862306a36Sopenharmony_ci			/* ... */
8962306a36Sopenharmony_ci			clock-names = "my-clock";
9062306a36Sopenharmony_ci			clocks = <&max77802 MAX77802_CLK_32K_AP>;
9162306a36Sopenharmony_ci		};
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci3. With MAX77620:
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci#include <dt-bindings/clock/maxim,max77620.h>
9762306a36Sopenharmony_ci/* ... */
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	Node of the MFD chip
10062306a36Sopenharmony_ci		max77620: max77620@3c {
10162306a36Sopenharmony_ci			compatible = "maxim,max77620";
10262306a36Sopenharmony_ci			reg = <0x3c>;
10362306a36Sopenharmony_ci			#clock-cells = <1>;
10462306a36Sopenharmony_ci			/* ... */
10562306a36Sopenharmony_ci		};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci	Clock consumer node
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci		foo@0 {
11062306a36Sopenharmony_ci			compatible = "bar,foo";
11162306a36Sopenharmony_ci			/* ... */
11262306a36Sopenharmony_ci			clock-names = "my-clock";
11362306a36Sopenharmony_ci			clocks = <&max77620 MAX77620_CLK_32K_OUT0>;
11462306a36Sopenharmony_ci		};
115