162306a36Sopenharmony_ciBinding for TI composite clock.
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciBinding status: Unstable - ABI compatibility may be broken in the future
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciThis binding uses the common clock binding[1]. It assumes a
662306a36Sopenharmony_ciregister-mapped composite clock with multiple different sub-types;
762306a36Sopenharmony_ci
862306a36Sopenharmony_cia multiplexer clock with multiple input clock signals or parents, one
962306a36Sopenharmony_ciof which can be selected as output, this behaves exactly as [2]
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cian adjustable clock rate divider, this behaves exactly as [3]
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cia gating function which can be used to enable and disable the output
1462306a36Sopenharmony_ciclock, this behaves exactly as [4]
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciThe binding must provide a list of the component clocks that shall be
1762306a36Sopenharmony_cimerged to this clock. The component clocks shall be of one of the
1862306a36Sopenharmony_ci"ti,*composite*-clock" types.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
2162306a36Sopenharmony_ci[2] Documentation/devicetree/bindings/clock/ti/mux.txt
2262306a36Sopenharmony_ci[3] Documentation/devicetree/bindings/clock/ti/divider.txt
2362306a36Sopenharmony_ci[4] Documentation/devicetree/bindings/clock/ti/gate.txt
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciRequired properties:
2662306a36Sopenharmony_ci- compatible : shall be: "ti,composite-clock"
2762306a36Sopenharmony_ci- clocks : link phandles of component clocks
2862306a36Sopenharmony_ci- #clock-cells : from common clock binding; shall be set to 0.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciOptional properties:
3162306a36Sopenharmony_ci- clock-output-names : from common clock binding.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciExamples:
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciusb_l4_gate_ick: usb_l4_gate_ick {
3662306a36Sopenharmony_ci	#clock-cells = <0>;
3762306a36Sopenharmony_ci	compatible = "ti,composite-interface-clock";
3862306a36Sopenharmony_ci	clocks = <&l4_ick>;
3962306a36Sopenharmony_ci	ti,bit-shift = <5>;
4062306a36Sopenharmony_ci	reg = <0x0a10>;
4162306a36Sopenharmony_ci};
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciusb_l4_div_ick: usb_l4_div_ick {
4462306a36Sopenharmony_ci	#clock-cells = <0>;
4562306a36Sopenharmony_ci	compatible = "ti,composite-divider-clock";
4662306a36Sopenharmony_ci	clocks = <&l4_ick>;
4762306a36Sopenharmony_ci	ti,bit-shift = <4>;
4862306a36Sopenharmony_ci	ti,max-div = <1>;
4962306a36Sopenharmony_ci	reg = <0x0a40>;
5062306a36Sopenharmony_ci	ti,index-starts-at-one;
5162306a36Sopenharmony_ci};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciusb_l4_ick: usb_l4_ick {
5462306a36Sopenharmony_ci	#clock-cells = <0>;
5562306a36Sopenharmony_ci	compatible = "ti,composite-clock";
5662306a36Sopenharmony_ci	clocks = <&usb_l4_gate_ick>, <&usb_l4_div_ick>;
5762306a36Sopenharmony_ci};
58