Skip to content

Commit 5fbe6f5

Browse files
akemnadebebarino
authored andcommitted
dt-bindings: clock: ti: Convert mux.txt to json-schema
Convert the OMAP mux clock device tree binding to json-schema. Specify the creator of the original binding as a maintainer. Choose GPL-only license because original binding was also GPL. Signed-off-by: Andreas Kemnade <andreas@kemnade.info> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20241112162618.400194-1-andreas@kemnade.info Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent 0fcd584 commit 5fbe6f5

File tree

3 files changed

+126
-79
lines changed

3 files changed

+126
-79
lines changed

Documentation/devicetree/bindings/clock/ti/composite.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ merged to this clock. The component clocks shall be of one of the
1616
"ti,*composite*-clock" types.
1717

1818
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
19-
[2] Documentation/devicetree/bindings/clock/ti/mux.txt
19+
[2] Documentation/devicetree/bindings/clock/ti/ti,mux-clock.yaml
2020
[3] Documentation/devicetree/bindings/clock/ti/ti,divider-clock.yaml
2121
[4] Documentation/devicetree/bindings/clock/ti/gate.txt
2222

Documentation/devicetree/bindings/clock/ti/mux.txt

Lines changed: 0 additions & 78 deletions
This file was deleted.
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/ti/ti,mux-clock.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Texas Instruments mux clock
8+
9+
maintainers:
10+
- Tero Kristo <kristo@kernel.org>
11+
12+
description: |
13+
This clock assumes a register-mapped multiplexer with multiple inpt clock
14+
signals or parents, one of which can be selected as output. This clock does
15+
not gate or adjust the parent rate via a divider or multiplier.
16+
17+
By default the "clocks" property lists the parents in the same order
18+
as they are programmed into the register. E.g:
19+
20+
clocks = <&foo_clock>, <&bar_clock>, <&baz_clock>;
21+
22+
Results in programming the register as follows:
23+
24+
register value selected parent clock
25+
0 foo_clock
26+
1 bar_clock
27+
2 baz_clock
28+
29+
Some clock controller IPs do not allow a value of zero to be programmed
30+
into the register, instead indexing begins at 1. The optional property
31+
"index-starts-at-one" modified the scheme as follows:
32+
33+
register value selected clock parent
34+
1 foo_clock
35+
2 bar_clock
36+
3 baz_clock
37+
38+
The binding must provide the register to control the mux. Optionally
39+
the number of bits to shift the control field in the register can be
40+
supplied. If the shift value is missing it is the same as supplying
41+
a zero shift.
42+
43+
properties:
44+
compatible:
45+
enum:
46+
- ti,mux-clock
47+
- ti,composite-mux-clock
48+
49+
"#clock-cells":
50+
const: 0
51+
52+
clocks: true
53+
54+
clock-output-names:
55+
maxItems: 1
56+
57+
reg:
58+
maxItems: 1
59+
60+
ti,bit-shift:
61+
$ref: /schemas/types.yaml#/definitions/uint32
62+
description:
63+
Number of bits to shift the bit-mask
64+
maximum: 31
65+
default: 0
66+
67+
ti,index-starts-at-one:
68+
type: boolean
69+
description:
70+
Valid input select programming starts at 1, not zero
71+
72+
ti,set-rate-parent:
73+
type: boolean
74+
description:
75+
clk_set_rate is propagated to parent clock,
76+
not supported by the composite-mux-clock subtype.
77+
78+
ti,latch-bit:
79+
$ref: /schemas/types.yaml#/definitions/uint32
80+
description:
81+
Latch the mux value to HW, only needed if the register
82+
access requires this. As an example, dra7x DPLL_GMAC H14 muxing
83+
implements such behavior.
84+
maximum: 31
85+
86+
if:
87+
properties:
88+
compatible:
89+
contains:
90+
const: ti,composite-mux-clock
91+
then:
92+
properties:
93+
ti,set-rate-parent: false
94+
95+
required:
96+
- compatible
97+
- "#clock-cells"
98+
- clocks
99+
- reg
100+
101+
additionalProperties: false
102+
103+
examples:
104+
- |
105+
bus {
106+
#address-cells = <1>;
107+
#size-cells = <0>;
108+
109+
clock-controller@110 {
110+
compatible = "ti,mux-clock";
111+
reg = <0x0110>;
112+
#clock-cells = <0>;
113+
clocks = <&virt_12000000_ck>, <&virt_13000000_ck>, <&virt_16800000_ck>;
114+
ti,index-starts-at-one;
115+
ti,set-rate-parent;
116+
};
117+
118+
clock-controller@120 {
119+
compatible = "ti,composite-mux-clock";
120+
reg = <0x0120>;
121+
#clock-cells = <0>;
122+
clocks = <&core_96m_fck>, <&mcbsp_clks>;
123+
ti,bit-shift = <4>;
124+
};
125+
};

0 commit comments

Comments
 (0)