162306a36Sopenharmony_ci* Actions Semi Owl Clock Management Unit (CMU) 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciThe Actions Semi Owl Clock Management Unit generates and supplies clock 462306a36Sopenharmony_cito various controllers within the SoC. The clock binding described here is 562306a36Sopenharmony_ciapplicable to S900, S700 and S500 SoC's. 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciRequired Properties: 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci- compatible: should be one of the following, 1062306a36Sopenharmony_ci "actions,s900-cmu" 1162306a36Sopenharmony_ci "actions,s700-cmu" 1262306a36Sopenharmony_ci "actions,s500-cmu" 1362306a36Sopenharmony_ci- reg: physical base address of the controller and length of memory mapped 1462306a36Sopenharmony_ci region. 1562306a36Sopenharmony_ci- clocks: Reference to the parent clocks ("hosc", "losc") 1662306a36Sopenharmony_ci- #clock-cells: should be 1. 1762306a36Sopenharmony_ci- #reset-cells: should be 1. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciEach clock is assigned an identifier, and client nodes can use this identifier 2062306a36Sopenharmony_cito specify the clock which they consume. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciAll available clocks are defined as preprocessor macros in corresponding 2362306a36Sopenharmony_cidt-bindings/clock/actions,s900-cmu.h or actions,s700-cmu.h or 2462306a36Sopenharmony_ciactions,s500-cmu.h header and can be used in device tree sources. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciExternal clocks: 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciThe hosc clock used as input for the plls is generated outside the SoC. It is 2962306a36Sopenharmony_ciexpected that it is defined using standard clock bindings as "hosc". 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciActions Semi S900 CMU also requires one more clock: 3262306a36Sopenharmony_ci - "losc" - internal low frequency oscillator 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciExample: Clock Management Unit node: 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci cmu: clock-controller@e0160000 { 3762306a36Sopenharmony_ci compatible = "actions,s900-cmu"; 3862306a36Sopenharmony_ci reg = <0x0 0xe0160000 0x0 0x1000>; 3962306a36Sopenharmony_ci clocks = <&hosc>, <&losc>; 4062306a36Sopenharmony_ci #clock-cells = <1>; 4162306a36Sopenharmony_ci #reset-cells = <1>; 4262306a36Sopenharmony_ci }; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciExample: UART controller node that consumes clock generated by the clock 4562306a36Sopenharmony_cimanagement unit: 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci uart: serial@e012a000 { 4862306a36Sopenharmony_ci compatible = "actions,s900-uart", "actions,owl-uart"; 4962306a36Sopenharmony_ci reg = <0x0 0xe012a000 0x0 0x2000>; 5062306a36Sopenharmony_ci interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 5162306a36Sopenharmony_ci clocks = <&cmu CLK_UART5>; 5262306a36Sopenharmony_ci }; 53