Back to home page

OSCL-LXR

 
 

    


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                 };