mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-12 16:19:53 +00:00
105 lines
3.7 KiB
Plaintext
105 lines
3.7 KiB
Plaintext
|
* Clock bindings for Freescale i.MX7ULP
|
||
|
|
||
|
i.MX7ULP Clock functions are under joint control of the System
|
||
|
Clock Generation (SCG) modules, Peripheral Clock Control (PCC)
|
||
|
modules, and Core Mode Controller (CMC)1 blocks
|
||
|
|
||
|
The clocking scheme provides clear separation between M4 domain
|
||
|
and A7 domain. Except for a few clock sources shared between two
|
||
|
domains, such as the System Oscillator clock, the Slow IRC (SIRC),
|
||
|
and and the Fast IRC clock (FIRCLK), clock sources and clock
|
||
|
management are separated and contained within each domain.
|
||
|
|
||
|
M4 clock management consists of SCG0, PCC0, PCC1, and CMC0 modules.
|
||
|
A7 clock management consists of SCG1, PCC2, PCC3, and CMC1 modules.
|
||
|
|
||
|
Note: this binding doc is only for A7 clock domain.
|
||
|
|
||
|
System Clock Generation (SCG) modules:
|
||
|
---------------------------------------------------------------------
|
||
|
The System Clock Generation (SCG) is responsible for clock generation
|
||
|
and distribution across this device. Functions performed by the SCG
|
||
|
include: clock reference selection, generation of clock used to derive
|
||
|
processor, system, peripheral bus and external memory interface clocks,
|
||
|
source selection for peripheral clocks and control of power saving
|
||
|
clock gating mode.
|
||
|
|
||
|
Required properties:
|
||
|
|
||
|
- compatible: Should be "fsl,imx7ulp-scg1".
|
||
|
- reg : Should contain registers location and length.
|
||
|
- #clock-cells: Should be <1>.
|
||
|
- clocks: Should contain the fixed input clocks.
|
||
|
- clock-names: Should contain the following clock names:
|
||
|
"rosc", "sosc", "sirc", "firc", "upll", "mpll".
|
||
|
|
||
|
Peripheral Clock Control (PCC) modules:
|
||
|
---------------------------------------------------------------------
|
||
|
The Peripheral Clock Control (PCC) is responsible for clock selection,
|
||
|
optional division and clock gating mode for peripherals in their
|
||
|
respected power domain
|
||
|
|
||
|
Required properties:
|
||
|
- compatible: Should be one of:
|
||
|
"fsl,imx7ulp-pcc2",
|
||
|
"fsl,imx7ulp-pcc3".
|
||
|
- reg : Should contain registers location and length.
|
||
|
- #clock-cells: Should be <1>.
|
||
|
- clocks: Should contain the fixed input clocks.
|
||
|
- clock-names: Should contain the following clock names:
|
||
|
"nic1_bus_clk", "nic1_clk", "ddr_clk", "apll_pfd2",
|
||
|
"apll_pfd1", "apll_pfd0", "upll", "sosc_bus_clk",
|
||
|
"mpll", "firc_bus_clk", "rosc", "spll_bus_clk";
|
||
|
|
||
|
The clock consumer should specify the desired clock by having the clock
|
||
|
ID in its "clocks" phandle cell.
|
||
|
See include/dt-bindings/clock/imx7ulp-clock.h
|
||
|
for the full list of i.MX7ULP clock IDs of each module.
|
||
|
|
||
|
Examples:
|
||
|
|
||
|
#include <dt-bindings/clock/imx7ulp-clock.h>
|
||
|
|
||
|
scg1: scg1@403e0000 {
|
||
|
compatible = "fsl,imx7ulp-scg1;
|
||
|
reg = <0x403e0000 0x10000>;
|
||
|
clocks = <&rosc>, <&sosc>, <&sirc>,
|
||
|
<&firc>, <&upll>, <&mpll>;
|
||
|
clock-names = "rosc", "sosc", "sirc",
|
||
|
"firc", "upll", "mpll";
|
||
|
#clock-cells = <1>;
|
||
|
};
|
||
|
|
||
|
pcc2: pcc2@403f0000 {
|
||
|
compatible = "fsl,imx7ulp-pcc2";
|
||
|
reg = <0x403f0000 0x10000>;
|
||
|
#clock-cells = <1>;
|
||
|
clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
|
||
|
<&scg1 IMX7ULP_CLK_NIC1_DIV>,
|
||
|
<&scg1 IMX7ULP_CLK_DDR_DIV>,
|
||
|
<&scg1 IMX7ULP_CLK_APLL_PFD2>,
|
||
|
<&scg1 IMX7ULP_CLK_APLL_PFD1>,
|
||
|
<&scg1 IMX7ULP_CLK_APLL_PFD0>,
|
||
|
<&scg1 IMX7ULP_CLK_UPLL>,
|
||
|
<&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>,
|
||
|
<&scg1 IMX7ULP_CLK_MIPI_PLL>,
|
||
|
<&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>,
|
||
|
<&scg1 IMX7ULP_CLK_ROSC>,
|
||
|
<&scg1 IMX7ULP_CLK_SPLL_BUS_CLK>;
|
||
|
clock-names = "nic1_bus_clk", "nic1_clk", "ddr_clk",
|
||
|
"apll_pfd2", "apll_pfd1", "apll_pfd0",
|
||
|
"upll", "sosc_bus_clk", "mpll",
|
||
|
"firc_bus_clk", "rosc", "spll_bus_clk";
|
||
|
};
|
||
|
|
||
|
usdhc1: usdhc@40380000 {
|
||
|
compatible = "fsl,imx7ulp-usdhc";
|
||
|
reg = <0x40380000 0x10000>;
|
||
|
interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
|
||
|
<&scg1 IMX7ULP_CLK_NIC1_DIV>,
|
||
|
<&pcc2 IMX7ULP_CLK_USDHC1>;
|
||
|
clock-names ="ipg", "ahb", "per";
|
||
|
bus-width = <4>;
|
||
|
};
|