18c2ecf20Sopenharmony_ciDevice Tree Clock bindings for the Zynq 7000 EPP
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThe Zynq EPP has several different clk providers, each with there own bindings.
48c2ecf20Sopenharmony_ciThe purpose of this document is to document their usage.
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciSee clock_bindings.txt for more information on the generic clock bindings.
78c2ecf20Sopenharmony_ciSee Chapter 25 of Zynq TRM for more information about Zynq clocks.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci== Clock Controller ==
108c2ecf20Sopenharmony_ciThe clock controller is a logical abstraction of Zynq's clock tree. It reads
118c2ecf20Sopenharmony_cirequired input clock frequencies from the devicetree and acts as clock provider
128c2ecf20Sopenharmony_cifor all clock consumers of PS clocks.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciRequired properties:
158c2ecf20Sopenharmony_ci - #clock-cells : Must be 1
168c2ecf20Sopenharmony_ci - compatible : "xlnx,ps7-clkc"
178c2ecf20Sopenharmony_ci - reg : SLCR offset and size taken via syscon < 0x100 0x100 >
188c2ecf20Sopenharmony_ci - ps-clk-frequency : Frequency of the oscillator providing ps_clk in HZ
198c2ecf20Sopenharmony_ci		      (usually 33 MHz oscillators are used for Zynq platforms)
208c2ecf20Sopenharmony_ci - clock-output-names : List of strings used to name the clock outputs. Shall be
218c2ecf20Sopenharmony_ci			a list of the outputs given below.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciOptional properties:
248c2ecf20Sopenharmony_ci - clocks : as described in the clock bindings
258c2ecf20Sopenharmony_ci - clock-names : as described in the clock bindings
268c2ecf20Sopenharmony_ci - fclk-enable : Bit mask to enable FCLKs statically at boot time.
278c2ecf20Sopenharmony_ci		 Bit [0..3] correspond to FCLK0..FCLK3. The corresponding
288c2ecf20Sopenharmony_ci		 FCLK will only be enabled if it is actually running at
298c2ecf20Sopenharmony_ci		 boot time.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciClock inputs:
328c2ecf20Sopenharmony_ciThe following strings are optional parameters to the 'clock-names' property in
338c2ecf20Sopenharmony_ciorder to provide an optional (E)MIO clock source.
348c2ecf20Sopenharmony_ci - swdt_ext_clk
358c2ecf20Sopenharmony_ci - gem0_emio_clk
368c2ecf20Sopenharmony_ci - gem1_emio_clk
378c2ecf20Sopenharmony_ci - mio_clk_XX		# with XX = 00..53
388c2ecf20Sopenharmony_ci...
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciClock outputs:
418c2ecf20Sopenharmony_ci 0:  armpll
428c2ecf20Sopenharmony_ci 1:  ddrpll
438c2ecf20Sopenharmony_ci 2:  iopll
448c2ecf20Sopenharmony_ci 3:  cpu_6or4x
458c2ecf20Sopenharmony_ci 4:  cpu_3or2x
468c2ecf20Sopenharmony_ci 5:  cpu_2x
478c2ecf20Sopenharmony_ci 6:  cpu_1x
488c2ecf20Sopenharmony_ci 7:  ddr2x
498c2ecf20Sopenharmony_ci 8:  ddr3x
508c2ecf20Sopenharmony_ci 9:  dci
518c2ecf20Sopenharmony_ci 10: lqspi
528c2ecf20Sopenharmony_ci 11: smc
538c2ecf20Sopenharmony_ci 12: pcap
548c2ecf20Sopenharmony_ci 13: gem0
558c2ecf20Sopenharmony_ci 14: gem1
568c2ecf20Sopenharmony_ci 15: fclk0
578c2ecf20Sopenharmony_ci 16: fclk1
588c2ecf20Sopenharmony_ci 17: fclk2
598c2ecf20Sopenharmony_ci 18: fclk3
608c2ecf20Sopenharmony_ci 19: can0
618c2ecf20Sopenharmony_ci 20: can1
628c2ecf20Sopenharmony_ci 21: sdio0
638c2ecf20Sopenharmony_ci 22: sdio1
648c2ecf20Sopenharmony_ci 23: uart0
658c2ecf20Sopenharmony_ci 24: uart1
668c2ecf20Sopenharmony_ci 25: spi0
678c2ecf20Sopenharmony_ci 26: spi1
688c2ecf20Sopenharmony_ci 27: dma
698c2ecf20Sopenharmony_ci 28: usb0_aper
708c2ecf20Sopenharmony_ci 29: usb1_aper
718c2ecf20Sopenharmony_ci 30: gem0_aper
728c2ecf20Sopenharmony_ci 31: gem1_aper
738c2ecf20Sopenharmony_ci 32: sdio0_aper
748c2ecf20Sopenharmony_ci 33: sdio1_aper
758c2ecf20Sopenharmony_ci 34: spi0_aper
768c2ecf20Sopenharmony_ci 35: spi1_aper
778c2ecf20Sopenharmony_ci 36: can0_aper
788c2ecf20Sopenharmony_ci 37: can1_aper
798c2ecf20Sopenharmony_ci 38: i2c0_aper
808c2ecf20Sopenharmony_ci 39: i2c1_aper
818c2ecf20Sopenharmony_ci 40: uart0_aper
828c2ecf20Sopenharmony_ci 41: uart1_aper
838c2ecf20Sopenharmony_ci 42: gpio_aper
848c2ecf20Sopenharmony_ci 43: lqspi_aper
858c2ecf20Sopenharmony_ci 44: smc_aper
868c2ecf20Sopenharmony_ci 45: swdt
878c2ecf20Sopenharmony_ci 46: dbg_trc
888c2ecf20Sopenharmony_ci 47: dbg_apb
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ciExample:
918c2ecf20Sopenharmony_ci	clkc: clkc@100 {
928c2ecf20Sopenharmony_ci		#clock-cells = <1>;
938c2ecf20Sopenharmony_ci		compatible = "xlnx,ps7-clkc";
948c2ecf20Sopenharmony_ci		ps-clk-frequency = <33333333>;
958c2ecf20Sopenharmony_ci		reg = <0x100 0x100>;
968c2ecf20Sopenharmony_ci		clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
978c2ecf20Sopenharmony_ci				"cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
988c2ecf20Sopenharmony_ci				"dci", "lqspi", "smc", "pcap", "gem0", "gem1",
998c2ecf20Sopenharmony_ci				"fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
1008c2ecf20Sopenharmony_ci				"sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
1018c2ecf20Sopenharmony_ci				"dma", "usb0_aper", "usb1_aper", "gem0_aper",
1028c2ecf20Sopenharmony_ci				"gem1_aper", "sdio0_aper", "sdio1_aper",
1038c2ecf20Sopenharmony_ci				"spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
1048c2ecf20Sopenharmony_ci				"i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
1058c2ecf20Sopenharmony_ci				"gpio_aper", "lqspi_aper", "smc_aper", "swdt",
1068c2ecf20Sopenharmony_ci				"dbg_trc", "dbg_apb";
1078c2ecf20Sopenharmony_ci		# optional props
1088c2ecf20Sopenharmony_ci		clocks = <&clkc 16>, <&clk_foo>;
1098c2ecf20Sopenharmony_ci		clock-names = "gem1_emio_clk", "can_mio_clk_23";
1108c2ecf20Sopenharmony_ci	};
111