1*4882a593Smuzhiyun* Actions Semi Owl Clock Management Unit (CMU) 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThe Actions Semi Owl Clock Management Unit generates and supplies clock 4*4882a593Smuzhiyunto various controllers within the SoC. The clock binding described here is 5*4882a593Smuzhiyunapplicable to S900, S700 and S500 SoC's. 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunRequired Properties: 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun- compatible: should be one of the following, 10*4882a593Smuzhiyun "actions,s900-cmu" 11*4882a593Smuzhiyun "actions,s700-cmu" 12*4882a593Smuzhiyun "actions,s500-cmu" 13*4882a593Smuzhiyun- reg: physical base address of the controller and length of memory mapped 14*4882a593Smuzhiyun region. 15*4882a593Smuzhiyun- clocks: Reference to the parent clocks ("hosc", "losc") 16*4882a593Smuzhiyun- #clock-cells: should be 1. 17*4882a593Smuzhiyun- #reset-cells: should be 1. 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunEach clock is assigned an identifier, and client nodes can use this identifier 20*4882a593Smuzhiyunto specify the clock which they consume. 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunAll available clocks are defined as preprocessor macros in corresponding 23*4882a593Smuzhiyundt-bindings/clock/actions,s900-cmu.h or actions,s700-cmu.h or 24*4882a593Smuzhiyunactions,s500-cmu.h header and can be used in device tree sources. 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunExternal clocks: 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunThe hosc clock used as input for the plls is generated outside the SoC. It is 29*4882a593Smuzhiyunexpected that it is defined using standard clock bindings as "hosc". 30*4882a593Smuzhiyun 31*4882a593SmuzhiyunActions Semi S900 CMU also requires one more clock: 32*4882a593Smuzhiyun - "losc" - internal low frequency oscillator 33*4882a593Smuzhiyun 34*4882a593SmuzhiyunExample: Clock Management Unit node: 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun cmu: clock-controller@e0160000 { 37*4882a593Smuzhiyun compatible = "actions,s900-cmu"; 38*4882a593Smuzhiyun reg = <0x0 0xe0160000 0x0 0x1000>; 39*4882a593Smuzhiyun clocks = <&hosc>, <&losc>; 40*4882a593Smuzhiyun #clock-cells = <1>; 41*4882a593Smuzhiyun #reset-cells = <1>; 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun 44*4882a593SmuzhiyunExample: UART controller node that consumes clock generated by the clock 45*4882a593Smuzhiyunmanagement unit: 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun uart: serial@e012a000 { 48*4882a593Smuzhiyun compatible = "actions,s900-uart", "actions,owl-uart"; 49*4882a593Smuzhiyun reg = <0x0 0xe012a000 0x0 0x2000>; 50*4882a593Smuzhiyun interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 51*4882a593Smuzhiyun clocks = <&cmu CLK_UART5>; 52*4882a593Smuzhiyun }; 53