Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/clock/imx7ulp-pcc-clock.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Clock bindings for Freescale i.MX7ULP Peripheral Clock Control (PCC) modules
0008 
0009 maintainers:
0010   - A.s. Dong <aisheng.dong@nxp.com>
0011 
0012 description: |
0013   i.MX7ULP Clock functions are under joint control of the System
0014   Clock Generation (SCG) modules, Peripheral Clock Control (PCC)
0015   modules, and Core Mode Controller (CMC)1 blocks
0016 
0017   The clocking scheme provides clear separation between M4 domain
0018   and A7 domain. Except for a few clock sources shared between two
0019   domains, such as the System Oscillator clock, the Slow IRC (SIRC),
0020   and and the Fast IRC clock (FIRCLK), clock sources and clock
0021   management are separated and contained within each domain.
0022 
0023   M4 clock management consists of SCG0, PCC0, PCC1, and CMC0 modules.
0024   A7 clock management consists of SCG1, PCC2, PCC3, and CMC1 modules.
0025 
0026   Note: this binding doc is only for A7 clock domain.
0027 
0028   The Peripheral Clock Control (PCC) is responsible for clock selection,
0029   optional division and clock gating mode for peripherals in their
0030   respected power domain.
0031 
0032   The clock consumer should specify the desired clock by having the clock
0033   ID in its "clocks" phandle cell.
0034   See include/dt-bindings/clock/imx7ulp-clock.h for the full list of
0035   i.MX7ULP clock IDs of each module.
0036 
0037 properties:
0038   compatible:
0039     enum:
0040       - fsl,imx7ulp-pcc2
0041       - fsl,imx7ulp-pcc3
0042 
0043   reg:
0044     maxItems: 1
0045 
0046   '#clock-cells':
0047     const: 1
0048 
0049   clocks:
0050     items:
0051       - description: nic1 bus clock
0052       - description: nic1 clock
0053       - description: ddr clock
0054       - description: apll pfd2
0055       - description: apll pfd1
0056       - description: apll pfd0
0057       - description: usb pll
0058       - description: system osc bus clock
0059       - description: fast internal reference clock bus
0060       - description: rtc osc
0061       - description: system pll bus clock
0062 
0063   clock-names:
0064     items:
0065       - const: nic1_bus_clk
0066       - const: nic1_clk
0067       - const: ddr_clk
0068       - const: apll_pfd2
0069       - const: apll_pfd1
0070       - const: apll_pfd0
0071       - const: upll
0072       - const: sosc_bus_clk
0073       - const: firc_bus_clk
0074       - const: rosc
0075       - const: spll_bus_clk
0076 
0077 required:
0078   - compatible
0079   - reg
0080   - '#clock-cells'
0081   - clocks
0082   - clock-names
0083 
0084 additionalProperties: false
0085 
0086 examples:
0087   - |
0088     #include <dt-bindings/clock/imx7ulp-clock.h>
0089     #include <dt-bindings/interrupt-controller/arm-gic.h>
0090 
0091     clock-controller@403f0000 {
0092         compatible = "fsl,imx7ulp-pcc2";
0093         reg = <0x403f0000 0x10000>;
0094         #clock-cells = <1>;
0095         clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
0096                  <&scg1 IMX7ULP_CLK_NIC1_DIV>,
0097                  <&scg1 IMX7ULP_CLK_DDR_DIV>,
0098                  <&scg1 IMX7ULP_CLK_APLL_PFD2>,
0099                  <&scg1 IMX7ULP_CLK_APLL_PFD1>,
0100                  <&scg1 IMX7ULP_CLK_APLL_PFD0>,
0101                  <&scg1 IMX7ULP_CLK_UPLL>,
0102                  <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>,
0103                  <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>,
0104                  <&scg1 IMX7ULP_CLK_ROSC>,
0105                  <&scg1 IMX7ULP_CLK_SPLL_BUS_CLK>;
0106          clock-names = "nic1_bus_clk", "nic1_clk", "ddr_clk",
0107                        "apll_pfd2", "apll_pfd1", "apll_pfd0",
0108                        "upll", "sosc_bus_clk", "firc_bus_clk",
0109                        "rosc", "spll_bus_clk";
0110     };