18c2ecf20Sopenharmony_ci* Actions Semi Owl Clock Management Unit (CMU) 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThe Actions Semi Owl Clock Management Unit generates and supplies clock 48c2ecf20Sopenharmony_cito various controllers within the SoC. The clock binding described here is 58c2ecf20Sopenharmony_ciapplicable to S900, S700 and S500 SoC's. 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ciRequired Properties: 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci- compatible: should be one of the following, 108c2ecf20Sopenharmony_ci "actions,s900-cmu" 118c2ecf20Sopenharmony_ci "actions,s700-cmu" 128c2ecf20Sopenharmony_ci "actions,s500-cmu" 138c2ecf20Sopenharmony_ci- reg: physical base address of the controller and length of memory mapped 148c2ecf20Sopenharmony_ci region. 158c2ecf20Sopenharmony_ci- clocks: Reference to the parent clocks ("hosc", "losc") 168c2ecf20Sopenharmony_ci- #clock-cells: should be 1. 178c2ecf20Sopenharmony_ci- #reset-cells: should be 1. 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciEach clock is assigned an identifier, and client nodes can use this identifier 208c2ecf20Sopenharmony_cito specify the clock which they consume. 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciAll available clocks are defined as preprocessor macros in corresponding 238c2ecf20Sopenharmony_cidt-bindings/clock/actions,s900-cmu.h or actions,s700-cmu.h or 248c2ecf20Sopenharmony_ciactions,s500-cmu.h header and can be used in device tree sources. 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciExternal clocks: 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ciThe hosc clock used as input for the plls is generated outside the SoC. It is 298c2ecf20Sopenharmony_ciexpected that it is defined using standard clock bindings as "hosc". 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ciActions Semi S900 CMU also requires one more clock: 328c2ecf20Sopenharmony_ci - "losc" - internal low frequency oscillator 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ciExample: Clock Management Unit node: 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci cmu: clock-controller@e0160000 { 378c2ecf20Sopenharmony_ci compatible = "actions,s900-cmu"; 388c2ecf20Sopenharmony_ci reg = <0x0 0xe0160000 0x0 0x1000>; 398c2ecf20Sopenharmony_ci clocks = <&hosc>, <&losc>; 408c2ecf20Sopenharmony_ci #clock-cells = <1>; 418c2ecf20Sopenharmony_ci #reset-cells = <1>; 428c2ecf20Sopenharmony_ci }; 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciExample: UART controller node that consumes clock generated by the clock 458c2ecf20Sopenharmony_cimanagement unit: 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci uart: serial@e012a000 { 488c2ecf20Sopenharmony_ci compatible = "actions,s900-uart", "actions,owl-uart"; 498c2ecf20Sopenharmony_ci reg = <0x0 0xe012a000 0x0 0x2000>; 508c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 518c2ecf20Sopenharmony_ci clocks = <&cmu CLK_UART5>; 528c2ecf20Sopenharmony_ci }; 53