xref: /linux/Documentation/devicetree/bindings/clock/ti/autoidle.txt (revision b1a07b478b63f0a8f971b3a82ce34a67a9324547)
1*b1a07b47STero KristoBinding for Texas Instruments autoidle clock.
2*b1a07b47STero Kristo
3*b1a07b47STero KristoBinding status: Unstable - ABI compatibility may be broken in the future
4*b1a07b47STero Kristo
5*b1a07b47STero KristoThis binding uses the common clock binding[1]. It assumes a register mapped
6*b1a07b47STero Kristoclock which can be put to idle automatically by hardware based on the usage
7*b1a07b47STero Kristoand a configuration bit setting. Autoidle clock is never an individual
8*b1a07b47STero Kristoclock, it is always a derivative of some basic clock like a gate, divider,
9*b1a07b47STero Kristoor fixed-factor.
10*b1a07b47STero Kristo
11*b1a07b47STero Kristo[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
12*b1a07b47STero Kristo
13*b1a07b47STero KristoRequired properties:
14*b1a07b47STero Kristo- reg : offset for the register controlling the autoidle
15*b1a07b47STero Kristo- ti,autoidle-shift : bit shift of the autoidle enable bit
16*b1a07b47STero Kristo- ti,invert-autoidle-bit : autoidle is enabled by setting the bit to 0
17*b1a07b47STero Kristo
18*b1a07b47STero KristoExamples:
19*b1a07b47STero Kristo	dpll_core_m4_ck: dpll_core_m4_ck {
20*b1a07b47STero Kristo		#clock-cells = <0>;
21*b1a07b47STero Kristo		compatible = "ti,divider-clock";
22*b1a07b47STero Kristo		clocks = <&dpll_core_x2_ck>;
23*b1a07b47STero Kristo		ti,max-div = <31>;
24*b1a07b47STero Kristo		ti,autoidle-shift = <8>;
25*b1a07b47STero Kristo		reg = <0x2d38>;
26*b1a07b47STero Kristo		ti,index-starts-at-one;
27*b1a07b47STero Kristo		ti,invert-autoidle-bit;
28*b1a07b47STero Kristo	};
29*b1a07b47STero Kristo
30*b1a07b47STero Kristo	dpll_usb_clkdcoldo_ck: dpll_usb_clkdcoldo_ck {
31*b1a07b47STero Kristo		#clock-cells = <0>;
32*b1a07b47STero Kristo		compatible = "ti,fixed-factor-clock";
33*b1a07b47STero Kristo		clocks = <&dpll_usb_ck>;
34*b1a07b47STero Kristo		ti,clock-div = <1>;
35*b1a07b47STero Kristo		ti,autoidle-shift = <8>;
36*b1a07b47STero Kristo		reg = <0x01b4>;
37*b1a07b47STero Kristo		ti,clock-mult = <1>;
38*b1a07b47STero Kristo		ti,invert-autoidle-bit;
39*b1a07b47STero Kristo	};
40