Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame] | 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@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 | |
| 68 | 2. 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 | |
| 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 | }; |