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


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
Binding for TI composite clock.

Binding status: Unstable - ABI compatibility may be broken in the future

This binding uses the common clock binding[1]. It assumes a
register-mapped composite clock with multiple different sub-types;

a multiplexer clock with multiple input clock signals or parents, one
of which can be selected as output, this behaves exactly as [2]

an adjustable clock rate divider, this behaves exactly as [3]

a gating function which can be used to enable and disable the output
clock, this behaves exactly as [4]

The binding must provide a list of the component clocks that shall be
merged to this clock. The component clocks shall be of one of the
"ti,*composite*-clock" types.

[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/clock/ti/mux.txt
[3] Documentation/devicetree/bindings/clock/ti/divider.txt
[4] Documentation/devicetree/bindings/clock/ti/gate.txt

Required properties:
- compatible : shall be: "ti,composite-clock"
- clocks : link phandles of component clocks
- #clock-cells : from common clock binding; shall be set to 0.

Optional properties:
- clock-output-names : from common clock binding.

Examples:

usb_l4_gate_ick: usb_l4_gate_ick {
	#clock-cells = <0>;
	compatible = "ti,composite-interface-clock";
	clocks = <&l4_ick>;
	ti,bit-shift = <5>;
	reg = <0x0a10>;
};

usb_l4_div_ick: usb_l4_div_ick {
	#clock-cells = <0>;
	compatible = "ti,composite-divider-clock";
	clocks = <&l4_ick>;
	ti,bit-shift = <4>;
	ti,max-div = <1>;
	reg = <0x0a40>;
	ti,index-starts-at-one;
};

usb_l4_ick: usb_l4_ick {
	#clock-cells = <0>;
	compatible = "ti,composite-clock";
	clocks = <&usb_l4_gate_ick>, <&usb_l4_div_ick>;
};