linux/drivers/clk/samsung
Thomas Abraham ddeac8d968 clk: samsung: add infrastructure to register cpu clocks
The CPU clock provider supplies the clock to the CPU clock domain. The
composition and organization of the CPU clock provider could vary among
Exynos SoCs. A CPU clock provider can be composed of clock mux, dividers
and gates. This patch defines a new clock type for CPU clock provider and
adds infrastructure to register the CPU clock providers for Samsung
platforms.

Changes by Bartlomiej:
- fixed issue with setting lower dividers before the parent clock speed
  was lowered (the issue resulted in lockup on Exynos4210 SoC based
  Origen board when "ondemand" cpufreq governor was stress tested)
- fixed missing spin_unlock on error in exynos_cpuclk_post_rate_change()
  problem by moving cfg_data search outside of the spin locked area
- removed leftover kfree() in exynos_register_cpu_clock() that could
  result in dereferencing the NULL pointer on error
- moved spin_lock earlier in exynos_cpuclk_pre_rate_change() to cover
  reading of E4210_SRC_CPU and E4210_DIV_CPU1 registers
- added missing "last chance" checks to wait_until_divider_stable() and
  wait_until_mux_stable() (needed in case that IRQ handling took long
  time to proceed and resulted in function printing incorrect error
  message about timeout)
- moved E4210_CPU_DIV[0,1]() macros just before their only users,
  this resulted in moving them from patch #2 to patch #3/6 ("clk:
  samsung: exynos4: add cpu clock configuration data and instantiate
  cpu clock")
- removed E5250_CPU_DIV[0,1](), E5420_EGL_DIV0() and E5420_KFC_DIV()
  macros for now
- added my Copyrights to drivers/clk/samsung/clk-cpu.c

Cc: Tomasz Figa <tomasz.figa@gmail.com>
Cc: Mike Turquette <mturquette@linaro.org>
Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
2015-06-20 12:17:42 -07:00
..
clk-cpu.c clk: samsung: add infrastructure to register cpu clocks 2015-06-20 12:17:42 -07:00
clk-cpu.h clk: samsung: add infrastructure to register cpu clocks 2015-06-20 12:17:42 -07:00
clk-exynos4.c clk: samsung: exynos4: Disable ARMCLK down feature on Exynos4210 SoC 2015-04-12 20:58:54 -07:00
clk-exynos7.c clk: samsung: exynos7: add clocks for audio block 2015-01-15 15:18:51 +01:00
clk-exynos3250.c clk: samsung: exynos3250: Add driver for CMU_ISP clock domain 2015-03-30 15:18:53 -07:00
clk-exynos4415.c clk: samsung: exynos4415: Use samsung_cmu_register_one() to simplify code 2014-12-23 14:26:27 +01:00
clk-exynos5250.c clk: samsung: Make of_device_id array const 2014-07-26 02:49:58 +02:00
clk-exynos5260.c clk: samsung: Factor out the common code to clk.c 2014-10-31 10:45:45 +01:00
clk-exynos5260.h clk/exynos5260: add clock file for exynos5260 2014-05-14 19:16:55 +02:00
clk-exynos5410.c clk: samsung: Register clk provider only after registering its all clocks 2014-06-30 15:07:55 +02:00
clk-exynos5420.c clk: exynos5420: Restore GATE_BUS_TOP on suspend 2015-05-05 10:51:04 +02:00
clk-exynos5433.c clk: exynos5433: Fix wrong PMS value of exynos5433_pll_rates 2015-04-29 14:11:35 +02:00
clk-exynos5440.c clk: exynos5440: move restart code into clock driver 2014-11-22 23:07:21 +09:00
clk-exynos-audss.c clk: exynos-audss: Fix memory leak on driver unbind or probe failure 2015-01-17 13:52:41 -08:00
clk-exynos-clkout.c clk: samsung: Add CLKOUT driver support for Exynos3250 SoC 2015-03-30 15:18:52 -07:00
clk-pll.c clk: samsung: add support for 145xx and 1460x PLLs 2014-10-31 10:45:35 +01:00
clk-pll.h clk: samsung: add support for 145xx and 1460x PLLs 2014-10-31 10:45:35 +01:00
clk-s3c64xx.c clk: samsung: Register clk provider only after registering its all clocks 2014-06-30 15:07:55 +02:00
clk-s3c2410-dclk.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-s3c2410.c clk: samsung: Register clk provider only after registering its all clocks 2014-06-30 15:07:55 +02:00
clk-s3c2412.c clk: samsung: register restart handlers for s3c2412 and s3c2443 2014-10-01 14:14:46 +02:00
clk-s3c2443.c clk: samsung: register restart handlers for s3c2412 and s3c2443 2014-10-01 14:14:46 +02:00
clk-s5pv210-audss.c clk: samsung: drop owner assignment from platform_drivers 2014-10-20 16:20:22 +02:00
clk-s5pv210.c clk: don't use __initconst for non-const arrays 2015-04-12 17:18:27 -07:00
clk.c clk: samsung: Change the return value of samsung_cmu_register_one() 2014-12-23 14:24:59 +01:00
clk.h clk: samsung: Change the return value of samsung_cmu_register_one() 2014-12-23 14:24:59 +01:00
Kconfig ARM: S3C24XX: move S3C24XX clock Kconfig options to Samsung clock Kconfig file 2014-05-14 19:41:15 +02:00
Makefile clk: samsung: add infrastructure to register cpu clocks 2015-06-20 12:17:42 -07:00