18c2ecf20Sopenharmony_ci--------------------------------------------------------------------------
28c2ecf20Sopenharmony_ciDevice Tree Clock bindings for the Zynq Ultrascale+ MPSoC controlled using
38c2ecf20Sopenharmony_ciZynq MPSoC firmware interface
48c2ecf20Sopenharmony_ci--------------------------------------------------------------------------
58c2ecf20Sopenharmony_ciThe clock controller is a h/w block of Zynq Ultrascale+ MPSoC clock
68c2ecf20Sopenharmony_citree. It reads required input clock frequencies from the devicetree and acts
78c2ecf20Sopenharmony_cias clock provider for all clock consumers of PS clocks.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciSee clock_bindings.txt for more information on the generic clock bindings.
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciRequired properties:
128c2ecf20Sopenharmony_ci - #clock-cells:	Must be 1
138c2ecf20Sopenharmony_ci - compatible:		Must contain:	"xlnx,zynqmp-clk"
148c2ecf20Sopenharmony_ci - clocks:		List of clock specifiers which are external input
158c2ecf20Sopenharmony_ci			clocks to the given clock controller. Please refer
168c2ecf20Sopenharmony_ci			the next section to find the input clocks for a
178c2ecf20Sopenharmony_ci			given controller.
188c2ecf20Sopenharmony_ci - clock-names:		List of clock names which are exteral input clocks
198c2ecf20Sopenharmony_ci			to the given clock controller. Please refer to the
208c2ecf20Sopenharmony_ci			clock bindings for more details.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ciInput clocks for zynqmp Ultrascale+ clock controller:
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciThe Zynq UltraScale+ MPSoC has one primary and four alternative reference clock
258c2ecf20Sopenharmony_ciinputs. These required clock inputs are:
268c2ecf20Sopenharmony_ci - pss_ref_clk (PS reference clock)
278c2ecf20Sopenharmony_ci - video_clk (reference clock for video system )
288c2ecf20Sopenharmony_ci - pss_alt_ref_clk (alternative PS reference clock)
298c2ecf20Sopenharmony_ci - aux_ref_clk
308c2ecf20Sopenharmony_ci - gt_crx_ref_clk (transceiver reference clock)
318c2ecf20Sopenharmony_ci
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 - swdt0_ext_clk
358c2ecf20Sopenharmony_ci - swdt1_ext_clk
368c2ecf20Sopenharmony_ci - gem0_emio_clk
378c2ecf20Sopenharmony_ci - gem1_emio_clk
388c2ecf20Sopenharmony_ci - gem2_emio_clk
398c2ecf20Sopenharmony_ci - gem3_emio_clk
408c2ecf20Sopenharmony_ci - mio_clk_XX		# with XX = 00..77
418c2ecf20Sopenharmony_ci - mio_clk_50_or_51	#for the mux clock to gem tsu from 50 or 51
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ciOutput clocks are registered based on clock information received
458c2ecf20Sopenharmony_cifrom firmware. Output clocks indexes are mentioned in
468c2ecf20Sopenharmony_ciinclude/dt-bindings/clock/xlnx-zynqmp-clk.h.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci-------
498c2ecf20Sopenharmony_ciExample
508c2ecf20Sopenharmony_ci-------
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_cifirmware {
538c2ecf20Sopenharmony_ci	zynqmp_firmware: zynqmp-firmware {
548c2ecf20Sopenharmony_ci		compatible = "xlnx,zynqmp-firmware";
558c2ecf20Sopenharmony_ci		method = "smc";
568c2ecf20Sopenharmony_ci		zynqmp_clk: clock-controller {
578c2ecf20Sopenharmony_ci			#clock-cells = <1>;
588c2ecf20Sopenharmony_ci			compatible = "xlnx,zynqmp-clk";
598c2ecf20Sopenharmony_ci			clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>, <&aux_ref_clk>, <&gt_crx_ref_clk>;
608c2ecf20Sopenharmony_ci			clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk","aux_ref_clk", "gt_crx_ref_clk";
618c2ecf20Sopenharmony_ci		};
628c2ecf20Sopenharmony_ci	};
638c2ecf20Sopenharmony_ci};
64