0001 * Actions Semi Owl Clock Management Unit (CMU)
0002
0003 The Actions Semi Owl Clock Management Unit generates and supplies clock
0004 to various controllers within the SoC. The clock binding described here is
0005 applicable to S900, S700 and S500 SoC's.
0006
0007 Required Properties:
0008
0009 - compatible: should be one of the following,
0010 "actions,s900-cmu"
0011 "actions,s700-cmu"
0012 "actions,s500-cmu"
0013 - reg: physical base address of the controller and length of memory mapped
0014 region.
0015 - clocks: Reference to the parent clocks ("hosc", "losc")
0016 - #clock-cells: should be 1.
0017 - #reset-cells: should be 1.
0018
0019 Each clock is assigned an identifier, and client nodes can use this identifier
0020 to specify the clock which they consume.
0021
0022 All available clocks are defined as preprocessor macros in corresponding
0023 dt-bindings/clock/actions,s900-cmu.h or actions,s700-cmu.h or
0024 actions,s500-cmu.h header and can be used in device tree sources.
0025
0026 External clocks:
0027
0028 The hosc clock used as input for the plls is generated outside the SoC. It is
0029 expected that it is defined using standard clock bindings as "hosc".
0030
0031 Actions Semi S900 CMU also requires one more clock:
0032 - "losc" - internal low frequency oscillator
0033
0034 Example: Clock Management Unit node:
0035
0036 cmu: clock-controller@e0160000 {
0037 compatible = "actions,s900-cmu";
0038 reg = <0x0 0xe0160000 0x0 0x1000>;
0039 clocks = <&hosc>, <&losc>;
0040 #clock-cells = <1>;
0041 #reset-cells = <1>;
0042 };
0043
0044 Example: UART controller node that consumes clock generated by the clock
0045 management unit:
0046
0047 uart: serial@e012a000 {
0048 compatible = "actions,s900-uart", "actions,owl-uart";
0049 reg = <0x0 0xe012a000 0x0 0x2000>;
0050 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
0051 clocks = <&cmu CLK_UART5>;
0052 };