From: Lukasz Majewski <l.majewski@samsung.com>
To: Thomas Abraham <ta.omasab@gmail.com>
Cc: cpufreq@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org, t.figa@samsung.com,
kgene.kim@samsung.com, viresh.kumar@linaro.org,
shawn.guo@linaro.org, thomas.ab@samsung.com,
Lukasz Majewski <l.majewski@majess.pl>
Subject: Re: [PATCH 0/6] cpufreq: use cpufreq-cpu0 driver for exynos4210 based platforms
Date: Fri, 10 Jan 2014 11:32:40 +0100 [thread overview]
Message-ID: <20140110113240.797381e6@amdc2363> (raw)
In-Reply-To: <1389283165-17708-1-git-send-email-thomas.ab@samsung.com>
Hi Thomas,
I've investigated the topic for a while, so if you don't mind I will
share my thoughts :-)
> The patch series removes the use of Exynos4210 specific cpufreq driver
> and enables to use the cpufreq-cpu0 driver for Exynos4210 based
> platforms. This is being done for few reasons.
>
> (a) The Exynos4210 cpufreq driver reads/writes clock controller
> registers bypassing the Exynos4 CCF driver which is sort of
> problematic.
Also other, already supported devices suffer from it. Namely -
Exynos4x12 and Exynos5250.
That's why the solution shall be as generic as possible to also work
with those two SoCs.
> (b) Removes the need for having clock controller
> register definitions in the cpufreq driver and also removes the need
> for statically io-remapping clock controller address space (helps in
> moving towards multiplatform kernel).
>
> In order to use cpufreq-cpu0 driver and provide fast cpu clock
> switching during dvfs operations, the following apporach has been
> used.
>
> (a) A new CPU clock provider type has been introduced in Samsung's CCF
> support. This clock provider type can be a compostion of multiple
> clock blocks such as mux, dividers and gates. Typically, in Exynos
> platforms, there are multiple clock blocks in between the output
> of the APLL and the CPU clock domain output. Representing these
> mutiple clock blocks within a opaque CPU clock provider type helps
> in reducing the time taken to perform a CPU clock frequency change
> operation, which is generally required during DVFS operations.
> This approach was suggested by Arnd Bergmann <arnd@arndb.de>
> during LCE-2013.
>
> (b) A new optional safe operating point property has been introduced
> in the cpufreq-cpu0 driver binding. On some platforms such as the
> Samsung Exynos, a change in CPU frequency requires a change in the
> PLL output that drives the CPU clock. A change in PLL output
> requires the PLL output be turned off, which implies that the CPU
> (and other components in the CPU clock domain) be supplied with
> an alternate clock source during the time the PLL output is
> changed.
>
> The clock speed of this alternate clock source could be higher
> than the clock speed of the PLL at the time of switching over to
> the alternate clock source. This temporary increase in clock speed
> of the CPU clock domain implies that the blocks within the CPU
> clock domain should also be supplied with an appropriate voltage
> supply level as required to drive the CPU clock domain components
> at the speed of the alternative clock source. This temporary
> voltage level required during switching of CPU clock speed is
> called safe voltage level. And the cpufreq-cpu0 driver has been
> modified to setup the safe voltage levels during the changes
> in CPU clock speed.
>
> (c) The CPU clock supply as been restructured as
> [ Output of APLL -> Opaque CPU clock provider -> CPU clock output
> ] And with the changes in (a) and (b) above, the cpufreq-cpu0 driver
> can now be used and can remove the use of Exynos4210 specific
> cpufreq driver.
>
> This approach is currently tried on Exynos4210 only. The same approach
> can be adopted for other Exynos SoCs as well. This patch series is
> based on linux-next master branch.
>
> Thomas Abraham (6):
> cpufreq: cpufreq-cpu0: allow optional safe voltage during frequency
> transitions clk: samsung: add infrastructure to register CPU clocks
> clk: samsung: register cpu clock provider for exynos4210 SoC
> cpufreq: exynos: remove Exynos4210 specific cpufreq driver support
> arm: exynos4-dt: statically add platform device for cpufreq-cpu0
> platform driver arm: dts: add cpu nodes for Exynos4210 SoC
>
> .../devicetree/bindings/cpufreq/cpufreq-cpu0.txt | 5 +
> arch/arm/boot/dts/exynos4210-origen.dts | 6 +
> arch/arm/boot/dts/exynos4210-trats.dts | 6 +
> arch/arm/boot/dts/exynos4210-universal_c210.dts | 6 +
> arch/arm/boot/dts/exynos4210.dtsi | 22 +++
> arch/arm/mach-exynos/mach-exynos4-dt.c | 6 +
> drivers/clk/samsung/clk-exynos4.c | 96
> ++++++++++++- drivers/clk/samsung/clk.c |
> 71 +++++++++ drivers/clk/samsung/clk.h |
> 37 +++++- drivers/cpufreq/Kconfig.arm | 11 --
> drivers/cpufreq/Makefile | 1 -
> drivers/cpufreq/cpufreq-cpu0.c | 49 ++++++-
> drivers/cpufreq/exynos-cpufreq.c | 4 +-
> drivers/cpufreq/exynos-cpufreq.h | 8 -
> drivers/cpufreq/exynos4210-cpufreq.c | 157
> -------------------- 15 files changed, 301 insertions(+), 184
> deletions(-) delete mode 100644 drivers/cpufreq/exynos4210-cpufreq.c
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe cpufreq" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
WARNING: multiple messages have this Message-ID (diff)
From: l.majewski@samsung.com (Lukasz Majewski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/6] cpufreq: use cpufreq-cpu0 driver for exynos4210 based platforms
Date: Fri, 10 Jan 2014 11:32:40 +0100 [thread overview]
Message-ID: <20140110113240.797381e6@amdc2363> (raw)
In-Reply-To: <1389283165-17708-1-git-send-email-thomas.ab@samsung.com>
Hi Thomas,
I've investigated the topic for a while, so if you don't mind I will
share my thoughts :-)
> The patch series removes the use of Exynos4210 specific cpufreq driver
> and enables to use the cpufreq-cpu0 driver for Exynos4210 based
> platforms. This is being done for few reasons.
>
> (a) The Exynos4210 cpufreq driver reads/writes clock controller
> registers bypassing the Exynos4 CCF driver which is sort of
> problematic.
Also other, already supported devices suffer from it. Namely -
Exynos4x12 and Exynos5250.
That's why the solution shall be as generic as possible to also work
with those two SoCs.
> (b) Removes the need for having clock controller
> register definitions in the cpufreq driver and also removes the need
> for statically io-remapping clock controller address space (helps in
> moving towards multiplatform kernel).
>
> In order to use cpufreq-cpu0 driver and provide fast cpu clock
> switching during dvfs operations, the following apporach has been
> used.
>
> (a) A new CPU clock provider type has been introduced in Samsung's CCF
> support. This clock provider type can be a compostion of multiple
> clock blocks such as mux, dividers and gates. Typically, in Exynos
> platforms, there are multiple clock blocks in between the output
> of the APLL and the CPU clock domain output. Representing these
> mutiple clock blocks within a opaque CPU clock provider type helps
> in reducing the time taken to perform a CPU clock frequency change
> operation, which is generally required during DVFS operations.
> This approach was suggested by Arnd Bergmann <arnd@arndb.de>
> during LCE-2013.
>
> (b) A new optional safe operating point property has been introduced
> in the cpufreq-cpu0 driver binding. On some platforms such as the
> Samsung Exynos, a change in CPU frequency requires a change in the
> PLL output that drives the CPU clock. A change in PLL output
> requires the PLL output be turned off, which implies that the CPU
> (and other components in the CPU clock domain) be supplied with
> an alternate clock source during the time the PLL output is
> changed.
>
> The clock speed of this alternate clock source could be higher
> than the clock speed of the PLL at the time of switching over to
> the alternate clock source. This temporary increase in clock speed
> of the CPU clock domain implies that the blocks within the CPU
> clock domain should also be supplied with an appropriate voltage
> supply level as required to drive the CPU clock domain components
> at the speed of the alternative clock source. This temporary
> voltage level required during switching of CPU clock speed is
> called safe voltage level. And the cpufreq-cpu0 driver has been
> modified to setup the safe voltage levels during the changes
> in CPU clock speed.
>
> (c) The CPU clock supply as been restructured as
> [ Output of APLL -> Opaque CPU clock provider -> CPU clock output
> ] And with the changes in (a) and (b) above, the cpufreq-cpu0 driver
> can now be used and can remove the use of Exynos4210 specific
> cpufreq driver.
>
> This approach is currently tried on Exynos4210 only. The same approach
> can be adopted for other Exynos SoCs as well. This patch series is
> based on linux-next master branch.
>
> Thomas Abraham (6):
> cpufreq: cpufreq-cpu0: allow optional safe voltage during frequency
> transitions clk: samsung: add infrastructure to register CPU clocks
> clk: samsung: register cpu clock provider for exynos4210 SoC
> cpufreq: exynos: remove Exynos4210 specific cpufreq driver support
> arm: exynos4-dt: statically add platform device for cpufreq-cpu0
> platform driver arm: dts: add cpu nodes for Exynos4210 SoC
>
> .../devicetree/bindings/cpufreq/cpufreq-cpu0.txt | 5 +
> arch/arm/boot/dts/exynos4210-origen.dts | 6 +
> arch/arm/boot/dts/exynos4210-trats.dts | 6 +
> arch/arm/boot/dts/exynos4210-universal_c210.dts | 6 +
> arch/arm/boot/dts/exynos4210.dtsi | 22 +++
> arch/arm/mach-exynos/mach-exynos4-dt.c | 6 +
> drivers/clk/samsung/clk-exynos4.c | 96
> ++++++++++++- drivers/clk/samsung/clk.c |
> 71 +++++++++ drivers/clk/samsung/clk.h |
> 37 +++++- drivers/cpufreq/Kconfig.arm | 11 --
> drivers/cpufreq/Makefile | 1 -
> drivers/cpufreq/cpufreq-cpu0.c | 49 ++++++-
> drivers/cpufreq/exynos-cpufreq.c | 4 +-
> drivers/cpufreq/exynos-cpufreq.h | 8 -
> drivers/cpufreq/exynos4210-cpufreq.c | 157
> -------------------- 15 files changed, 301 insertions(+), 184
> deletions(-) delete mode 100644 drivers/cpufreq/exynos4210-cpufreq.c
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe cpufreq" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
next prev parent reply other threads:[~2014-01-10 10:32 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-09 15:59 [PATCH 0/6] cpufreq: use cpufreq-cpu0 driver for exynos4210 based platforms Thomas Abraham
2014-01-09 15:59 ` Thomas Abraham
2014-01-09 15:59 ` [PATCH 1/6] cpufreq: cpufreq-cpu0: allow optional safe voltage during frequency transitions Thomas Abraham
2014-01-09 15:59 ` Thomas Abraham
2014-01-10 12:03 ` Lukasz Majewski
2014-01-10 12:03 ` Lukasz Majewski
2014-01-12 13:39 ` Tomasz Figa
2014-01-12 13:39 ` Tomasz Figa
2014-01-13 3:14 ` Shawn Guo
2014-01-13 3:14 ` Shawn Guo
2014-01-13 14:21 ` Thomas Abraham
2014-01-13 14:21 ` Thomas Abraham
2014-01-13 14:28 ` Shawn Guo
2014-01-13 14:28 ` Shawn Guo
2014-01-09 15:59 ` [PATCH 2/6] clk: samsung: add infrastructure to register CPU clocks Thomas Abraham
2014-01-09 15:59 ` Thomas Abraham
2014-01-10 12:04 ` Lukasz Majewski
2014-01-10 12:04 ` Lukasz Majewski
2014-01-10 12:19 ` Thomas Abraham
2014-01-10 12:19 ` Thomas Abraham
2014-01-10 13:25 ` Lukasz Majewski
2014-01-10 13:25 ` Lukasz Majewski
2014-01-11 4:43 ` Thomas Abraham
2014-01-11 4:43 ` Thomas Abraham
2014-01-12 1:47 ` Tomasz Figa
2014-01-12 1:47 ` Tomasz Figa
2014-01-12 8:04 ` Lukasz Majewski
2014-01-12 8:04 ` Lukasz Majewski
2014-01-13 13:15 ` Thomas Abraham
2014-01-13 13:15 ` Thomas Abraham
2014-01-09 15:59 ` [PATCH 3/6] clk: samsung: register cpu clock provider for exynos4210 SoC Thomas Abraham
2014-01-09 15:59 ` Thomas Abraham
2014-01-10 12:04 ` Lukasz Majewski
2014-01-10 12:04 ` Lukasz Majewski
2014-01-10 12:37 ` Thomas Abraham
2014-01-10 12:37 ` Thomas Abraham
2014-01-10 14:18 ` Lukasz Majewski
2014-01-10 14:18 ` Lukasz Majewski
2014-01-11 5:25 ` Thomas Abraham
2014-01-11 5:25 ` Thomas Abraham
2014-01-12 2:19 ` Tomasz Figa
2014-01-12 2:19 ` Tomasz Figa
2014-01-12 8:23 ` Lukasz Majewski
2014-01-12 8:23 ` Lukasz Majewski
2014-01-12 12:05 ` Tomasz Figa
2014-01-12 12:05 ` Tomasz Figa
2014-01-12 12:41 ` Lukasz Majewski
2014-01-12 12:41 ` Lukasz Majewski
2014-01-12 12:58 ` Tomasz Figa
2014-01-12 12:58 ` Tomasz Figa
2014-01-13 14:12 ` Thomas Abraham
2014-01-13 14:12 ` Thomas Abraham
2014-01-13 14:07 ` Thomas Abraham
2014-01-13 14:07 ` Thomas Abraham
2014-01-09 15:59 ` [PATCH 4/6] cpufreq: exynos: remove Exynos4210 specific cpufreq driver support Thomas Abraham
2014-01-09 15:59 ` Thomas Abraham
2014-01-10 10:20 ` Lukasz Majewski
2014-01-10 10:20 ` Lukasz Majewski
2014-01-09 15:59 ` [PATCH 5/6] arm: exynos4-dt: statically add platform device for cpufreq-cpu0 platform driver Thomas Abraham
2014-01-09 15:59 ` Thomas Abraham
2014-01-10 10:23 ` Lukasz Majewski
2014-01-10 10:23 ` Lukasz Majewski
2014-01-13 3:17 ` Shawn Guo
2014-01-13 3:17 ` Shawn Guo
2014-01-09 15:59 ` [PATCH 6/6] arm: dts: add cpu nodes for Exynos4210 SoC Thomas Abraham
2014-01-09 15:59 ` Thomas Abraham
2014-01-10 10:32 ` Lukasz Majewski
2014-01-10 10:32 ` Lukasz Majewski
2014-01-10 12:06 ` Thomas Abraham
2014-01-10 12:06 ` Thomas Abraham
2014-01-10 10:32 ` Lukasz Majewski [this message]
2014-01-10 10:32 ` [PATCH 0/6] cpufreq: use cpufreq-cpu0 driver for exynos4210 based platforms Lukasz Majewski
2014-01-10 11:59 ` Thomas Abraham
2014-01-10 11:59 ` Thomas Abraham
2014-01-12 2:26 ` Tomasz Figa
2014-01-12 2:26 ` Tomasz Figa
2014-01-13 14:27 ` Thomas Abraham
2014-01-13 14:27 ` Thomas Abraham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140110113240.797381e6@amdc2363 \
--to=l.majewski@samsung.com \
--cc=cpufreq@vger.kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=kgene.kim@samsung.com \
--cc=l.majewski@majess.pl \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=shawn.guo@linaro.org \
--cc=t.figa@samsung.com \
--cc=ta.omasab@gmail.com \
--cc=thomas.ab@samsung.com \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.