18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/clock/imx8qxp-lpcg.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: NXP i.MX8QXP LPCG (Low-Power Clock Gating) Clock bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Aisheng Dong <aisheng.dong@nxp.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  The Low-Power Clock Gate (LPCG) modules contain a local programming
148c2ecf20Sopenharmony_ci  model to control the clock gates for the peripherals. An LPCG module
158c2ecf20Sopenharmony_ci  is used to locally gate the clocks for the associated peripheral.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci  This level of clock gating is provided after the clocks are generated
188c2ecf20Sopenharmony_ci  by the SCU resources and clock controls. Thus even if the clock is
198c2ecf20Sopenharmony_ci  enabled by these control bits, it might still not be running based
208c2ecf20Sopenharmony_ci  on the base resource.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci  The clock consumer should specify the desired clock by having the clock
238c2ecf20Sopenharmony_ci  ID in its "clocks" phandle cell. See the full list of clock IDs from:
248c2ecf20Sopenharmony_ci  include/dt-bindings/clock/imx8-clock.h
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciproperties:
278c2ecf20Sopenharmony_ci  compatible:
288c2ecf20Sopenharmony_ci    enum:
298c2ecf20Sopenharmony_ci      - fsl,imx8qxp-lpcg-adma
308c2ecf20Sopenharmony_ci      - fsl,imx8qxp-lpcg-conn
318c2ecf20Sopenharmony_ci      - fsl,imx8qxp-lpcg-dc
328c2ecf20Sopenharmony_ci      - fsl,imx8qxp-lpcg-dsp
338c2ecf20Sopenharmony_ci      - fsl,imx8qxp-lpcg-gpu
348c2ecf20Sopenharmony_ci      - fsl,imx8qxp-lpcg-hsio
358c2ecf20Sopenharmony_ci      - fsl,imx8qxp-lpcg-img
368c2ecf20Sopenharmony_ci      - fsl,imx8qxp-lpcg-lsio
378c2ecf20Sopenharmony_ci      - fsl,imx8qxp-lpcg-vpu
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci  reg:
408c2ecf20Sopenharmony_ci    maxItems: 1
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci  '#clock-cells':
438c2ecf20Sopenharmony_ci    const: 1
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_cirequired:
468c2ecf20Sopenharmony_ci  - compatible
478c2ecf20Sopenharmony_ci  - reg
488c2ecf20Sopenharmony_ci  - '#clock-cells'
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciadditionalProperties: false
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciexamples:
538c2ecf20Sopenharmony_ci  - |
548c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/imx8-clock.h>
558c2ecf20Sopenharmony_ci    #include <dt-bindings/firmware/imx/rsrc.h>
568c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci    clock-controller@5b200000 {
598c2ecf20Sopenharmony_ci        compatible = "fsl,imx8qxp-lpcg-conn";
608c2ecf20Sopenharmony_ci        reg = <0x5b200000 0xb0000>;
618c2ecf20Sopenharmony_ci        #clock-cells = <1>;
628c2ecf20Sopenharmony_ci    };
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci    mmc@5b010000 {
658c2ecf20Sopenharmony_ci        compatible = "fsl,imx8qxp-usdhc", "fsl,imx7d-usdhc";
668c2ecf20Sopenharmony_ci        interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
678c2ecf20Sopenharmony_ci        reg = <0x5b010000 0x10000>;
688c2ecf20Sopenharmony_ci        clocks = <&conn_lpcg IMX_CONN_LPCG_SDHC0_IPG_CLK>,
698c2ecf20Sopenharmony_ci                 <&conn_lpcg IMX_CONN_LPCG_SDHC0_PER_CLK>,
708c2ecf20Sopenharmony_ci                 <&conn_lpcg IMX_CONN_LPCG_SDHC0_HCLK>;
718c2ecf20Sopenharmony_ci        clock-names = "ipg", "per", "ahb";
728c2ecf20Sopenharmony_ci        power-domains = <&pd IMX_SC_R_SDHC_0>;
738c2ecf20Sopenharmony_ci    };
74