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