dt-bindings: clock: Move xlnx,zynqmp-clk to its own schema

The ZynqMP clock controller binding shares only #clock-cells with the
Versal bindings. Move it to a dedicated xlnx,zynqmp-clk.yaml schema.
Also remove "(Optional clock)" from clock description because it is visible
from schema itself.

Also update versal-firmware example to match changes in
xlnx,zynqmp-firmware.yaml.

Suggested-by: Rob Herring <robh@kernel.org>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/973a8a5441cf13622594b95dd0dd20a5f42ccece.1783516336.git.michal.simek@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
This commit is contained in:
Michal Simek 2026-07-08 15:12:24 +02:00
parent 6e32cb10cf
commit d0d3f0f8ae
3 changed files with 78 additions and 51 deletions

View File

@ -17,9 +17,7 @@ description: |
properties:
compatible:
oneOf:
- enum:
- xlnx,versal-clk
- xlnx,zynqmp-clk
- const: xlnx,versal-clk
- items:
- enum:
- xlnx,versal-net-clk
@ -32,11 +30,11 @@ properties:
description: List of clock specifiers which are external input
clocks to the given clock controller.
minItems: 2
maxItems: 8
maxItems: 3
clock-names:
minItems: 2
maxItems: 8
maxItems: 3
required:
- compatible
@ -87,44 +85,11 @@ allOf:
- const: pl_alt_ref
- const: alt_ref
- if:
properties:
compatible:
contains:
enum:
- xlnx,zynqmp-clk
then:
properties:
clocks:
minItems: 5
items:
- description: PS reference clock
- description: reference clock for video system
- description: alternative PS reference clock
- description: auxiliary reference clock
- description: transceiver reference clock
- description: (E)MIO clock source (Optional clock)
- description: GEM emio clock (Optional clock)
- description: Watchdog external clock (Optional clock)
clock-names:
minItems: 5
items:
- const: pss_ref_clk
- const: video_clk
- const: pss_alt_ref_clk
- const: aux_ref_clk
- const: gt_crx_ref_clk
- pattern: "^mio_clk([0-6][0-9]|7[0-7])+.*$"
- pattern: "gem[0-3]+_emio_clk.*$"
- pattern: "swdt[0-1]+_ext_clk.*$"
examples:
- |
firmware {
zynqmp_firmware: zynqmp-firmware {
compatible = "xlnx,zynqmp-firmware";
versal-firmware {
compatible = "xlnx,versal-firmware";
method = "smc";
versal_clk: clock-controller {
#clock-cells = <1>;
@ -134,13 +99,4 @@ examples:
};
};
};
clock-controller {
#clock-cells = <1>;
compatible = "xlnx,zynqmp-clk";
clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>,
<&aux_ref_clk>, <&gt_crx_ref_clk>;
clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk",
"aux_ref_clk", "gt_crx_ref_clk";
};
...

View File

@ -0,0 +1,68 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/xlnx,zynqmp-clk.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Xilinx ZynqMP clock controller
maintainers:
- Michal Simek <michal.simek@amd.com>
description:
The clock controller is a hardware block of Xilinx ZynqMP clock tree. It
reads required input clock frequencies from the devicetree and acts as clock
provider for all clock consumers of PS clocks.
properties:
compatible:
const: xlnx,zynqmp-clk
"#clock-cells":
const: 1
clocks:
description: List of clock specifiers which are external input
clocks to the given clock controller.
minItems: 5
items:
- description: PS reference clock
- description: reference clock for video system
- description: alternative PS reference clock
- description: auxiliary reference clock
- description: transceiver reference clock
- description: (E)MIO clock source
- description: GEM emio clock
- description: Watchdog external clock
clock-names:
minItems: 5
items:
- const: pss_ref_clk
- const: video_clk
- const: pss_alt_ref_clk
- const: aux_ref_clk
- const: gt_crx_ref_clk
- pattern: "^mio_clk([0-6][0-9]|7[0-7])+.*$"
- pattern: "gem[0-3]+_emio_clk.*$"
- pattern: "swdt[0-1]+_ext_clk.*$"
required:
- compatible
- "#clock-cells"
- clocks
- clock-names
additionalProperties: false
examples:
- |
clock-controller {
compatible = "xlnx,zynqmp-clk";
clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>,
<&aux_ref_clk>, <&gt_crx_ref_clk>;
clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk",
"aux_ref_clk", "gt_crx_ref_clk";
#clock-cells = <1>;
};
...

View File

@ -48,8 +48,7 @@ properties:
const: 1
clock-controller:
$ref: /schemas/clock/xlnx,versal-clk.yaml#
description: The clock controller is a hardware block of Xilinx versal
description: The clock controller is a hardware block of Xilinx SoC
clock tree. It reads required input clock frequencies from the devicetree
and acts as clock provider for all clock consumers of PS clocks.list of
clock specifiers which are external input clocks to the given clock
@ -113,10 +112,14 @@ allOf:
const: xlnx,zynqmp-firmware
then:
properties:
clock-controller:
$ref: /schemas/clock/xlnx,zynqmp-clk.yaml#
pinctrl:
$ref: /schemas/pinctrl/xlnx,zynqmp-pinctrl.yaml#
else:
properties:
clock-controller:
$ref: /schemas/clock/xlnx,versal-clk.yaml#
pinctrl:
$ref: /schemas/pinctrl/xlnx,versal-pinctrl.yaml#