0001 # SPDX-License-Identifier: GPL-2.0
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/clock/imx8m-clock.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: NXP i.MX8M Family Clock Control Module Binding
0008
0009 maintainers:
0010 - Anson Huang <Anson.Huang@nxp.com>
0011
0012 description: |
0013 NXP i.MX8M Mini/Nano/Plus/Quad clock control module is an integrated clock
0014 controller, which generates and supplies to all modules.
0015
0016 properties:
0017 compatible:
0018 enum:
0019 - fsl,imx8mm-ccm
0020 - fsl,imx8mn-ccm
0021 - fsl,imx8mp-ccm
0022 - fsl,imx8mq-ccm
0023
0024 reg:
0025 maxItems: 1
0026
0027 clocks:
0028 minItems: 6
0029 maxItems: 7
0030
0031 clock-names:
0032 minItems: 6
0033 maxItems: 7
0034
0035 '#clock-cells':
0036 const: 1
0037 description:
0038 The clock consumer should specify the desired clock by having the clock
0039 ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8m-clock.h
0040 for the full list of i.MX8M clock IDs.
0041
0042 required:
0043 - compatible
0044 - reg
0045 - clocks
0046 - clock-names
0047 - '#clock-cells'
0048
0049 allOf:
0050 - if:
0051 properties:
0052 compatible:
0053 contains:
0054 const: fsl,imx8mq-ccm
0055 then:
0056 properties:
0057 clocks:
0058 items:
0059 - description: 32k osc
0060 - description: 25m osc
0061 - description: 27m osc
0062 - description: ext1 clock input
0063 - description: ext2 clock input
0064 - description: ext3 clock input
0065 - description: ext4 clock input
0066 clock-names:
0067 items:
0068 - const: ckil
0069 - const: osc_25m
0070 - const: osc_27m
0071 - const: clk_ext1
0072 - const: clk_ext2
0073 - const: clk_ext3
0074 - const: clk_ext4
0075 else:
0076 properties:
0077 clocks:
0078 items:
0079 - description: 32k osc
0080 - description: 24m osc
0081 - description: ext1 clock input
0082 - description: ext2 clock input
0083 - description: ext3 clock input
0084 - description: ext4 clock input
0085
0086 clock-names:
0087 items:
0088 - const: osc_32k
0089 - const: osc_24m
0090 - const: clk_ext1
0091 - const: clk_ext2
0092 - const: clk_ext3
0093 - const: clk_ext4
0094
0095 additionalProperties: false
0096
0097 examples:
0098 # Clock Control Module node:
0099 - |
0100 clock-controller@30380000 {
0101 compatible = "fsl,imx8mm-ccm";
0102 reg = <0x30380000 0x10000>;
0103 #clock-cells = <1>;
0104 clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
0105 <&clk_ext3>, <&clk_ext4>;
0106 clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
0107 "clk_ext3", "clk_ext4";
0108 };
0109
0110 - |
0111 clock-controller@30390000 {
0112 compatible = "fsl,imx8mq-ccm";
0113 reg = <0x30380000 0x10000>;
0114 #clock-cells = <1>;
0115 clocks = <&ckil>, <&osc_25m>, <&osc_27m>, <&clk_ext1>,
0116 <&clk_ext2>, <&clk_ext3>, <&clk_ext4>;
0117 clock-names = "ckil", "osc_25m", "osc_27m", "clk_ext1",
0118 "clk_ext2", "clk_ext3", "clk_ext4";
0119 };
0120
0121 ...