xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/clock/actions,owl-cmu.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun* Actions Semi Owl Clock Management Unit (CMU)
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThe Actions Semi Owl Clock Management Unit generates and supplies clock
4*4882a593Smuzhiyunto various controllers within the SoC. The clock binding described here is
5*4882a593Smuzhiyunapplicable to S900, S700 and S500 SoC's.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunRequired Properties:
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun- compatible: should be one of the following,
10*4882a593Smuzhiyun	"actions,s900-cmu"
11*4882a593Smuzhiyun	"actions,s700-cmu"
12*4882a593Smuzhiyun	"actions,s500-cmu"
13*4882a593Smuzhiyun- reg: physical base address of the controller and length of memory mapped
14*4882a593Smuzhiyun  region.
15*4882a593Smuzhiyun- clocks: Reference to the parent clocks ("hosc", "losc")
16*4882a593Smuzhiyun- #clock-cells: should be 1.
17*4882a593Smuzhiyun- #reset-cells: should be 1.
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunEach clock is assigned an identifier, and client nodes can use this identifier
20*4882a593Smuzhiyunto specify the clock which they consume.
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunAll available clocks are defined as preprocessor macros in corresponding
23*4882a593Smuzhiyundt-bindings/clock/actions,s900-cmu.h or actions,s700-cmu.h or
24*4882a593Smuzhiyunactions,s500-cmu.h header and can be used in device tree sources.
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunExternal clocks:
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunThe hosc clock used as input for the plls is generated outside the SoC. It is
29*4882a593Smuzhiyunexpected that it is defined using standard clock bindings as "hosc".
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunActions Semi S900 CMU also requires one more clock:
32*4882a593Smuzhiyun - "losc" - internal low frequency oscillator
33*4882a593Smuzhiyun
34*4882a593SmuzhiyunExample: Clock Management Unit node:
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun        cmu: clock-controller@e0160000 {
37*4882a593Smuzhiyun                compatible = "actions,s900-cmu";
38*4882a593Smuzhiyun                reg = <0x0 0xe0160000 0x0 0x1000>;
39*4882a593Smuzhiyun                clocks = <&hosc>, <&losc>;
40*4882a593Smuzhiyun                #clock-cells = <1>;
41*4882a593Smuzhiyun                #reset-cells = <1>;
42*4882a593Smuzhiyun        };
43*4882a593Smuzhiyun
44*4882a593SmuzhiyunExample: UART controller node that consumes clock generated by the clock
45*4882a593Smuzhiyunmanagement unit:
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun        uart: serial@e012a000 {
48*4882a593Smuzhiyun                compatible = "actions,s900-uart", "actions,owl-uart";
49*4882a593Smuzhiyun                reg = <0x0 0xe012a000 0x0 0x2000>;
50*4882a593Smuzhiyun                interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
51*4882a593Smuzhiyun                clocks = <&cmu CLK_UART5>;
52*4882a593Smuzhiyun        };
53