Back to home page

OSCL-LXR

 
 

    


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 ...