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.

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>;
};
