xref: /freebsd-src/sys/contrib/device-tree/Bindings/clock/imx8qxp-lpcg.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
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