All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] cpufreq: use cpufreq-cpu0 driver for exynos4210 based platforms
@ 2014-01-09 15:59 Thomas Abraham
  2014-01-09 15:59   ` Thomas Abraham
  0 siblings, 1 reply; 112+ messages in thread
From: Thomas Abraham @ 2014-01-09 15:59 UTC (permalink / raw)
  To: cpufreq
  Cc: devicetree, linux-arm-kernel, linux-samsung-soc, t.figa,
	kgene.kim, shawn.guo, viresh.kumar

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.
(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



^ permalink raw reply	[flat|nested] 112+ messages in thread

end of thread, other threads:[~2015-07-14  0:02 UTC | newest]

Thread overview: 112+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <'@samsung.com>
2015-04-03 16:43 ` [PATCH 0/6] cpufreq: use generic cpufreq drivers for Exynos4210 platform Bartlomiej Zolnierkiewicz
2015-04-03 16:43   ` Bartlomiej Zolnierkiewicz
2015-04-03 16:43   ` [PATCH 1/6] clk: add CLK_RECALC_NEW_RATES clock flag for Exynos cpu clock support Bartlomiej Zolnierkiewicz
2015-04-03 16:43     ` Bartlomiej Zolnierkiewicz
2015-05-13 14:13     ` Sylwester Nawrocki
2015-05-13 14:13       ` Sylwester Nawrocki
2015-06-18 19:58       ` Michael Turquette
2015-06-18 19:58         ` Michael Turquette
2015-06-19 11:19         ` Bartlomiej Zolnierkiewicz
2015-06-19 11:19           ` Bartlomiej Zolnierkiewicz
2015-06-19 11:19           ` Bartlomiej Zolnierkiewicz
2015-06-19 12:35           ` Bartlomiej Zolnierkiewicz
2015-06-19 12:35             ` Bartlomiej Zolnierkiewicz
2015-06-19 12:35             ` Bartlomiej Zolnierkiewicz
2015-06-19 14:53             ` Michael Turquette
2015-06-19 14:53               ` Michael Turquette
2015-06-20 10:01               ` Krzysztof Kozlowski
2015-06-20 10:01                 ` Krzysztof Kozlowski
2015-06-20 10:01                 ` Krzysztof Kozlowski
2015-06-20 19:13                 ` Michael Turquette
2015-06-20 19:13                   ` Michael Turquette
2015-06-20 19:13                   ` Michael Turquette
2015-06-22  0:06                   ` Krzysztof Kozlowski
2015-06-22  0:06                     ` Krzysztof Kozlowski
2015-06-22  0:06                     ` Krzysztof Kozlowski
2015-04-03 16:43   ` [PATCH 2/6] clk: samsung: add infrastructure to register cpu clocks Bartlomiej Zolnierkiewicz
2015-04-03 16:43     ` Bartlomiej Zolnierkiewicz
2015-04-03 16:43   ` [PATCH 3/6] clk: samsung: exynos4: add cpu clock configuration data and instantiate cpu clock Bartlomiej Zolnierkiewicz
2015-04-03 16:43     ` Bartlomiej Zolnierkiewicz
2015-04-03 16:43   ` [PATCH 4/6] ARM: dts: Exynos4210: add CPU OPP and regulator supply property Bartlomiej Zolnierkiewicz
2015-04-03 16:43     ` Bartlomiej Zolnierkiewicz
2015-05-08  0:18     ` Krzysztof Kozlowski
2015-05-08  0:18       ` Krzysztof Kozlowski
2015-06-22  0:31       ` Krzysztof Kozlowski
2015-06-22  0:31         ` Krzysztof Kozlowski
2015-06-22  0:31         ` Krzysztof Kozlowski
2015-06-22  1:38         ` Kukjin Kim
2015-06-22  1:38           ` Kukjin Kim
2015-06-22  1:38           ` Kukjin Kim
2015-06-22  1:42           ` Krzysztof Kozlowski
2015-06-22  1:42             ` Krzysztof Kozlowski
2015-06-22  1:42             ` Krzysztof Kozlowski
2015-06-22  1:46             ` Kukjin Kim
2015-06-22  1:46               ` Kukjin Kim
2015-06-22  1:46               ` Kukjin Kim
2015-06-22 15:04               ` Michael Turquette
2015-06-22 15:04                 ` Michael Turquette
2015-06-22 15:04                 ` Michael Turquette
2015-06-22 23:46                 ` Krzysztof Kozlowski
2015-06-22 23:46                   ` Krzysztof Kozlowski
2015-06-22 23:46                   ` Krzysztof Kozlowski
2015-06-23  0:24                   ` Krzysztof Kozlowski
2015-06-23  0:24                     ` Krzysztof Kozlowski
2015-06-23  0:24                     ` Krzysztof Kozlowski
2015-07-13 11:02                     ` Bartlomiej Zolnierkiewicz
2015-07-13 11:02                       ` Bartlomiej Zolnierkiewicz
2015-07-13 11:10                       ` Krzysztof Kozlowski
2015-07-13 11:10                         ` Krzysztof Kozlowski
2015-07-13 11:20                         ` Bartlomiej Zolnierkiewicz
2015-07-13 11:20                           ` Bartlomiej Zolnierkiewicz
2015-07-13 11:50                           ` Krzysztof Kozlowski
2015-07-13 11:50                             ` Krzysztof Kozlowski
2015-07-13 14:27                           ` Bartlomiej Zolnierkiewicz
2015-07-13 14:27                             ` Bartlomiej Zolnierkiewicz
2015-07-14  0:02                             ` Krzysztof Kozlowski
2015-07-14  0:02                               ` Krzysztof Kozlowski
2015-06-24 14:25                   ` Bartlomiej Zolnierkiewicz
2015-06-24 14:25                     ` Bartlomiej Zolnierkiewicz
2015-04-03 16:43   ` [PATCH 5/6] ARM: Exynos: switch to using generic cpufreq driver for Exynos4210 Bartlomiej Zolnierkiewicz
2015-04-03 16:43     ` Bartlomiej Zolnierkiewicz
2015-05-08  0:05     ` Krzysztof Kozlowski
2015-05-08  0:05       ` Krzysztof Kozlowski
2015-05-14  5:07     ` Viresh Kumar
2015-05-14  5:07       ` Viresh Kumar
2015-04-03 16:43   ` [PATCH 6/6] cpufreq: exynos: remove Exynos4210 specific cpufreq driver support Bartlomiej Zolnierkiewicz
2015-04-03 16:43     ` Bartlomiej Zolnierkiewicz
2015-05-14  5:03     ` Viresh Kumar
2015-05-14  5:03       ` Viresh Kumar
2015-05-13 14:08   ` [PATCH 0/6] cpufreq: use generic cpufreq drivers for Exynos4210 platform Bartlomiej Zolnierkiewicz
2015-05-13 14:08     ` Bartlomiej Zolnierkiewicz
2015-05-14  4:07     ` [PATCH 0/6] cpufreq: use generic cpufreq drivers for Exynos4210platform Kukjin Kim
2015-05-14  4:07       ` Kukjin Kim
2015-05-14  5:10       ` Viresh Kumar
2015-05-14  5:10         ` Viresh Kumar
2015-05-14 10:53         ` Bartlomiej Zolnierkiewicz
2015-05-14 10:53           ` Bartlomiej Zolnierkiewicz
2015-05-14 11:17           ` Viresh Kumar
2015-05-14 11:17             ` Viresh Kumar
2015-05-14 13:07         ` [PATCH 0/6] cpufreq: use generic cpufreq drivers forExynos4210platform Kukjin Kim
2015-05-14 13:07           ` Kukjin Kim
2015-06-03 23:22           ` Kukjin Kim
2015-06-03 23:22             ` Kukjin Kim
2015-06-18 17:53             ` Bartlomiej Zolnierkiewicz
2015-06-18 17:53               ` Bartlomiej Zolnierkiewicz
2015-06-18 17:55               ` Bartlomiej Zolnierkiewicz
2015-06-18 17:55                 ` Bartlomiej Zolnierkiewicz
2014-01-09 15:59 [PATCH 0/6] cpufreq: use cpufreq-cpu0 driver for exynos4210 based platforms Thomas Abraham
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

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.