0001 * Samsung S3C64xx Clock Controller
0002
0003 The S3C64xx clock controller generates and supplies clock to various controllers
0004 within the SoC. The clock binding described here is applicable to all SoCs in
0005 the S3C64xx family.
0006
0007 Required Properties:
0008
0009 - compatible: should be one of the following.
0010 - "samsung,s3c6400-clock" - controller compatible with S3C6400 SoC.
0011 - "samsung,s3c6410-clock" - controller compatible with S3C6410 SoC.
0012
0013 - reg: physical base address of the controller and length of memory mapped
0014 region.
0015
0016 - #clock-cells: should be 1.
0017
0018 Each clock is assigned an identifier and client nodes can use this identifier
0019 to specify the clock which they consume. Some of the clocks are available only
0020 on a particular S3C64xx SoC and this is specified where applicable.
0021
0022 All available clocks are defined as preprocessor macros in
0023 dt-bindings/clock/samsung,s3c64xx-clock.h header and can be used in device
0024 tree sources.
0025
0026 External clocks:
0027
0028 There are several clocks that are generated outside the SoC. It is expected
0029 that they are defined using standard clock bindings with following
0030 clock-output-names:
0031 - "fin_pll" - PLL input clock (xtal/extclk) - required,
0032 - "xusbxti" - USB xtal - required,
0033 - "iiscdclk0" - I2S0 codec clock - optional,
0034 - "iiscdclk1" - I2S1 codec clock - optional,
0035 - "iiscdclk2" - I2S2 codec clock - optional,
0036 - "pcmcdclk0" - PCM0 codec clock - optional,
0037 - "pcmcdclk1" - PCM1 codec clock - optional, only S3C6410.
0038
0039 Example: Clock controller node:
0040
0041 clock: clock-controller@7e00f000 {
0042 compatible = "samsung,s3c6410-clock";
0043 reg = <0x7e00f000 0x1000>;
0044 #clock-cells = <1>;
0045 };
0046
0047 Example: Required external clocks:
0048
0049 fin_pll: clock-fin-pll {
0050 compatible = "fixed-clock";
0051 clock-output-names = "fin_pll";
0052 clock-frequency = <12000000>;
0053 #clock-cells = <0>;
0054 };
0055
0056 xusbxti: clock-xusbxti {
0057 compatible = "fixed-clock";
0058 clock-output-names = "xusbxti";
0059 clock-frequency = <48000000>;
0060 #clock-cells = <0>;
0061 };
0062
0063 Example: UART controller node that consumes the clock generated by the clock
0064 controller (refer to the standard clock bindings for information about
0065 "clocks" and "clock-names" properties):
0066
0067 uart0: serial@7f005000 {
0068 compatible = "samsung,s3c6400-uart";
0069 reg = <0x7f005000 0x100>;
0070 interrupt-parent = <&vic1>;
0071 interrupts = <5>;
0072 clock-names = "uart", "clk_uart_baud2",
0073 "clk_uart_baud3";
0074 clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>,
0075 <&clock SCLK_UART>;
0076 };