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