2013-03-09 08:02:52 +00:00
|
|
|
* Samsung Exynos4 Clock Controller
|
|
|
|
|
|
|
|
The Exynos4 clock controller generates and supplies clock to various controllers
|
|
|
|
within the Exynos4 SoC. The clock binding described here is applicable to all
|
|
|
|
SoC's in the Exynos4 family.
|
|
|
|
|
|
|
|
Required Properties:
|
|
|
|
|
2013-11-18 11:46:12 +00:00
|
|
|
- compatible: should be one of the following.
|
2013-03-09 08:02:52 +00:00
|
|
|
- "samsung,exynos4210-clock" - controller compatible with Exynos4210 SoC.
|
|
|
|
- "samsung,exynos4412-clock" - controller compatible with Exynos4412 SoC.
|
|
|
|
|
|
|
|
- reg: physical base address of the controller and length of memory mapped
|
|
|
|
region.
|
|
|
|
|
|
|
|
- #clock-cells: should be 1.
|
|
|
|
|
2014-02-26 00:53:30 +00:00
|
|
|
Each clock is assigned an identifier and client nodes can use this identifier
|
|
|
|
to specify the clock which they consume.
|
2013-04-04 04:33:12 +00:00
|
|
|
|
2014-02-26 00:53:30 +00:00
|
|
|
All available clocks are defined as preprocessor macros in
|
|
|
|
dt-bindings/clock/exynos4.h header and can be used in device
|
|
|
|
tree sources.
|
2013-03-09 08:02:52 +00:00
|
|
|
|
|
|
|
Example 1: An example of a clock controller node is listed below.
|
|
|
|
|
2017-11-29 20:55:15 +00:00
|
|
|
clock: clock-controller@10030000 {
|
2013-03-09 08:02:52 +00:00
|
|
|
compatible = "samsung,exynos4210-clock";
|
|
|
|
reg = <0x10030000 0x20000>;
|
|
|
|
#clock-cells = <1>;
|
|
|
|
};
|
|
|
|
|
|
|
|
Example 2: UART controller node that consumes the clock generated by the clock
|
|
|
|
controller. Refer to the standard clock bindings for information
|
|
|
|
about 'clocks' and 'clock-names' property.
|
|
|
|
|
|
|
|
serial@13820000 {
|
|
|
|
compatible = "samsung,exynos4210-uart";
|
|
|
|
reg = <0x13820000 0x100>;
|
|
|
|
interrupts = <0 54 0>;
|
2014-02-26 00:53:30 +00:00
|
|
|
clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
|
2013-03-09 08:02:52 +00:00
|
|
|
clock-names = "uart", "clk_uart_baud0";
|
|
|
|
};
|
2017-10-11 09:25:12 +00:00
|
|
|
|
|
|
|
Exynos4412 SoC contains some additional clocks for FIMC-ISP (Camera ISP)
|
|
|
|
subsystem. Registers for those clocks are located in the ISP power domain.
|
|
|
|
Because those registers are also located in a different memory region than
|
|
|
|
the main clock controller, a separate clock controller has to be defined for
|
|
|
|
handling them.
|
|
|
|
|
|
|
|
Required Properties:
|
|
|
|
|
|
|
|
- compatible: should be "samsung,exynos4412-isp-clock".
|
|
|
|
|
|
|
|
- reg: physical base address of the ISP clock controller and length of memory
|
|
|
|
mapped region.
|
|
|
|
|
|
|
|
- #clock-cells: should be 1.
|
|
|
|
|
|
|
|
- clocks: list of the clock controller input clock identifiers,
|
|
|
|
from common clock bindings, should point to CLK_ACLK200 and
|
|
|
|
CLK_ACLK400_MCUISP clocks from the main clock controller.
|
|
|
|
|
|
|
|
- clock-names: list of the clock controller input clock names,
|
|
|
|
as described in clock-bindings.txt, should be "aclk200" and
|
|
|
|
"aclk400_mcuisp".
|
|
|
|
|
|
|
|
- power-domains: a phandle to ISP power domain node as described by
|
|
|
|
generic PM domain bindings.
|
|
|
|
|
|
|
|
Example 3: The clock controllers bindings for Exynos4412 SoCs.
|
|
|
|
|
|
|
|
clock: clock-controller@10030000 {
|
|
|
|
compatible = "samsung,exynos4412-clock";
|
|
|
|
reg = <0x10030000 0x18000>;
|
|
|
|
#clock-cells = <1>;
|
|
|
|
};
|
|
|
|
|
|
|
|
isp_clock: clock-controller@10048000 {
|
|
|
|
compatible = "samsung,exynos4412-isp-clock";
|
|
|
|
reg = <0x10048000 0x1000>;
|
|
|
|
#clock-cells = <1>;
|
|
|
|
power-domains = <&pd_isp>;
|
|
|
|
clocks = <&clock CLK_ACLK200>, <&clock CLK_ACLK400_MCUISP>;
|
|
|
|
clock-names = "aclk200", "aclk400_mcuisp";
|
|
|
|
};
|