exynos5260-clock.txt 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. * Samsung Exynos5260 Clock Controller
  2. Exynos5260 has 13 clock controllers which are instantiated
  3. independently from the device-tree. These clock controllers
  4. generate and supply clocks to various hardware blocks within
  5. the SoC.
  6. Each clock is assigned an identifier and client nodes can use
  7. this identifier to specify the clock which they consume. All
  8. available clocks are defined as preprocessor macros in
  9. dt-bindings/clock/exynos5260-clk.h header and can be used in
  10. device tree sources.
  11. External clocks:
  12. There are several clocks that are generated outside the SoC. It
  13. is expected that they are defined using standard clock bindings
  14. with following clock-output-names:
  15. - "fin_pll" - PLL input clock from XXTI
  16. - "xrtcxti" - input clock from XRTCXTI
  17. - "ioclk_pcm_extclk" - pcm external operation clock
  18. - "ioclk_spdif_extclk" - spdif external operation clock
  19. - "ioclk_i2s_cdclk" - i2s0 codec clock
  20. Phy clocks:
  21. There are several clocks which are generated by specific PHYs.
  22. These clocks are fed into the clock controller and then routed to
  23. the hardware blocks. These clocks are defined as fixed clocks in the
  24. driver with following names:
  25. - "phyclk_dptx_phy_ch3_txd_clk" - dp phy clock for channel 3
  26. - "phyclk_dptx_phy_ch2_txd_clk" - dp phy clock for channel 2
  27. - "phyclk_dptx_phy_ch1_txd_clk" - dp phy clock for channel 1
  28. - "phyclk_dptx_phy_ch0_txd_clk" - dp phy clock for channel 0
  29. - "phyclk_hdmi_phy_tmds_clko" - hdmi phy tmds clock
  30. - "phyclk_hdmi_phy_pixel_clko" - hdmi phy pixel clock
  31. - "phyclk_hdmi_link_o_tmds_clkhi" - hdmi phy for hdmi link
  32. - "phyclk_dptx_phy_o_ref_clk_24m" - dp phy reference clock
  33. - "phyclk_dptx_phy_clk_div2"
  34. - "phyclk_mipi_dphy_4l_m_rxclkesc0"
  35. - "phyclk_usbhost20_phy_phyclock" - usb 2.0 phy clock
  36. - "phyclk_usbhost20_phy_freeclk"
  37. - "phyclk_usbhost20_phy_clk48mohci"
  38. - "phyclk_usbdrd30_udrd30_pipe_pclk"
  39. - "phyclk_usbdrd30_udrd30_phyclock" - usb 3.0 phy clock
  40. Required Properties for Clock Controller:
  41. - compatible: should be one of the following.
  42. 1) "samsung,exynos5260-clock-top"
  43. 2) "samsung,exynos5260-clock-peri"
  44. 3) "samsung,exynos5260-clock-egl"
  45. 4) "samsung,exynos5260-clock-kfc"
  46. 5) "samsung,exynos5260-clock-g2d"
  47. 6) "samsung,exynos5260-clock-mif"
  48. 7) "samsung,exynos5260-clock-mfc"
  49. 8) "samsung,exynos5260-clock-g3d"
  50. 9) "samsung,exynos5260-clock-fsys"
  51. 10) "samsung,exynos5260-clock-aud"
  52. 11) "samsung,exynos5260-clock-isp"
  53. 12) "samsung,exynos5260-clock-gscl"
  54. 13) "samsung,exynos5260-clock-disp"
  55. - reg: physical base address of the controller and the length of
  56. memory mapped region.
  57. - #clock-cells: should be 1.
  58. - clocks: list of clock identifiers which are fed as the input to
  59. the given clock controller. Please refer the next section to find
  60. the input clocks for a given controller.
  61. - clock-names: list of names of clocks which are fed as the input
  62. to the given clock controller.
  63. Input clocks for top clock controller:
  64. - fin_pll
  65. - dout_mem_pll
  66. - dout_bus_pll
  67. - dout_media_pll
  68. Input clocks for peri clock controller:
  69. - fin_pll
  70. - ioclk_pcm_extclk
  71. - ioclk_i2s_cdclk
  72. - ioclk_spdif_extclk
  73. - phyclk_hdmi_phy_ref_cko
  74. - dout_aclk_peri_66
  75. - dout_sclk_peri_uart0
  76. - dout_sclk_peri_uart1
  77. - dout_sclk_peri_uart2
  78. - dout_sclk_peri_spi0_b
  79. - dout_sclk_peri_spi1_b
  80. - dout_sclk_peri_spi2_b
  81. - dout_aclk_peri_aud
  82. - dout_sclk_peri_spi0_b
  83. Input clocks for egl clock controller:
  84. - fin_pll
  85. - dout_bus_pll
  86. Input clocks for kfc clock controller:
  87. - fin_pll
  88. - dout_media_pll
  89. Input clocks for g2d clock controller:
  90. - fin_pll
  91. - dout_aclk_g2d_333
  92. Input clocks for mif clock controller:
  93. - fin_pll
  94. Input clocks for mfc clock controller:
  95. - fin_pll
  96. - dout_aclk_mfc_333
  97. Input clocks for g3d clock controller:
  98. - fin_pll
  99. Input clocks for fsys clock controller:
  100. - fin_pll
  101. - phyclk_usbhost20_phy_phyclock
  102. - phyclk_usbhost20_phy_freeclk
  103. - phyclk_usbhost20_phy_clk48mohci
  104. - phyclk_usbdrd30_udrd30_pipe_pclk
  105. - phyclk_usbdrd30_udrd30_phyclock
  106. - dout_aclk_fsys_200
  107. Input clocks for aud clock controller:
  108. - fin_pll
  109. - fout_aud_pll
  110. - ioclk_i2s_cdclk
  111. - ioclk_pcm_extclk
  112. Input clocks for isp clock controller:
  113. - fin_pll
  114. - dout_aclk_isp1_266
  115. - dout_aclk_isp1_400
  116. - mout_aclk_isp1_266
  117. Input clocks for gscl clock controller:
  118. - fin_pll
  119. - dout_aclk_gscl_400
  120. - dout_aclk_gscl_333
  121. Input clocks for disp clock controller:
  122. - fin_pll
  123. - phyclk_dptx_phy_ch3_txd_clk
  124. - phyclk_dptx_phy_ch2_txd_clk
  125. - phyclk_dptx_phy_ch1_txd_clk
  126. - phyclk_dptx_phy_ch0_txd_clk
  127. - phyclk_hdmi_phy_tmds_clko
  128. - phyclk_hdmi_phy_ref_clko
  129. - phyclk_hdmi_phy_pixel_clko
  130. - phyclk_hdmi_link_o_tmds_clkhi
  131. - phyclk_mipi_dphy_4l_m_txbyte_clkhs
  132. - phyclk_dptx_phy_o_ref_clk_24m
  133. - phyclk_dptx_phy_clk_div2
  134. - phyclk_mipi_dphy_4l_m_rxclkesc0
  135. - phyclk_hdmi_phy_ref_cko
  136. - ioclk_spdif_extclk
  137. - dout_aclk_peri_aud
  138. - dout_aclk_disp_222
  139. - dout_sclk_disp_pixel
  140. - dout_aclk_disp_333
  141. Example 1: An example of a clock controller node is listed below.
  142. clock_mfc: clock-controller@11090000 {
  143. compatible = "samsung,exynos5260-clock-mfc";
  144. clock = <&fin_pll>, <&clock_top TOP_DOUT_ACLK_MFC_333>;
  145. clock-names = "fin_pll", "dout_aclk_mfc_333";
  146. reg = <0x11090000 0x10000>;
  147. #clock-cells = <1>;
  148. };
  149. Example 2: UART controller node that consumes the clock generated by the
  150. peri clock controller. Refer to the standard clock bindings for
  151. information about 'clocks' and 'clock-names' property.
  152. serial@12C00000 {
  153. compatible = "samsung,exynos4210-uart";
  154. reg = <0x12C00000 0x100>;
  155. interrupts = <0 146 0>;
  156. clocks = <&clock_peri PERI_PCLK_UART0>, <&clock_peri PERI_SCLK_UART0>;
  157. clock-names = "uart", "clk_uart_baud0";
  158. };