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