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