1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/imx7ulp-scg-clock.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7*8bab661aSEmmanuel Vadottitle: Freescale i.MX7ULP System Clock Generation (SCG) modules Clock Controller 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - A.s. Dong <aisheng.dong@nxp.com> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotdescription: | 13c66ec88fSEmmanuel Vadot i.MX7ULP Clock functions are under joint control of the System 14c66ec88fSEmmanuel Vadot Clock Generation (SCG) modules, Peripheral Clock Control (PCC) 15c66ec88fSEmmanuel Vadot modules, and Core Mode Controller (CMC)1 blocks 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadot The clocking scheme provides clear separation between M4 domain 18c66ec88fSEmmanuel Vadot and A7 domain. Except for a few clock sources shared between two 19c66ec88fSEmmanuel Vadot domains, such as the System Oscillator clock, the Slow IRC (SIRC), 20c66ec88fSEmmanuel Vadot and and the Fast IRC clock (FIRCLK), clock sources and clock 21c66ec88fSEmmanuel Vadot management are separated and contained within each domain. 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel Vadot M4 clock management consists of SCG0, PCC0, PCC1, and CMC0 modules. 24c66ec88fSEmmanuel Vadot A7 clock management consists of SCG1, PCC2, PCC3, and CMC1 modules. 25c66ec88fSEmmanuel Vadot 26c66ec88fSEmmanuel Vadot Note: this binding doc is only for A7 clock domain. 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel Vadot The System Clock Generation (SCG) is responsible for clock generation 29c66ec88fSEmmanuel Vadot and distribution across this device. Functions performed by the SCG 30c66ec88fSEmmanuel Vadot include: clock reference selection, generation of clock used to derive 31c66ec88fSEmmanuel Vadot processor, system, peripheral bus and external memory interface clocks, 32c66ec88fSEmmanuel Vadot source selection for peripheral clocks and control of power saving 33c66ec88fSEmmanuel Vadot clock gating mode. 34c66ec88fSEmmanuel Vadot 35c66ec88fSEmmanuel Vadot The clock consumer should specify the desired clock by having the clock 36c66ec88fSEmmanuel Vadot ID in its "clocks" phandle cell. 37c66ec88fSEmmanuel Vadot See include/dt-bindings/clock/imx7ulp-clock.h for the full list of 38c66ec88fSEmmanuel Vadot i.MX7ULP clock IDs of each module. 39c66ec88fSEmmanuel Vadot 40c66ec88fSEmmanuel Vadotproperties: 41c66ec88fSEmmanuel Vadot compatible: 42c66ec88fSEmmanuel Vadot const: fsl,imx7ulp-scg1 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot reg: 45c66ec88fSEmmanuel Vadot maxItems: 1 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadot '#clock-cells': 48c66ec88fSEmmanuel Vadot const: 1 49c66ec88fSEmmanuel Vadot 50c66ec88fSEmmanuel Vadot clocks: 51c66ec88fSEmmanuel Vadot items: 52c66ec88fSEmmanuel Vadot - description: rtc osc 53c66ec88fSEmmanuel Vadot - description: system osc 54c66ec88fSEmmanuel Vadot - description: slow internal reference clock 55c66ec88fSEmmanuel Vadot - description: fast internal reference clock 56c66ec88fSEmmanuel Vadot - description: usb PLL 57c66ec88fSEmmanuel Vadot 58c66ec88fSEmmanuel Vadot clock-names: 59c66ec88fSEmmanuel Vadot items: 60c66ec88fSEmmanuel Vadot - const: rosc 61c66ec88fSEmmanuel Vadot - const: sosc 62c66ec88fSEmmanuel Vadot - const: sirc 63c66ec88fSEmmanuel Vadot - const: firc 64c66ec88fSEmmanuel Vadot - const: upll 65c66ec88fSEmmanuel Vadot 66c66ec88fSEmmanuel Vadotrequired: 67c66ec88fSEmmanuel Vadot - compatible 68c66ec88fSEmmanuel Vadot - reg 69c66ec88fSEmmanuel Vadot - '#clock-cells' 70c66ec88fSEmmanuel Vadot - clocks 71c66ec88fSEmmanuel Vadot - clock-names 72c66ec88fSEmmanuel Vadot 73c66ec88fSEmmanuel VadotadditionalProperties: false 74c66ec88fSEmmanuel Vadot 75c66ec88fSEmmanuel Vadotexamples: 76c66ec88fSEmmanuel Vadot - | 77c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/imx7ulp-clock.h> 78c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 79c66ec88fSEmmanuel Vadot 80c66ec88fSEmmanuel Vadot clock-controller@403e0000 { 81c66ec88fSEmmanuel Vadot compatible = "fsl,imx7ulp-scg1"; 82c66ec88fSEmmanuel Vadot reg = <0x403e0000 0x10000>; 83c66ec88fSEmmanuel Vadot clocks = <&rosc>, <&sosc>, <&sirc>, 84c66ec88fSEmmanuel Vadot <&firc>, <&upll>; 85c66ec88fSEmmanuel Vadot clock-names = "rosc", "sosc", "sirc", 86c66ec88fSEmmanuel Vadot "firc", "upll"; 87c66ec88fSEmmanuel Vadot #clock-cells = <1>; 88c66ec88fSEmmanuel Vadot }; 89