18c2ecf20Sopenharmony_ciBinding for TI composite clock.
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciBinding status: Unstable - ABI compatibility may be broken in the future
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciThis binding uses the common clock binding[1]. It assumes a
68c2ecf20Sopenharmony_ciregister-mapped composite clock with multiple different sub-types;
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cia multiplexer clock with multiple input clock signals or parents, one
98c2ecf20Sopenharmony_ciof which can be selected as output, this behaves exactly as [2]
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_cian adjustable clock rate divider, this behaves exactly as [3]
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cia gating function which can be used to enable and disable the output
148c2ecf20Sopenharmony_ciclock, this behaves exactly as [4]
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciThe binding must provide a list of the component clocks that shall be
178c2ecf20Sopenharmony_cimerged to this clock. The component clocks shall be of one of the
188c2ecf20Sopenharmony_ci"ti,*composite*-clock" types.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
218c2ecf20Sopenharmony_ci[2] Documentation/devicetree/bindings/clock/ti/mux.txt
228c2ecf20Sopenharmony_ci[3] Documentation/devicetree/bindings/clock/ti/divider.txt
238c2ecf20Sopenharmony_ci[4] Documentation/devicetree/bindings/clock/ti/gate.txt
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciRequired properties:
268c2ecf20Sopenharmony_ci- compatible : shall be: "ti,composite-clock"
278c2ecf20Sopenharmony_ci- clocks : link phandles of component clocks
288c2ecf20Sopenharmony_ci- #clock-cells : from common clock binding; shall be set to 0.
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ciExamples:
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ciusb_l4_gate_ick: usb_l4_gate_ick {
338c2ecf20Sopenharmony_ci	#clock-cells = <0>;
348c2ecf20Sopenharmony_ci	compatible = "ti,composite-interface-clock";
358c2ecf20Sopenharmony_ci	clocks = <&l4_ick>;
368c2ecf20Sopenharmony_ci	ti,bit-shift = <5>;
378c2ecf20Sopenharmony_ci	reg = <0x0a10>;
388c2ecf20Sopenharmony_ci};
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciusb_l4_div_ick: usb_l4_div_ick {
418c2ecf20Sopenharmony_ci	#clock-cells = <0>;
428c2ecf20Sopenharmony_ci	compatible = "ti,composite-divider-clock";
438c2ecf20Sopenharmony_ci	clocks = <&l4_ick>;
448c2ecf20Sopenharmony_ci	ti,bit-shift = <4>;
458c2ecf20Sopenharmony_ci	ti,max-div = <1>;
468c2ecf20Sopenharmony_ci	reg = <0x0a40>;
478c2ecf20Sopenharmony_ci	ti,index-starts-at-one;
488c2ecf20Sopenharmony_ci};
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciusb_l4_ick: usb_l4_ick {
518c2ecf20Sopenharmony_ci	#clock-cells = <0>;
528c2ecf20Sopenharmony_ci	compatible = "ti,composite-clock";
538c2ecf20Sopenharmony_ci	clocks = <&usb_l4_gate_ick>, <&usb_l4_div_ick>;
548c2ecf20Sopenharmony_ci};
55