03386b0861a263e61aa6c05034ff4ce5db58372a
[platform/kernel/linux-rpi.git] / Documentation / devicetree / bindings / clock / imx8mn-clock.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/clock/imx8mn-clock.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: NXP i.MX8M Nano Clock Control Module Binding
8
9 maintainers:
10   - Anson Huang <Anson.Huang@nxp.com>
11
12 description: |
13   NXP i.MX8M Nano clock control module is an integrated clock controller, which
14   generates and supplies to all modules.
15
16 properties:
17   compatible:
18     const: fsl,imx8mn-ccm
19
20   reg:
21     maxItems: 1
22
23   clocks:
24     items:
25       - description: 32k osc
26       - description: 24m osc
27       - description: ext1 clock input
28       - description: ext2 clock input
29       - description: ext3 clock input
30       - description: ext4 clock input
31
32   clock-names:
33     items:
34       - const: osc_32k
35       - const: osc_24m
36       - const: clk_ext1
37       - const: clk_ext2
38       - const: clk_ext3
39       - const: clk_ext4
40
41   '#clock-cells':
42     const: 1
43     description: |
44       The clock consumer should specify the desired clock by having the clock
45       ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mn-clock.h
46       for the full list of i.MX8M Nano clock IDs.
47
48 required:
49   - compatible
50   - reg
51   - clocks
52   - clock-names
53   - '#clock-cells'
54
55 additionalProperties: false
56
57 examples:
58   # Clock Control Module node:
59   - |
60     clk: clock-controller@30380000 {
61         compatible = "fsl,imx8mn-ccm";
62         reg = <0x0 0x30380000 0x0 0x10000>;
63         #clock-cells = <1>;
64         clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>,
65                  <&clk_ext2>, <&clk_ext3>, <&clk_ext4>;
66         clock-names = "osc_32k", "osc_24m", "clk_ext1",
67                       "clk_ext2", "clk_ext3", "clk_ext4";
68     };
69
70   # Required external clocks for Clock Control Module node:
71   - |
72     osc_32k: clock-osc-32k {
73         compatible = "fixed-clock";
74         #clock-cells = <0>;
75         clock-frequency = <32768>;
76         clock-output-names = "osc_32k";
77     };
78
79     osc_24m: clock-osc-24m {
80         compatible = "fixed-clock";
81         #clock-cells = <0>;
82         clock-frequency = <24000000>;
83         clock-output-names = "osc_24m";
84     };
85
86     clk_ext1: clock-ext1 {
87         compatible = "fixed-clock";
88         #clock-cells = <0>;
89         clock-frequency = <133000000>;
90         clock-output-names = "clk_ext1";
91     };
92
93     clk_ext2: clock-ext2 {
94         compatible = "fixed-clock";
95         #clock-cells = <0>;
96         clock-frequency = <133000000>;
97         clock-output-names = "clk_ext2";
98     };
99
100     clk_ext3: clock-ext3 {
101         compatible = "fixed-clock";
102         #clock-cells = <0>;
103         clock-frequency = <133000000>;
104         clock-output-names = "clk_ext3";
105     };
106
107     clk_ext4: clock-ext4 {
108         compatible = "fixed-clock";
109         #clock-cells = <0>;
110         clock-frequency= <133000000>;
111         clock-output-names = "clk_ext4";
112     };
113
114 ...