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