162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/clock/xlnx,versal-clk.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Xilinx Versal clock controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Michal Simek <michal.simek@amd.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci The clock controller is a hardware block of Xilinx versal clock tree. It 1462306a36Sopenharmony_ci reads required input clock frequencies from the devicetree and acts as clock 1562306a36Sopenharmony_ci provider for all clock consumers of PS clocks. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciproperties: 1862306a36Sopenharmony_ci compatible: 1962306a36Sopenharmony_ci oneOf: 2062306a36Sopenharmony_ci - enum: 2162306a36Sopenharmony_ci - xlnx,versal-clk 2262306a36Sopenharmony_ci - xlnx,zynqmp-clk 2362306a36Sopenharmony_ci - items: 2462306a36Sopenharmony_ci - enum: 2562306a36Sopenharmony_ci - xlnx,versal-net-clk 2662306a36Sopenharmony_ci - const: xlnx,versal-clk 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci "#clock-cells": 2962306a36Sopenharmony_ci const: 1 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci clocks: 3262306a36Sopenharmony_ci description: List of clock specifiers which are external input 3362306a36Sopenharmony_ci clocks to the given clock controller. 3462306a36Sopenharmony_ci minItems: 3 3562306a36Sopenharmony_ci maxItems: 8 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci clock-names: 3862306a36Sopenharmony_ci minItems: 3 3962306a36Sopenharmony_ci maxItems: 8 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_cirequired: 4262306a36Sopenharmony_ci - compatible 4362306a36Sopenharmony_ci - "#clock-cells" 4462306a36Sopenharmony_ci - clocks 4562306a36Sopenharmony_ci - clock-names 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciadditionalProperties: false 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciallOf: 5062306a36Sopenharmony_ci - if: 5162306a36Sopenharmony_ci properties: 5262306a36Sopenharmony_ci compatible: 5362306a36Sopenharmony_ci contains: 5462306a36Sopenharmony_ci enum: 5562306a36Sopenharmony_ci - xlnx,versal-clk 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci then: 5862306a36Sopenharmony_ci properties: 5962306a36Sopenharmony_ci clocks: 6062306a36Sopenharmony_ci items: 6162306a36Sopenharmony_ci - description: reference clock 6262306a36Sopenharmony_ci - description: alternate reference clock 6362306a36Sopenharmony_ci - description: alternate reference clock for programmable logic 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci clock-names: 6662306a36Sopenharmony_ci items: 6762306a36Sopenharmony_ci - const: ref 6862306a36Sopenharmony_ci - const: alt_ref 6962306a36Sopenharmony_ci - const: pl_alt_ref 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci - if: 7262306a36Sopenharmony_ci properties: 7362306a36Sopenharmony_ci compatible: 7462306a36Sopenharmony_ci contains: 7562306a36Sopenharmony_ci enum: 7662306a36Sopenharmony_ci - xlnx,zynqmp-clk 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci then: 7962306a36Sopenharmony_ci properties: 8062306a36Sopenharmony_ci clocks: 8162306a36Sopenharmony_ci minItems: 5 8262306a36Sopenharmony_ci items: 8362306a36Sopenharmony_ci - description: PS reference clock 8462306a36Sopenharmony_ci - description: reference clock for video system 8562306a36Sopenharmony_ci - description: alternative PS reference clock 8662306a36Sopenharmony_ci - description: auxiliary reference clock 8762306a36Sopenharmony_ci - description: transceiver reference clock 8862306a36Sopenharmony_ci - description: (E)MIO clock source (Optional clock) 8962306a36Sopenharmony_ci - description: GEM emio clock (Optional clock) 9062306a36Sopenharmony_ci - description: Watchdog external clock (Optional clock) 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci clock-names: 9362306a36Sopenharmony_ci minItems: 5 9462306a36Sopenharmony_ci items: 9562306a36Sopenharmony_ci - const: pss_ref_clk 9662306a36Sopenharmony_ci - const: video_clk 9762306a36Sopenharmony_ci - const: pss_alt_ref_clk 9862306a36Sopenharmony_ci - const: aux_ref_clk 9962306a36Sopenharmony_ci - const: gt_crx_ref_clk 10062306a36Sopenharmony_ci - pattern: "^mio_clk[00-77]+.*$" 10162306a36Sopenharmony_ci - pattern: "gem[0-3]+_emio_clk.*$" 10262306a36Sopenharmony_ci - pattern: "swdt[0-1]+_ext_clk.*$" 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciexamples: 10562306a36Sopenharmony_ci - | 10662306a36Sopenharmony_ci firmware { 10762306a36Sopenharmony_ci zynqmp_firmware: zynqmp-firmware { 10862306a36Sopenharmony_ci compatible = "xlnx,zynqmp-firmware"; 10962306a36Sopenharmony_ci method = "smc"; 11062306a36Sopenharmony_ci versal_clk: clock-controller { 11162306a36Sopenharmony_ci #clock-cells = <1>; 11262306a36Sopenharmony_ci compatible = "xlnx,versal-clk"; 11362306a36Sopenharmony_ci clocks = <&ref>, <&alt_ref>, <&pl_alt_ref>; 11462306a36Sopenharmony_ci clock-names = "ref", "alt_ref", "pl_alt_ref"; 11562306a36Sopenharmony_ci }; 11662306a36Sopenharmony_ci }; 11762306a36Sopenharmony_ci }; 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci clock-controller { 12062306a36Sopenharmony_ci #clock-cells = <1>; 12162306a36Sopenharmony_ci compatible = "xlnx,zynqmp-clk"; 12262306a36Sopenharmony_ci clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>, 12362306a36Sopenharmony_ci <&aux_ref_clk>, <>_crx_ref_clk>; 12462306a36Sopenharmony_ci clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk", 12562306a36Sopenharmony_ci "aux_ref_clk", "gt_crx_ref_clk"; 12662306a36Sopenharmony_ci }; 12762306a36Sopenharmony_ci... 128