Skip to content

Commit 45c9401

Browse files
lucaceresolibebarino
authored andcommitted
dt-bindings: clk: versaclock5: convert to yaml
Convert to yaml the VersaClock bindings document. The mapping between clock specifier and physical pins cannot be described formally in yaml schema, then keep it verbatim in the description field. Signed-off-by: Luca Ceresoli <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
1 parent db136ac commit 45c9401

File tree

3 files changed

+155
-125
lines changed

3 files changed

+155
-125
lines changed

Documentation/devicetree/bindings/clock/idt,versaclock5.txt

Lines changed: 0 additions & 125 deletions
This file was deleted.
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/idt,versaclock5.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Binding for IDT VersaClock 5 and 6 programmable I2C clock generators
8+
9+
description: |
10+
The IDT VersaClock 5 and VersaClock 6 are programmable I2C
11+
clock generators providing from 3 to 12 output clocks.
12+
13+
When referencing the provided clock in the DT using phandle and clock
14+
specifier, the following mapping applies:
15+
16+
- 5P49V5923:
17+
0 -- OUT0_SEL_I2CB
18+
1 -- OUT1
19+
2 -- OUT2
20+
21+
- 5P49V5933:
22+
0 -- OUT0_SEL_I2CB
23+
1 -- OUT1
24+
2 -- OUT4
25+
26+
- other parts:
27+
0 -- OUT0_SEL_I2CB
28+
1 -- OUT1
29+
2 -- OUT2
30+
3 -- OUT3
31+
4 -- OUT4
32+
33+
maintainers:
34+
- Luca Ceresoli <[email protected]>
35+
36+
properties:
37+
compatible:
38+
enum:
39+
- idt,5p49v5923
40+
- idt,5p49v5925
41+
- idt,5p49v5933
42+
- idt,5p49v5935
43+
- idt,5p49v6901
44+
- idt,5p49v6965
45+
46+
reg:
47+
description: I2C device address
48+
enum: [ 0x68, 0x6a ]
49+
50+
'#clock-cells':
51+
const: 1
52+
53+
patternProperties:
54+
"^OUT[1-4]$":
55+
type: object
56+
description:
57+
Description of one of the outputs (OUT1..OUT4). See "Clock1 Output
58+
Configuration" in the Versaclock 5/6/6E Family Register Description
59+
and Programming Guide.
60+
properties:
61+
idt,mode:
62+
description:
63+
The output drive mode. Values defined in dt-bindings/clk/versaclock.h
64+
$ref: /schemas/types.yaml#/definitions/uint32
65+
minimum: 0
66+
maximum: 6
67+
idt,voltage-microvolt:
68+
description: The output drive voltage.
69+
enum: [ 1800000, 2500000, 3300000 ]
70+
idt,slew-percent:
71+
description: The Slew rate control for CMOS single-ended.
72+
$ref: /schemas/types.yaml#/definitions/uint32
73+
enum: [ 80, 85, 90, 100 ]
74+
75+
required:
76+
- compatible
77+
- reg
78+
- '#clock-cells'
79+
80+
allOf:
81+
- if:
82+
properties:
83+
compatible:
84+
enum:
85+
- idt,5p49v5933
86+
- idt,5p49v5935
87+
then:
88+
# Devices with builtin crystal + optional external input
89+
properties:
90+
clock-names:
91+
const: clkin
92+
clocks:
93+
maxItems: 1
94+
else:
95+
# Devices without builtin crystal
96+
properties:
97+
clock-names:
98+
minItems: 1
99+
maxItems: 2
100+
items:
101+
enum: [ xin, clkin ]
102+
clocks:
103+
minItems: 1
104+
maxItems: 2
105+
required:
106+
- clock-names
107+
- clocks
108+
109+
examples:
110+
- |
111+
#include <dt-bindings/clk/versaclock.h>
112+
113+
/* 25MHz reference crystal */
114+
ref25: ref25m {
115+
compatible = "fixed-clock";
116+
#clock-cells = <0>;
117+
clock-frequency = <25000000>;
118+
};
119+
120+
i2c@0 {
121+
reg = <0x0 0x100>;
122+
#address-cells = <1>;
123+
#size-cells = <0>;
124+
125+
/* IDT 5P49V5923 I2C clock generator */
126+
vc5: clock-generator@6a {
127+
compatible = "idt,5p49v5923";
128+
reg = <0x6a>;
129+
#clock-cells = <1>;
130+
131+
/* Connect XIN input to 25MHz reference */
132+
clocks = <&ref25m>;
133+
clock-names = "xin";
134+
135+
OUT1 {
136+
idt,drive-mode = <VC5_CMOSD>;
137+
idt,voltage-microvolts = <1800000>;
138+
idt,slew-percent = <80>;
139+
};
140+
141+
OUT4 {
142+
idt,drive-mode = <VC5_LVDS>;
143+
};
144+
};
145+
};
146+
147+
/* Consumer referencing the 5P49V5923 pin OUT1 */
148+
consumer {
149+
/* ... */
150+
clocks = <&vc5 1>;
151+
/* ... */
152+
};
153+
154+
...

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8326,6 +8326,7 @@ F: drivers/input/misc/ideapad_slidebar.c
83268326
IDT VersaClock 5 CLOCK DRIVER
83278327
M: Luca Ceresoli <[email protected]>
83288328
S: Maintained
8329+
F: Documentation/devicetree/bindings/clock/idt,versaclock5.yaml
83298330
F: drivers/clk/clk-versaclock5.c
83308331

83318332
IEEE 802.15.4 SUBSYSTEM

0 commit comments

Comments
 (0)