Linux 6.11-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / clock / ti / composite.txt
1 Binding for TI composite clock.
2
3 This binding uses the common clock binding[1]. It assumes a
4 register-mapped composite clock with multiple different sub-types;
5
6 a multiplexer clock with multiple input clock signals or parents, one
7 of which can be selected as output, this behaves exactly as [2]
8
9 an adjustable clock rate divider, this behaves exactly as [3]
10
11 a gating function which can be used to enable and disable the output
12 clock, this behaves exactly as [4]
13
14 The binding must provide a list of the component clocks that shall be
15 merged to this clock. The component clocks shall be of one of the
16 "ti,*composite*-clock" types.
17
18 [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
19 [2] Documentation/devicetree/bindings/clock/ti/mux.txt
20 [3] Documentation/devicetree/bindings/clock/ti/divider.txt
21 [4] Documentation/devicetree/bindings/clock/ti/gate.txt
22
23 Required properties:
24 - compatible : shall be: "ti,composite-clock"
25 - clocks : link phandles of component clocks
26 - #clock-cells : from common clock binding; shall be set to 0.
27
28 Optional properties:
29 - clock-output-names : from common clock binding.
30
31 Examples:
32
33 usb_l4_gate_ick: usb_l4_gate_ick {
34         #clock-cells = <0>;
35         compatible = "ti,composite-interface-clock";
36         clocks = <&l4_ick>;
37         ti,bit-shift = <5>;
38         reg = <0x0a10>;
39 };
40
41 usb_l4_div_ick: usb_l4_div_ick {
42         #clock-cells = <0>;
43         compatible = "ti,composite-divider-clock";
44         clocks = <&l4_ick>;
45         ti,bit-shift = <4>;
46         ti,max-div = <1>;
47         reg = <0x0a40>;
48         ti,index-starts-at-one;
49 };
50
51 usb_l4_ick: usb_l4_ick {
52         #clock-cells = <0>;
53         compatible = "ti,composite-clock";
54         clocks = <&usb_l4_gate_ick>, <&usb_l4_div_ick>;
55 };