diff options
author | Prathyush K <prathyush.k@samsung.com> | 2014-07-10 19:02:15 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2014-07-10 19:03:19 -0400 |
commit | c760569d0e9c06b39dd19e82bff0b704d90a73b7 (patch) | |
tree | f0e69210b658804b75f39a650c36bb867f732cc0 /Documentation | |
parent | be0b420ad6123e587738a67a9eff3ec213a57604 (diff) |
ARM: EXYNOS: Add support for clock handling in power domain
While powering on/off a local powerdomain in exynos5 chipsets, the
input clocks to each device gets modified. This behaviour is based
on the SYSCLK_SYS_PWR_REG registers.
E.g. SYSCLK_MFC_SYS_PWR_REG = 0x0, the parent of input clock to MFC
(aclk333) gets modified to oscclk
= 0x1, no change in clocks.
The recommended value of SYSCLK_SYS_PWR_REG before power gating any
domain is 0x0. So we must also restore the clocks while powering on
a domain everytime.
This patch adds the framework for getting the required mux and parent
clocks through a power domain device node. With this patch, while
powering off a domain, parent is set to oscclk and while powering back
on, its re-set to the correct parent which is as per the recommended
pd on/off sequence.
Signed-off-by: Prathyush K <prathyush.k@samsung.com>
Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/devicetree/bindings/arm/exynos/power_domain.txt | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt index 5216b419016a..8b4f7b7fe88b 100644 --- a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt +++ b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt | |||
@@ -9,6 +9,18 @@ Required Properties: | |||
9 | - reg: physical base address of the controller and length of memory mapped | 9 | - reg: physical base address of the controller and length of memory mapped |
10 | region. | 10 | region. |
11 | 11 | ||
12 | Optional Properties: | ||
13 | - clocks: List of clock handles. The parent clocks of the input clocks to the | ||
14 | devices in this power domain are set to oscclk before power gating | ||
15 | and restored back after powering on a domain. This is required for | ||
16 | all domains which are powered on and off and not required for unused | ||
17 | domains. | ||
18 | - clock-names: The following clocks can be specified: | ||
19 | - oscclk: Oscillator clock. | ||
20 | - pclkN, clkN: Pairs of parent of input clock and input clock to the | ||
21 | devices in this power domain. Maximum of 4 pairs (N = 0 to 3) | ||
22 | are supported currently. | ||
23 | |||
12 | Node of a device using power domains must have a samsung,power-domain property | 24 | Node of a device using power domains must have a samsung,power-domain property |
13 | defined with a phandle to respective power domain. | 25 | defined with a phandle to respective power domain. |
14 | 26 | ||
@@ -19,6 +31,14 @@ Example: | |||
19 | reg = <0x10023C00 0x10>; | 31 | reg = <0x10023C00 0x10>; |
20 | }; | 32 | }; |
21 | 33 | ||
34 | mfc_pd: power-domain@10044060 { | ||
35 | compatible = "samsung,exynos4210-pd"; | ||
36 | reg = <0x10044060 0x20>; | ||
37 | clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>, | ||
38 | <&clock CLK_MOUT_USER_ACLK333>; | ||
39 | clock-names = "oscclk", "pclk0", "clk0"; | ||
40 | }; | ||
41 | |||
22 | Example of the node using power domain: | 42 | Example of the node using power domain: |
23 | 43 | ||
24 | node { | 44 | node { |