18c2ecf20Sopenharmony_ci* Samsung Exynos4 Clock Controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThe Exynos4 clock controller generates and supplies clock to various controllers
48c2ecf20Sopenharmony_ciwithin the Exynos4 SoC. The clock binding described here is applicable to all
58c2ecf20Sopenharmony_ciSoC's in the Exynos4 family.
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciRequired Properties:
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci- compatible: should be one of the following.
108c2ecf20Sopenharmony_ci  - "samsung,exynos4210-clock" - controller compatible with Exynos4210 SoC.
118c2ecf20Sopenharmony_ci  - "samsung,exynos4412-clock" - controller compatible with Exynos4412 SoC.
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci- reg: physical base address of the controller and length of memory mapped
148c2ecf20Sopenharmony_ci  region.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci- #clock-cells: should be 1.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciEach clock is assigned an identifier and client nodes can use this identifier
198c2ecf20Sopenharmony_cito specify the clock which they consume.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciAll available clocks are defined as preprocessor macros in
228c2ecf20Sopenharmony_cidt-bindings/clock/exynos4.h header and can be used in device
238c2ecf20Sopenharmony_citree sources.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciExample 1: An example of a clock controller node is listed below.
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	clock: clock-controller@10030000 {
288c2ecf20Sopenharmony_ci		compatible = "samsung,exynos4210-clock";
298c2ecf20Sopenharmony_ci		reg = <0x10030000 0x20000>;
308c2ecf20Sopenharmony_ci		#clock-cells = <1>;
318c2ecf20Sopenharmony_ci	};
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciExample 2: UART controller node that consumes the clock generated by the clock
348c2ecf20Sopenharmony_ci	   controller. Refer to the standard clock bindings for information
358c2ecf20Sopenharmony_ci	   about 'clocks' and 'clock-names' property.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci	serial@13820000 {
388c2ecf20Sopenharmony_ci		compatible = "samsung,exynos4210-uart";
398c2ecf20Sopenharmony_ci		reg = <0x13820000 0x100>;
408c2ecf20Sopenharmony_ci		interrupts = <0 54 0>;
418c2ecf20Sopenharmony_ci		clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
428c2ecf20Sopenharmony_ci		clock-names = "uart", "clk_uart_baud0";
438c2ecf20Sopenharmony_ci	};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ciExynos4412 SoC contains some additional clocks for FIMC-ISP (Camera ISP)
468c2ecf20Sopenharmony_cisubsystem. Registers for those clocks are located in the ISP power domain.
478c2ecf20Sopenharmony_ciBecause those registers are also located in a different memory region than
488c2ecf20Sopenharmony_cithe main clock controller, a separate clock controller has to be defined for
498c2ecf20Sopenharmony_cihandling them.
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ciRequired Properties:
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci- compatible: should be "samsung,exynos4412-isp-clock".
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci- reg: physical base address of the ISP clock controller and length of memory
568c2ecf20Sopenharmony_ci  mapped region.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci- #clock-cells: should be 1.
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci- clocks: list of the clock controller input clock identifiers,
618c2ecf20Sopenharmony_ci  from common clock bindings, should point to CLK_ACLK200 and
628c2ecf20Sopenharmony_ci  CLK_ACLK400_MCUISP clocks from the main clock controller.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci- clock-names: list of the clock controller input clock names,
658c2ecf20Sopenharmony_ci  as described in clock-bindings.txt, should be "aclk200" and
668c2ecf20Sopenharmony_ci  "aclk400_mcuisp".
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci- power-domains: a phandle to ISP power domain node as described by
698c2ecf20Sopenharmony_ci  generic PM domain bindings.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciExample 3: The clock controllers bindings for Exynos4412 SoCs.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci	clock: clock-controller@10030000 {
748c2ecf20Sopenharmony_ci		compatible = "samsung,exynos4412-clock";
758c2ecf20Sopenharmony_ci		reg = <0x10030000 0x18000>;
768c2ecf20Sopenharmony_ci		#clock-cells = <1>;
778c2ecf20Sopenharmony_ci	};
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci	isp_clock: clock-controller@10048000 {
808c2ecf20Sopenharmony_ci		compatible = "samsung,exynos4412-isp-clock";
818c2ecf20Sopenharmony_ci		reg = <0x10048000 0x1000>;
828c2ecf20Sopenharmony_ci		#clock-cells = <1>;
838c2ecf20Sopenharmony_ci		power-domains = <&pd_isp>;
848c2ecf20Sopenharmony_ci		clocks = <&clock CLK_ACLK200>, <&clock CLK_ACLK400_MCUISP>;
858c2ecf20Sopenharmony_ci		clock-names = "aclk200", "aclk400_mcuisp";
868c2ecf20Sopenharmony_ci	};
87