xref: /freebsd/sys/contrib/device-tree/Bindings/clock/exynos4-clock.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Samsung Exynos4 Clock Controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThe Exynos4 clock controller generates and supplies clock to various controllers
4*c66ec88fSEmmanuel Vadotwithin the Exynos4 SoC. The clock binding described here is applicable to all
5*c66ec88fSEmmanuel VadotSoC's in the Exynos4 family.
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotRequired Properties:
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot- compatible: should be one of the following.
10*c66ec88fSEmmanuel Vadot  - "samsung,exynos4210-clock" - controller compatible with Exynos4210 SoC.
11*c66ec88fSEmmanuel Vadot  - "samsung,exynos4412-clock" - controller compatible with Exynos4412 SoC.
12*c66ec88fSEmmanuel Vadot
13*c66ec88fSEmmanuel Vadot- reg: physical base address of the controller and length of memory mapped
14*c66ec88fSEmmanuel Vadot  region.
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel Vadot- #clock-cells: should be 1.
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotEach clock is assigned an identifier and client nodes can use this identifier
19*c66ec88fSEmmanuel Vadotto specify the clock which they consume.
20*c66ec88fSEmmanuel Vadot
21*c66ec88fSEmmanuel VadotAll available clocks are defined as preprocessor macros in
22*c66ec88fSEmmanuel Vadotdt-bindings/clock/exynos4.h header and can be used in device
23*c66ec88fSEmmanuel Vadottree sources.
24*c66ec88fSEmmanuel Vadot
25*c66ec88fSEmmanuel VadotExample 1: An example of a clock controller node is listed below.
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel Vadot	clock: clock-controller@10030000 {
28*c66ec88fSEmmanuel Vadot		compatible = "samsung,exynos4210-clock";
29*c66ec88fSEmmanuel Vadot		reg = <0x10030000 0x20000>;
30*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
31*c66ec88fSEmmanuel Vadot	};
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel VadotExample 2: UART controller node that consumes the clock generated by the clock
34*c66ec88fSEmmanuel Vadot	   controller. Refer to the standard clock bindings for information
35*c66ec88fSEmmanuel Vadot	   about 'clocks' and 'clock-names' property.
36*c66ec88fSEmmanuel Vadot
37*c66ec88fSEmmanuel Vadot	serial@13820000 {
38*c66ec88fSEmmanuel Vadot		compatible = "samsung,exynos4210-uart";
39*c66ec88fSEmmanuel Vadot		reg = <0x13820000 0x100>;
40*c66ec88fSEmmanuel Vadot		interrupts = <0 54 0>;
41*c66ec88fSEmmanuel Vadot		clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
42*c66ec88fSEmmanuel Vadot		clock-names = "uart", "clk_uart_baud0";
43*c66ec88fSEmmanuel Vadot	};
44*c66ec88fSEmmanuel Vadot
45*c66ec88fSEmmanuel VadotExynos4412 SoC contains some additional clocks for FIMC-ISP (Camera ISP)
46*c66ec88fSEmmanuel Vadotsubsystem. Registers for those clocks are located in the ISP power domain.
47*c66ec88fSEmmanuel VadotBecause those registers are also located in a different memory region than
48*c66ec88fSEmmanuel Vadotthe main clock controller, a separate clock controller has to be defined for
49*c66ec88fSEmmanuel Vadothandling them.
50*c66ec88fSEmmanuel Vadot
51*c66ec88fSEmmanuel VadotRequired Properties:
52*c66ec88fSEmmanuel Vadot
53*c66ec88fSEmmanuel Vadot- compatible: should be "samsung,exynos4412-isp-clock".
54*c66ec88fSEmmanuel Vadot
55*c66ec88fSEmmanuel Vadot- reg: physical base address of the ISP clock controller and length of memory
56*c66ec88fSEmmanuel Vadot  mapped region.
57*c66ec88fSEmmanuel Vadot
58*c66ec88fSEmmanuel Vadot- #clock-cells: should be 1.
59*c66ec88fSEmmanuel Vadot
60*c66ec88fSEmmanuel Vadot- clocks: list of the clock controller input clock identifiers,
61*c66ec88fSEmmanuel Vadot  from common clock bindings, should point to CLK_ACLK200 and
62*c66ec88fSEmmanuel Vadot  CLK_ACLK400_MCUISP clocks from the main clock controller.
63*c66ec88fSEmmanuel Vadot
64*c66ec88fSEmmanuel Vadot- clock-names: list of the clock controller input clock names,
65*c66ec88fSEmmanuel Vadot  as described in clock-bindings.txt, should be "aclk200" and
66*c66ec88fSEmmanuel Vadot  "aclk400_mcuisp".
67*c66ec88fSEmmanuel Vadot
68*c66ec88fSEmmanuel Vadot- power-domains: a phandle to ISP power domain node as described by
69*c66ec88fSEmmanuel Vadot  generic PM domain bindings.
70*c66ec88fSEmmanuel Vadot
71*c66ec88fSEmmanuel VadotExample 3: The clock controllers bindings for Exynos4412 SoCs.
72*c66ec88fSEmmanuel Vadot
73*c66ec88fSEmmanuel Vadot	clock: clock-controller@10030000 {
74*c66ec88fSEmmanuel Vadot		compatible = "samsung,exynos4412-clock";
75*c66ec88fSEmmanuel Vadot		reg = <0x10030000 0x18000>;
76*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
77*c66ec88fSEmmanuel Vadot	};
78*c66ec88fSEmmanuel Vadot
79*c66ec88fSEmmanuel Vadot	isp_clock: clock-controller@10048000 {
80*c66ec88fSEmmanuel Vadot		compatible = "samsung,exynos4412-isp-clock";
81*c66ec88fSEmmanuel Vadot		reg = <0x10048000 0x1000>;
82*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
83*c66ec88fSEmmanuel Vadot		power-domains = <&pd_isp>;
84*c66ec88fSEmmanuel Vadot		clocks = <&clock CLK_ACLK200>, <&clock CLK_ACLK400_MCUISP>;
85*c66ec88fSEmmanuel Vadot		clock-names = "aclk200", "aclk400_mcuisp";
86*c66ec88fSEmmanuel Vadot	};
87