| * 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: | |
| - compatible: should be one of the following. | |
| - "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. | |
| Each clock is assigned an identifier and client nodes can use this identifier | |
| to specify the clock which they consume. | |
| All available clocks are defined as preprocessor macros in | |
| dt-bindings/clock/exynos4.h header and can be used in device | |
| tree sources. | |
| Example 1: An example of a clock controller node is listed below. | |
| clock: clock-controller@10030000 { | |
| 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>; | |
| clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>; | |
| clock-names = "uart", "clk_uart_baud0"; | |
| }; | |
| 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"; | |
| }; |