Back to home page

OSCL-LXR

 
 

    


0001 Device Tree Clock bindings for the Zynq 7000 EPP
0002 
0003 The Zynq EPP has several different clk providers, each with there own bindings.
0004 The purpose of this document is to document their usage.
0005 
0006 See clock_bindings.txt for more information on the generic clock bindings.
0007 See Chapter 25 of Zynq TRM for more information about Zynq clocks.
0008 
0009 == Clock Controller ==
0010 The clock controller is a logical abstraction of Zynq's clock tree. It reads
0011 required input clock frequencies from the devicetree and acts as clock provider
0012 for all clock consumers of PS clocks.
0013 
0014 Required properties:
0015  - #clock-cells : Must be 1
0016  - compatible : "xlnx,ps7-clkc"
0017  - reg : SLCR offset and size taken via syscon < 0x100 0x100 >
0018  - ps-clk-frequency : Frequency of the oscillator providing ps_clk in HZ
0019                       (usually 33 MHz oscillators are used for Zynq platforms)
0020  - clock-output-names : List of strings used to name the clock outputs. Shall be
0021                         a list of the outputs given below.
0022 
0023 Optional properties:
0024  - clocks : as described in the clock bindings
0025  - clock-names : as described in the clock bindings
0026  - fclk-enable : Bit mask to enable FCLKs statically at boot time.
0027                  Bit [0..3] correspond to FCLK0..FCLK3. The corresponding
0028                  FCLK will only be enabled if it is actually running at
0029                  boot time.
0030 
0031 Clock inputs:
0032 The following strings are optional parameters to the 'clock-names' property in
0033 order to provide an optional (E)MIO clock source.
0034  - swdt_ext_clk
0035  - gem0_emio_clk
0036  - gem1_emio_clk
0037  - mio_clk_XX           # with XX = 00..53
0038 ...
0039 
0040 Clock outputs:
0041  0:  armpll
0042  1:  ddrpll
0043  2:  iopll
0044  3:  cpu_6or4x
0045  4:  cpu_3or2x
0046  5:  cpu_2x
0047  6:  cpu_1x
0048  7:  ddr2x
0049  8:  ddr3x
0050  9:  dci
0051  10: lqspi
0052  11: smc
0053  12: pcap
0054  13: gem0
0055  14: gem1
0056  15: fclk0
0057  16: fclk1
0058  17: fclk2
0059  18: fclk3
0060  19: can0
0061  20: can1
0062  21: sdio0
0063  22: sdio1
0064  23: uart0
0065  24: uart1
0066  25: spi0
0067  26: spi1
0068  27: dma
0069  28: usb0_aper
0070  29: usb1_aper
0071  30: gem0_aper
0072  31: gem1_aper
0073  32: sdio0_aper
0074  33: sdio1_aper
0075  34: spi0_aper
0076  35: spi1_aper
0077  36: can0_aper
0078  37: can1_aper
0079  38: i2c0_aper
0080  39: i2c1_aper
0081  40: uart0_aper
0082  41: uart1_aper
0083  42: gpio_aper
0084  43: lqspi_aper
0085  44: smc_aper
0086  45: swdt
0087  46: dbg_trc
0088  47: dbg_apb
0089 
0090 Example:
0091         clkc: clkc@100 {
0092                 #clock-cells = <1>;
0093                 compatible = "xlnx,ps7-clkc";
0094                 ps-clk-frequency = <33333333>;
0095                 reg = <0x100 0x100>;
0096                 clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
0097                                 "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
0098                                 "dci", "lqspi", "smc", "pcap", "gem0", "gem1",
0099                                 "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
0100                                 "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
0101                                 "dma", "usb0_aper", "usb1_aper", "gem0_aper",
0102                                 "gem1_aper", "sdio0_aper", "sdio1_aper",
0103                                 "spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
0104                                 "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
0105                                 "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
0106                                 "dbg_trc", "dbg_apb";
0107                 # optional props
0108                 clocks = <&clkc 16>, <&clk_foo>;
0109                 clock-names = "gem1_emio_clk", "can_mio_clk_23";
0110         };