summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/clock/ti/gate.txt
blob: 125281aaa4ca0390713d92b6714c135098604b6d (plain)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Binding for Texas Instruments gate clock.

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

This binding uses the common clock binding[1]. This clock is
quite much similar to the basic gate-clock [2], however,
it supports a number of additional features. If no register
is provided for this clock, the code assumes that a clockdomain
will be controlled instead and the corresponding hw-ops for
that is used.

[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/clock/gate-clock.txt
[3] Documentation/devicetree/bindings/clock/ti/clockdomain.txt

Required properties:
- compatible : shall be one of:
  "ti,gate-clock" - basic gate clock
  "ti,wait-gate-clock" - gate clock which waits until clock is active before
			 returning from clk_enable()
  "ti,dss-gate-clock" - gate clock with DSS specific hardware handling
  "ti,am35xx-gate-clock" - gate clock with AM35xx specific hardware handling
  "ti,clkdm-gate-clock" - clockdomain gate clock, which derives its functional
			  clock directly from a clockdomain, see [3] how
			  to map clockdomains properly
  "ti,hsdiv-gate-clock" - gate clock with OMAP36xx specific hardware handling,
			  required for a hardware errata
- #clock-cells : from common clock binding; shall be set to 0
- clocks : link to phandle of parent clock
- reg : offset for register controlling adjustable gate, not needed for
	ti,clkdm-gate-clock type

Optional properties:
- ti,bit-shift : bit shift for programming the clock gate, invalid for
		 ti,clkdm-gate-clock type
- ti,set-bit-to-disable : inverts default gate programming. Setting the bit
  gates the clock and clearing the bit ungates the clock.

Examples:
	mmchs2_fck: mmchs2_fck@48004a00 {
		#clock-cells = <0>;
		compatible = "ti,gate-clock";
		clocks = <&core_96m_fck>;
		reg = <0x48004a00 0x4>;
		ti,bit-shift = <25>;
	};

	uart4_fck_am35xx: uart4_fck_am35xx {
		#clock-cells = <0>;
		compatible = "ti,wait-gate-clock";
		clocks = <&core_48m_fck>;
		reg = <0x0a00>;
		ti,bit-shift = <23>;
	};

	dss1_alwon_fck_3430es2: dss1_alwon_fck_3430es2@48004e00 {
		#clock-cells = <0>;
		compatible = "ti,dss-gate-clock";
		clocks = <&dpll4_m4x2_ck>;
		reg = <0x48004e00 0x4>;
		ti,bit-shift = <0>;
	};

	emac_ick: emac_ick@4800259c {
		#clock-cells = <0>;
		compatible = "ti,am35xx-gate-clock";
		clocks = <&ipss_ick>;
		reg = <0x4800259c 0x4>;
		ti,bit-shift = <1>;
	};

	emu_src_ck: emu_src_ck {
		#clock-cells = <0>;
		compatible = "ti,clkdm-gate-clock";
		clocks = <&emu_src_mux_ck>;
	};

	dpll4_m2x2_ck: dpll4_m2x2_ck@48004d00 {
		#clock-cells = <0>;
		compatible = "ti,hsdiv-gate-clock";
		clocks = <&dpll4_m2x2_mul_ck>;
		ti,bit-shift = <0x1b>;
		reg = <0x48004d00 0x4>;
		ti,set-bit-to-disable;
	};