| * Samsung Exynos5260 Clock Controller |
| |
| Exynos5260 has 13 clock controllers which are instantiated |
| independently from the device-tree. These clock controllers |
| generate and supply clocks to various hardware blocks within |
| the SoC. |
| |
| Each clock is assigned an identifier and client nodes can use |
| this identifier to specify the clock which they consume. All |
| available clocks are defined as preprocessor macros in |
| dt-bindings/clock/exynos5260-clk.h header and can be used in |
| device tree sources. |
| |
| External clocks: |
| |
| There are several clocks that are generated outside the SoC. It |
| is expected that they are defined using standard clock bindings |
| with following clock-output-names: |
| |
| - "fin_pll" - PLL input clock from XXTI |
| - "xrtcxti" - input clock from XRTCXTI |
| - "ioclk_pcm_extclk" - pcm external operation clock |
| - "ioclk_spdif_extclk" - spdif external operation clock |
| - "ioclk_i2s_cdclk" - i2s0 codec clock |
| |
| Phy clocks: |
| |
| There are several clocks which are generated by specific PHYs. |
| These clocks are fed into the clock controller and then routed to |
| the hardware blocks. These clocks are defined as fixed clocks in the |
| driver with following names: |
| |
| - "phyclk_dptx_phy_ch3_txd_clk" - dp phy clock for channel 3 |
| - "phyclk_dptx_phy_ch2_txd_clk" - dp phy clock for channel 2 |
| - "phyclk_dptx_phy_ch1_txd_clk" - dp phy clock for channel 1 |
| - "phyclk_dptx_phy_ch0_txd_clk" - dp phy clock for channel 0 |
| - "phyclk_hdmi_phy_tmds_clko" - hdmi phy tmds clock |
| - "phyclk_hdmi_phy_pixel_clko" - hdmi phy pixel clock |
| - "phyclk_hdmi_link_o_tmds_clkhi" - hdmi phy for hdmi link |
| - "phyclk_dptx_phy_o_ref_clk_24m" - dp phy reference clock |
| - "phyclk_dptx_phy_clk_div2" |
| - "phyclk_mipi_dphy_4l_m_rxclkesc0" |
| - "phyclk_usbhost20_phy_phyclock" - usb 2.0 phy clock |
| - "phyclk_usbhost20_phy_freeclk" |
| - "phyclk_usbhost20_phy_clk48mohci" |
| - "phyclk_usbdrd30_udrd30_pipe_pclk" |
| - "phyclk_usbdrd30_udrd30_phyclock" - usb 3.0 phy clock |
| |
| Required Properties for Clock Controller: |
| |
| - compatible: should be one of the following. |
| 1) "samsung,exynos5260-clock-top" |
| 2) "samsung,exynos5260-clock-peri" |
| 3) "samsung,exynos5260-clock-egl" |
| 4) "samsung,exynos5260-clock-kfc" |
| 5) "samsung,exynos5260-clock-g2d" |
| 6) "samsung,exynos5260-clock-mif" |
| 7) "samsung,exynos5260-clock-mfc" |
| 8) "samsung,exynos5260-clock-g3d" |
| 9) "samsung,exynos5260-clock-fsys" |
| 10) "samsung,exynos5260-clock-aud" |
| 11) "samsung,exynos5260-clock-isp" |
| 12) "samsung,exynos5260-clock-gscl" |
| 13) "samsung,exynos5260-clock-disp" |
| |
| - reg: physical base address of the controller and the length of |
| memory mapped region. |
| |
| - #clock-cells: should be 1. |
| |
| - clocks: list of clock identifiers which are fed as the input to |
| the given clock controller. Please refer the next section to find |
| the input clocks for a given controller. |
| |
| - clock-names: list of names of clocks which are fed as the input |
| to the given clock controller. |
| |
| Input clocks for top clock controller: |
| - fin_pll |
| - dout_mem_pll |
| - dout_bus_pll |
| - dout_media_pll |
| |
| Input clocks for peri clock controller: |
| - fin_pll |
| - ioclk_pcm_extclk |
| - ioclk_i2s_cdclk |
| - ioclk_spdif_extclk |
| - phyclk_hdmi_phy_ref_cko |
| - dout_aclk_peri_66 |
| - dout_sclk_peri_uart0 |
| - dout_sclk_peri_uart1 |
| - dout_sclk_peri_uart2 |
| - dout_sclk_peri_spi0_b |
| - dout_sclk_peri_spi1_b |
| - dout_sclk_peri_spi2_b |
| - dout_aclk_peri_aud |
| - dout_sclk_peri_spi0_b |
| |
| Input clocks for egl clock controller: |
| - fin_pll |
| - dout_bus_pll |
| |
| Input clocks for kfc clock controller: |
| - fin_pll |
| - dout_media_pll |
| |
| Input clocks for g2d clock controller: |
| - fin_pll |
| - dout_aclk_g2d_333 |
| |
| Input clocks for mif clock controller: |
| - fin_pll |
| |
| Input clocks for mfc clock controller: |
| - fin_pll |
| - dout_aclk_mfc_333 |
| |
| Input clocks for g3d clock controller: |
| - fin_pll |
| |
| Input clocks for fsys clock controller: |
| - fin_pll |
| - phyclk_usbhost20_phy_phyclock |
| - phyclk_usbhost20_phy_freeclk |
| - phyclk_usbhost20_phy_clk48mohci |
| - phyclk_usbdrd30_udrd30_pipe_pclk |
| - phyclk_usbdrd30_udrd30_phyclock |
| - dout_aclk_fsys_200 |
| |
| Input clocks for aud clock controller: |
| - fin_pll |
| - fout_aud_pll |
| - ioclk_i2s_cdclk |
| - ioclk_pcm_extclk |
| |
| Input clocks for isp clock controller: |
| - fin_pll |
| - dout_aclk_isp1_266 |
| - dout_aclk_isp1_400 |
| - mout_aclk_isp1_266 |
| |
| Input clocks for gscl clock controller: |
| - fin_pll |
| - dout_aclk_gscl_400 |
| - dout_aclk_gscl_333 |
| |
| Input clocks for disp clock controller: |
| - fin_pll |
| - phyclk_dptx_phy_ch3_txd_clk |
| - phyclk_dptx_phy_ch2_txd_clk |
| - phyclk_dptx_phy_ch1_txd_clk |
| - phyclk_dptx_phy_ch0_txd_clk |
| - phyclk_hdmi_phy_tmds_clko |
| - phyclk_hdmi_phy_ref_clko |
| - phyclk_hdmi_phy_pixel_clko |
| - phyclk_hdmi_link_o_tmds_clkhi |
| - phyclk_mipi_dphy_4l_m_txbyte_clkhs |
| - phyclk_dptx_phy_o_ref_clk_24m |
| - phyclk_dptx_phy_clk_div2 |
| - phyclk_mipi_dphy_4l_m_rxclkesc0 |
| - phyclk_hdmi_phy_ref_cko |
| - ioclk_spdif_extclk |
| - dout_aclk_peri_aud |
| - dout_aclk_disp_222 |
| - dout_sclk_disp_pixel |
| - dout_aclk_disp_333 |
| |
| Example 1: An example of a clock controller node is listed below. |
| |
| clock_mfc: clock-controller@11090000 { |
| compatible = "samsung,exynos5260-clock-mfc"; |
| clock = <&fin_pll>, <&clock_top TOP_DOUT_ACLK_MFC_333>; |
| clock-names = "fin_pll", "dout_aclk_mfc_333"; |
| reg = <0x11090000 0x10000>; |
| #clock-cells = <1>; |
| }; |
| |
| Example 2: UART controller node that consumes the clock generated by the |
| peri clock controller. Refer to the standard clock bindings for |
| information about 'clocks' and 'clock-names' property. |
| |
| serial@12c00000 { |
| compatible = "samsung,exynos4210-uart"; |
| reg = <0x12C00000 0x100>; |
| interrupts = <0 146 0>; |
| clocks = <&clock_peri PERI_PCLK_UART0>, <&clock_peri PERI_SCLK_UART0>; |
| clock-names = "uart", "clk_uart_baud0"; |
| }; |
| |