zynq-7000.txt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. Device Tree Clock bindings for the Zynq 7000 EPP
  2. The Zynq EPP has several different clk providers, each with there own bindings.
  3. The purpose of this document is to document their usage.
  4. See clock_bindings.txt for more information on the generic clock bindings.
  5. See Chapter 25 of Zynq TRM for more information about Zynq clocks.
  6. == Clock Controller ==
  7. The clock controller is a logical abstraction of Zynq's clock tree. It reads
  8. required input clock frequencies from the devicetree and acts as clock provider
  9. for all clock consumers of PS clocks.
  10. Required properties:
  11. - #clock-cells : Must be 1
  12. - compatible : "xlnx,ps7-clkc"
  13. - reg : SLCR offset and size taken via syscon < 0x100 0x100 >
  14. - ps-clk-frequency : Frequency of the oscillator providing ps_clk in HZ
  15. (usually 33 MHz oscillators are used for Zynq platforms)
  16. - clock-output-names : List of strings used to name the clock outputs. Shall be
  17. a list of the outputs given below.
  18. Optional properties:
  19. - clocks : as described in the clock bindings
  20. - clock-names : as described in the clock bindings
  21. - fclk-enable : Bit mask to enable FCLKs statically at boot time.
  22. Bit [0..3] correspond to FCLK0..FCLK3. The corresponding
  23. FCLK will only be enabled if it is actually running at
  24. boot time.
  25. Clock inputs:
  26. The following strings are optional parameters to the 'clock-names' property in
  27. order to provide an optional (E)MIO clock source.
  28. - swdt_ext_clk
  29. - gem0_emio_clk
  30. - gem1_emio_clk
  31. - mio_clk_XX # with XX = 00..53
  32. ...
  33. Clock outputs:
  34. 0: armpll
  35. 1: ddrpll
  36. 2: iopll
  37. 3: cpu_6or4x
  38. 4: cpu_3or2x
  39. 5: cpu_2x
  40. 6: cpu_1x
  41. 7: ddr2x
  42. 8: ddr3x
  43. 9: dci
  44. 10: lqspi
  45. 11: smc
  46. 12: pcap
  47. 13: gem0
  48. 14: gem1
  49. 15: fclk0
  50. 16: fclk1
  51. 17: fclk2
  52. 18: fclk3
  53. 19: can0
  54. 20: can1
  55. 21: sdio0
  56. 22: sdio1
  57. 23: uart0
  58. 24: uart1
  59. 25: spi0
  60. 26: spi1
  61. 27: dma
  62. 28: usb0_aper
  63. 29: usb1_aper
  64. 30: gem0_aper
  65. 31: gem1_aper
  66. 32: sdio0_aper
  67. 33: sdio1_aper
  68. 34: spi0_aper
  69. 35: spi1_aper
  70. 36: can0_aper
  71. 37: can1_aper
  72. 38: i2c0_aper
  73. 39: i2c1_aper
  74. 40: uart0_aper
  75. 41: uart1_aper
  76. 42: gpio_aper
  77. 43: lqspi_aper
  78. 44: smc_aper
  79. 45: swdt
  80. 46: dbg_trc
  81. 47: dbg_apb
  82. Example:
  83. clkc: clkc@100 {
  84. #clock-cells = <1>;
  85. compatible = "xlnx,ps7-clkc";
  86. ps-clk-frequency = <33333333>;
  87. reg = <0x100 0x100>;
  88. clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
  89. "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
  90. "dci", "lqspi", "smc", "pcap", "gem0", "gem1",
  91. "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
  92. "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
  93. "dma", "usb0_aper", "usb1_aper", "gem0_aper",
  94. "gem1_aper", "sdio0_aper", "sdio1_aper",
  95. "spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
  96. "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
  97. "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
  98. "dbg_trc", "dbg_apb";
  99. # optional props
  100. clocks = <&clkc 16>, <&clk_foo>;
  101. clock-names = "gem1_emio_clk", "can_mio_clk_23";
  102. };