162306a36Sopenharmony_ci* Samsung S3C64xx Clock Controller 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciThe S3C64xx clock controller generates and supplies clock to various controllers 462306a36Sopenharmony_ciwithin the SoC. The clock binding described here is applicable to all SoCs in 562306a36Sopenharmony_cithe S3C64xx family. 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciRequired Properties: 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci- compatible: should be one of the following. 1062306a36Sopenharmony_ci - "samsung,s3c6400-clock" - controller compatible with S3C6400 SoC. 1162306a36Sopenharmony_ci - "samsung,s3c6410-clock" - controller compatible with S3C6410 SoC. 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci- reg: physical base address of the controller and length of memory mapped 1462306a36Sopenharmony_ci region. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci- #clock-cells: should be 1. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciEach clock is assigned an identifier and client nodes can use this identifier 1962306a36Sopenharmony_cito specify the clock which they consume. Some of the clocks are available only 2062306a36Sopenharmony_cion a particular S3C64xx SoC and this is specified where applicable. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciAll available clocks are defined as preprocessor macros in 2362306a36Sopenharmony_cidt-bindings/clock/samsung,s3c64xx-clock.h header and can be used in device 2462306a36Sopenharmony_citree sources. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciExternal clocks: 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciThere are several clocks that are generated outside the SoC. It is expected 2962306a36Sopenharmony_cithat they are defined using standard clock bindings with following 3062306a36Sopenharmony_ciclock-output-names: 3162306a36Sopenharmony_ci - "fin_pll" - PLL input clock (xtal/extclk) - required, 3262306a36Sopenharmony_ci - "xusbxti" - USB xtal - required, 3362306a36Sopenharmony_ci - "iiscdclk0" - I2S0 codec clock - optional, 3462306a36Sopenharmony_ci - "iiscdclk1" - I2S1 codec clock - optional, 3562306a36Sopenharmony_ci - "iiscdclk2" - I2S2 codec clock - optional, 3662306a36Sopenharmony_ci - "pcmcdclk0" - PCM0 codec clock - optional, 3762306a36Sopenharmony_ci - "pcmcdclk1" - PCM1 codec clock - optional, only S3C6410. 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciExample: Clock controller node: 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci clock: clock-controller@7e00f000 { 4262306a36Sopenharmony_ci compatible = "samsung,s3c6410-clock"; 4362306a36Sopenharmony_ci reg = <0x7e00f000 0x1000>; 4462306a36Sopenharmony_ci #clock-cells = <1>; 4562306a36Sopenharmony_ci }; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciExample: Required external clocks: 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci fin_pll: clock-fin-pll { 5062306a36Sopenharmony_ci compatible = "fixed-clock"; 5162306a36Sopenharmony_ci clock-output-names = "fin_pll"; 5262306a36Sopenharmony_ci clock-frequency = <12000000>; 5362306a36Sopenharmony_ci #clock-cells = <0>; 5462306a36Sopenharmony_ci }; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci xusbxti: clock-xusbxti { 5762306a36Sopenharmony_ci compatible = "fixed-clock"; 5862306a36Sopenharmony_ci clock-output-names = "xusbxti"; 5962306a36Sopenharmony_ci clock-frequency = <48000000>; 6062306a36Sopenharmony_ci #clock-cells = <0>; 6162306a36Sopenharmony_ci }; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciExample: UART controller node that consumes the clock generated by the clock 6462306a36Sopenharmony_ci controller (refer to the standard clock bindings for information about 6562306a36Sopenharmony_ci "clocks" and "clock-names" properties): 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci uart0: serial@7f005000 { 6862306a36Sopenharmony_ci compatible = "samsung,s3c6400-uart"; 6962306a36Sopenharmony_ci reg = <0x7f005000 0x100>; 7062306a36Sopenharmony_ci interrupt-parent = <&vic1>; 7162306a36Sopenharmony_ci interrupts = <5>; 7262306a36Sopenharmony_ci clock-names = "uart", "clk_uart_baud2", 7362306a36Sopenharmony_ci "clk_uart_baud3"; 7462306a36Sopenharmony_ci clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>, 7562306a36Sopenharmony_ci <&clock SCLK_UART>; 7662306a36Sopenharmony_ci }; 77