diff options
| author | Tang Yuantian <yuantian.tang@freescale.com> | 2014-01-13 03:16:35 -0500 |
|---|---|---|
| committer | Scott Wood <scottwood@freescale.com> | 2014-01-17 20:01:27 -0500 |
| commit | 4b3cbc82a04485f6400cb5b227798daaa8512a23 (patch) | |
| tree | b6817c7007c109b4686abd746504615bb2475005 /Documentation | |
| parent | 9841c79c890cf7ef9ffa2c86c9924113c9a88244 (diff) | |
clk: corenet: Adds the clock binding
Adds the clock bindings for Freescale PowerPC CoreNet platforms
Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
[scottwood@freescale.com: fixed clock-frequency in example]
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'Documentation')
| -rw-r--r-- | Documentation/devicetree/bindings/clock/corenet-clock.txt | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/clock/corenet-clock.txt b/Documentation/devicetree/bindings/clock/corenet-clock.txt new file mode 100644 index 000000000000..24711af48e30 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/corenet-clock.txt | |||
| @@ -0,0 +1,134 @@ | |||
| 1 | * Clock Block on Freescale CoreNet Platforms | ||
| 2 | |||
| 3 | Freescale CoreNet chips take primary clocking input from the external | ||
| 4 | SYSCLK signal. The SYSCLK input (frequency) is multiplied using | ||
| 5 | multiple phase locked loops (PLL) to create a variety of frequencies | ||
| 6 | which can then be passed to a variety of internal logic, including | ||
| 7 | cores and peripheral IP blocks. | ||
| 8 | Please refer to the Reference Manual for details. | ||
| 9 | |||
| 10 | 1. Clock Block Binding | ||
| 11 | |||
| 12 | Required properties: | ||
| 13 | - compatible: Should contain a specific clock block compatible string | ||
| 14 | and a single chassis clock compatible string. | ||
| 15 | Clock block strings include, but not limited to, one of the: | ||
| 16 | * "fsl,p2041-clockgen" | ||
| 17 | * "fsl,p3041-clockgen" | ||
| 18 | * "fsl,p4080-clockgen" | ||
| 19 | * "fsl,p5020-clockgen" | ||
| 20 | * "fsl,p5040-clockgen" | ||
| 21 | * "fsl,t4240-clockgen" | ||
| 22 | * "fsl,b4420-clockgen" | ||
| 23 | * "fsl,b4860-clockgen" | ||
| 24 | Chassis clock strings include: | ||
| 25 | * "fsl,qoriq-clockgen-1.0": for chassis 1.0 clocks | ||
| 26 | * "fsl,qoriq-clockgen-2.0": for chassis 2.0 clocks | ||
| 27 | - reg: Describes the address of the device's resources within the | ||
| 28 | address space defined by its parent bus, and resource zero | ||
| 29 | represents the clock register set | ||
| 30 | - clock-frequency: Input system clock frequency | ||
| 31 | |||
| 32 | Recommended properties: | ||
| 33 | - ranges: Allows valid translation between child's address space and | ||
| 34 | parent's. Must be present if the device has sub-nodes. | ||
| 35 | - #address-cells: Specifies the number of cells used to represent | ||
| 36 | physical base addresses. Must be present if the device has | ||
| 37 | sub-nodes and set to 1 if present | ||
| 38 | - #size-cells: Specifies the number of cells used to represent | ||
| 39 | the size of an address. Must be present if the device has | ||
| 40 | sub-nodes and set to 1 if present | ||
| 41 | |||
| 42 | 2. Clock Provider/Consumer Binding | ||
| 43 | |||
| 44 | Most of the bindings are from the common clock binding[1]. | ||
| 45 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
| 46 | |||
| 47 | Required properties: | ||
| 48 | - compatible : Should include one of the following: | ||
| 49 | * "fsl,qoriq-core-pll-1.0" for core PLL clocks (v1.0) | ||
| 50 | * "fsl,qoriq-core-pll-2.0" for core PLL clocks (v2.0) | ||
| 51 | * "fsl,qoriq-core-mux-1.0" for core mux clocks (v1.0) | ||
| 52 | * "fsl,qoriq-core-mux-2.0" for core mux clocks (v2.0) | ||
| 53 | * "fsl,qoriq-sysclk-1.0": for input system clock (v1.0). | ||
| 54 | It takes parent's clock-frequency as its clock. | ||
| 55 | * "fsl,qoriq-sysclk-2.0": for input system clock (v2.0). | ||
| 56 | It takes parent's clock-frequency as its clock. | ||
| 57 | - #clock-cells: From common clock binding. The number of cells in a | ||
| 58 | clock-specifier. Should be <0> for "fsl,qoriq-sysclk-[1,2].0" | ||
| 59 | clocks, or <1> for "fsl,qoriq-core-pll-[1,2].0" clocks. | ||
| 60 | For "fsl,qoriq-core-pll-[1,2].0" clocks, the single | ||
| 61 | clock-specifier cell may take the following values: | ||
| 62 | * 0 - equal to the PLL frequency | ||
| 63 | * 1 - equal to the PLL frequency divided by 2 | ||
| 64 | * 2 - equal to the PLL frequency divided by 4 | ||
| 65 | |||
| 66 | Recommended properties: | ||
| 67 | - clocks: Should be the phandle of input parent clock | ||
| 68 | - clock-names: From common clock binding, indicates the clock name | ||
| 69 | - clock-output-names: From common clock binding, indicates the names of | ||
| 70 | output clocks | ||
| 71 | - reg: Should be the offset and length of clock block base address. | ||
| 72 | The length should be 4. | ||
| 73 | |||
| 74 | Example for clock block and clock provider: | ||
| 75 | / { | ||
| 76 | clockgen: global-utilities@e1000 { | ||
| 77 | compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0"; | ||
| 78 | ranges = <0x0 0xe1000 0x1000>; | ||
| 79 | clock-frequency = <133333333>; | ||
| 80 | reg = <0xe1000 0x1000>; | ||
| 81 | #address-cells = <1>; | ||
| 82 | #size-cells = <1>; | ||
| 83 | |||
| 84 | sysclk: sysclk { | ||
| 85 | #clock-cells = <0>; | ||
| 86 | compatible = "fsl,qoriq-sysclk-1.0"; | ||
| 87 | clock-output-names = "sysclk"; | ||
| 88 | } | ||
| 89 | |||
| 90 | pll0: pll0@800 { | ||
| 91 | #clock-cells = <1>; | ||
| 92 | reg = <0x800 0x4>; | ||
| 93 | compatible = "fsl,qoriq-core-pll-1.0"; | ||
| 94 | clocks = <&sysclk>; | ||
| 95 | clock-output-names = "pll0", "pll0-div2"; | ||
| 96 | }; | ||
| 97 | |||
| 98 | pll1: pll1@820 { | ||
| 99 | #clock-cells = <1>; | ||
| 100 | reg = <0x820 0x4>; | ||
| 101 | compatible = "fsl,qoriq-core-pll-1.0"; | ||
| 102 | clocks = <&sysclk>; | ||
| 103 | clock-output-names = "pll1", "pll1-div2"; | ||
| 104 | }; | ||
| 105 | |||
| 106 | mux0: mux0@0 { | ||
| 107 | #clock-cells = <0>; | ||
| 108 | reg = <0x0 0x4>; | ||
| 109 | compatible = "fsl,qoriq-core-mux-1.0"; | ||
| 110 | clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; | ||
| 111 | clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; | ||
| 112 | clock-output-names = "cmux0"; | ||
| 113 | }; | ||
| 114 | |||
| 115 | mux1: mux1@20 { | ||
| 116 | #clock-cells = <0>; | ||
| 117 | reg = <0x20 0x4>; | ||
| 118 | compatible = "fsl,qoriq-core-mux-1.0"; | ||
| 119 | clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; | ||
| 120 | clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; | ||
| 121 | clock-output-names = "cmux1"; | ||
| 122 | }; | ||
| 123 | }; | ||
| 124 | } | ||
| 125 | |||
| 126 | Example for clock consumer: | ||
| 127 | |||
| 128 | / { | ||
| 129 | cpu0: PowerPC,e5500@0 { | ||
| 130 | ... | ||
| 131 | clocks = <&mux0>; | ||
| 132 | ... | ||
| 133 | }; | ||
| 134 | } | ||
