[RFC 00/17] ARM: provide common arch init for DT clocks

Sebastian Hesselbarth sebastian.hesselbarth at gmail.com
Mon Aug 19 22:04:14 EDT 2013


This RFC converts arch/arm to provide a common arch init for DT clock
providers. Currently, the call to of_clk_init(NULL) to initialize DT
clock providers is spread among several mach-dirs. Since most machs
require DT clocks initialized before timers, no initcall can be used.

By adding of_clk_init(NULL) to ARM time_init(), we can remove all
mach-specific .init_time hooks that basically called of_clk_init before
starting timers. Some machs use the hook for more initialization, that
has been moved to other hooks where required.

The only exception is mach-tegra which requires clocks even earlier in
.init_irq. To allow machs to call clk_of_init at any time earlier than
time_init(), we first need to ensure drivers in __clk_of_table are only
initialized once.

The RFC is based on next-20130819 to catch up with future clock related
changes. It has been tested on mach-mvebu and compile tested for all the
other machs modified. All single patches have also been sent to the
respective maintainers.

Although some patches also modify files in mach-foo and drivers/clk, I
decided to keep them in a single patch to also show what would be
required for a common arch clock init.

Sebastian Hesselbarth (17):
  clk: ensure __clk_of_table is only initialized once
  ARM: call clk_of_init from time_init
  ARM: dove: remove custom .init_time hook
  ARM: exynos: remove custom .init_time hook
  ARM: highbank: remove custom .init_time hook
  ARM: imx: remove custom .init_time hook
  ARM: kirkwood: remove custom .init_time hook
  ARM: mvebu: remove custom .init_time hook
  ARM: mxs: remove custom .init_time hook
  ARM: nspire: remove custom .init_time hook
  ARM: rockchip: remove custom .init_time hook
  ARM: socfpga: remove custom .init_time hook
  ARM: sti: remove custom .init_time hook
  ARM: tegra: remove .init_time hook to clocksource_of_init
  ARM: vexpress: remove custom .init_time hook
  clk: vt8500: remove call to of_clk_init
  clk: zynq: remove call to of_clk_init

 arch/arm/kernel/time.c                   |    4 ++++
 arch/arm/mach-dove/board-dt.c            |   16 +---------------
 arch/arm/mach-exynos/common.c            |    7 -------
 arch/arm/mach-exynos/common.h            |    1 -
 arch/arm/mach-exynos/mach-exynos4-dt.c   |    1 -
 arch/arm/mach-exynos/mach-exynos5-dt.c   |    1 -
 arch/arm/mach-highbank/highbank.c        |   23 +++++++----------------
 arch/arm/mach-imx/clk-imx51-imx53.c      |   12 ------------
 arch/arm/mach-imx/common.h               |    2 --
 arch/arm/mach-imx/imx51-dt.c             |    6 ------
 arch/arm/mach-imx/mach-imx53.c           |    6 ------
 arch/arm/mach-imx/mach-imx6q.c           |   14 +++-----------
 arch/arm/mach-imx/mach-imx6sl.c          |    7 -------
 arch/arm/mach-imx/mach-vf610.c           |    9 ---------
 arch/arm/mach-kirkwood/board-dt.c        |    8 --------
 arch/arm/mach-mvebu/armada-370-xp.c      |   11 +----------
 arch/arm/mach-mxs/mach-mxs.c             |   13 -------------
 arch/arm/mach-nspire/nspire.c            |    9 ---------
 arch/arm/mach-rockchip/rockchip.c        |    9 ---------
 arch/arm/mach-socfpga/socfpga.c          |    2 --
 arch/arm/mach-sti/board-dt.c             |   10 ++++------
 arch/arm/mach-tegra/tegra.c              |    2 --
 arch/arm/mach-vexpress/v2m.c             |   14 +-------------
 drivers/clk/clk-highbank.c               |   10 +++++++---
 drivers/clk/clk-vt8500.c                 |    2 --
 drivers/clk/clk.c                        |    8 +++++++-
 drivers/clk/mxs/clk-imx23.c              |   16 +++++++---------
 drivers/clk/mxs/clk-imx28.c              |   16 ++++++++--------
 drivers/clk/zynq/clkc.c                  |    1 -
 drivers/clocksource/time-armada-370-xp.c |    7 +++----
 include/linux/clk/mxs.h                  |    2 --
 include/linux/time-armada-370-xp.h       |   16 ----------------
 32 files changed, 53 insertions(+), 212 deletions(-)
 delete mode 100644 include/linux/time-armada-370-xp.h

---
Cc: Mike Turquette <mturquette at linaro.org>
Cc: Russell King <linux at arm.linux.org.uk>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-kernel at vger.kernel.org
-- 
1.7.10.4




More information about the linux-arm-kernel mailing list