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