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/imx8qxp-lpcg.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7*8bab661aSEmmanuel Vadottitle: NXP i.MX8QXP LPCG (Low-Power Clock Gating) Clock 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Aisheng Dong <aisheng.dong@nxp.com> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotdescription: | 13c66ec88fSEmmanuel Vadot The Low-Power Clock Gate (LPCG) modules contain a local programming 14c66ec88fSEmmanuel Vadot model to control the clock gates for the peripherals. An LPCG module 15c66ec88fSEmmanuel Vadot is used to locally gate the clocks for the associated peripheral. 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadot This level of clock gating is provided after the clocks are generated 18c66ec88fSEmmanuel Vadot by the SCU resources and clock controls. Thus even if the clock is 19c66ec88fSEmmanuel Vadot enabled by these control bits, it might still not be running based 20c66ec88fSEmmanuel Vadot on the base resource. 21c66ec88fSEmmanuel Vadot 22c66ec88fSEmmanuel Vadot The clock consumer should specify the desired clock by having the clock 23c66ec88fSEmmanuel Vadot ID in its "clocks" phandle cell. See the full list of clock IDs from: 245def4c47SEmmanuel Vadot include/dt-bindings/clock/imx8-lpcg.h 25c66ec88fSEmmanuel Vadot 26c66ec88fSEmmanuel Vadotproperties: 27c66ec88fSEmmanuel Vadot compatible: 285def4c47SEmmanuel Vadot oneOf: 295def4c47SEmmanuel Vadot - const: fsl,imx8qxp-lpcg 305def4c47SEmmanuel Vadot - items: 315def4c47SEmmanuel Vadot - enum: 325def4c47SEmmanuel Vadot - fsl,imx8qm-lpcg 335def4c47SEmmanuel Vadot - const: fsl,imx8qxp-lpcg 345def4c47SEmmanuel Vadot - enum: 35c66ec88fSEmmanuel Vadot - fsl,imx8qxp-lpcg-adma 36c66ec88fSEmmanuel Vadot - fsl,imx8qxp-lpcg-conn 37c66ec88fSEmmanuel Vadot - fsl,imx8qxp-lpcg-dc 38c66ec88fSEmmanuel Vadot - fsl,imx8qxp-lpcg-dsp 39c66ec88fSEmmanuel Vadot - fsl,imx8qxp-lpcg-gpu 40c66ec88fSEmmanuel Vadot - fsl,imx8qxp-lpcg-hsio 41c66ec88fSEmmanuel Vadot - fsl,imx8qxp-lpcg-img 42c66ec88fSEmmanuel Vadot - fsl,imx8qxp-lpcg-lsio 43c66ec88fSEmmanuel Vadot - fsl,imx8qxp-lpcg-vpu 445def4c47SEmmanuel Vadot deprecated: true 45c66ec88fSEmmanuel Vadot reg: 46c66ec88fSEmmanuel Vadot maxItems: 1 47c66ec88fSEmmanuel Vadot 48c66ec88fSEmmanuel Vadot '#clock-cells': 49c66ec88fSEmmanuel Vadot const: 1 50c66ec88fSEmmanuel Vadot 515def4c47SEmmanuel Vadot clocks: 525def4c47SEmmanuel Vadot description: | 535def4c47SEmmanuel Vadot Input parent clocks phandle array for each clock 545def4c47SEmmanuel Vadot minItems: 1 555def4c47SEmmanuel Vadot maxItems: 8 565def4c47SEmmanuel Vadot 575def4c47SEmmanuel Vadot clock-indices: 585def4c47SEmmanuel Vadot description: | 595def4c47SEmmanuel Vadot An integer array indicating the bit offset for each clock. 605def4c47SEmmanuel Vadot Refer to <include/dt-bindings/clock/imx8-lpcg.h> for the 615def4c47SEmmanuel Vadot supported LPCG clock indices. 625def4c47SEmmanuel Vadot minItems: 1 635def4c47SEmmanuel Vadot maxItems: 8 645def4c47SEmmanuel Vadot 655def4c47SEmmanuel Vadot clock-output-names: 665def4c47SEmmanuel Vadot description: | 675def4c47SEmmanuel Vadot Shall be the corresponding names of the outputs. 685def4c47SEmmanuel Vadot NOTE this property must be specified in the same order 695def4c47SEmmanuel Vadot as the clock-indices property. 705def4c47SEmmanuel Vadot minItems: 1 715def4c47SEmmanuel Vadot maxItems: 8 725def4c47SEmmanuel Vadot 735def4c47SEmmanuel Vadot power-domains: 745def4c47SEmmanuel Vadot maxItems: 1 755def4c47SEmmanuel Vadot 76c66ec88fSEmmanuel Vadotrequired: 77c66ec88fSEmmanuel Vadot - compatible 78c66ec88fSEmmanuel Vadot - reg 79c66ec88fSEmmanuel Vadot - '#clock-cells' 80c66ec88fSEmmanuel Vadot 81c66ec88fSEmmanuel VadotadditionalProperties: false 82c66ec88fSEmmanuel Vadot 83c66ec88fSEmmanuel Vadotexamples: 84c66ec88fSEmmanuel Vadot - | 855def4c47SEmmanuel Vadot #include <dt-bindings/clock/imx8-lpcg.h> 86c66ec88fSEmmanuel Vadot #include <dt-bindings/firmware/imx/rsrc.h> 87c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 88c66ec88fSEmmanuel Vadot 895def4c47SEmmanuel Vadot sdhc0_lpcg: clock-controller@5b200000 { 905def4c47SEmmanuel Vadot compatible = "fsl,imx8qxp-lpcg"; 915def4c47SEmmanuel Vadot reg = <0x5b200000 0x10000>; 92c66ec88fSEmmanuel Vadot #clock-cells = <1>; 935def4c47SEmmanuel Vadot clocks = <&sdhc0_clk IMX_SC_PM_CLK_PER>, 945def4c47SEmmanuel Vadot <&conn_ipg_clk>, 955def4c47SEmmanuel Vadot <&conn_axi_clk>; 965def4c47SEmmanuel Vadot clock-indices = <IMX_LPCG_CLK_0>, 975def4c47SEmmanuel Vadot <IMX_LPCG_CLK_4>, 985def4c47SEmmanuel Vadot <IMX_LPCG_CLK_5>; 995def4c47SEmmanuel Vadot clock-output-names = "sdhc0_lpcg_per_clk", 1005def4c47SEmmanuel Vadot "sdhc0_lpcg_ipg_clk", 1015def4c47SEmmanuel Vadot "sdhc0_lpcg_ahb_clk"; 1025def4c47SEmmanuel Vadot power-domains = <&pd IMX_SC_R_SDHC_0>; 103c66ec88fSEmmanuel Vadot }; 104