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