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