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