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