linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: sebastian.hesselbarth@gmail.com (Sebastian Hesselbarth)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 02/26] clk: nomadik: move src init out of nomadik_clk_init
Date: Sun, 22 Sep 2013 18:45:32 +0200	[thread overview]
Message-ID: <1379868332-2808-1-git-send-email-sebastian.hesselbarth@gmail.com> (raw)
In-Reply-To: <1379526839-14798-3-git-send-email-sebastian.hesselbarth@gmail.com>

nomadik_clk_init currently also maps system reset controller base address
used by clocks and registers a reboot notifier. To allow further cleanup of
nomadik clk setup, this moves system reset controller setup from
nomadik_clk_init to its own function.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
---
Changelog:
v1->v2:
- adapt to clk-nomadik changes

Cc: Olof Johansson <olof@lixom.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Alessandro Rubini <rubini@unipv.it>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: STEricsson <STEricsson_nomadik_linux@list.st.com>
Cc: Mike Turquette <mturquette@linaro.org>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-kernel at vger.kernel.org
---
 drivers/clk/clk-nomadik.c |  144 +++++++++++++++++++++++----------------------
 1 file changed, 74 insertions(+), 70 deletions(-)

diff --git a/drivers/clk/clk-nomadik.c b/drivers/clk/clk-nomadik.c
index 4d978a3..06b29c26 100644
--- a/drivers/clk/clk-nomadik.c
+++ b/drivers/clk/clk-nomadik.c
@@ -62,6 +62,79 @@ static DEFINE_SPINLOCK(src_lock);
 /* Base address of the SRC */
 static void __iomem *src_base;
 
+static int nomadik_clk_reboot_handler(struct notifier_block *this,
+				unsigned long code,
+				void *unused)
+{
+	u32 val;
+
+	/* The main chrystal need to be enabled for reboot to work */
+	val = readl(src_base + SRC_XTALCR);
+	val &= ~SRC_XTALCR_MXTALOVER;
+	val |= SRC_XTALCR_MXTALEN;
+	pr_crit("force-enabling MXTALO\n");
+	writel(val, src_base + SRC_XTALCR);
+	return NOTIFY_OK;
+}
+
+static struct notifier_block nomadik_clk_reboot_notifier = {
+	.notifier_call = nomadik_clk_reboot_handler,
+};
+
+static const struct of_device_id nomadik_src_match[] __initconst = {
+	{ .compatible = "stericsson,nomadik-src" },
+	{ /* sentinel */ }
+};
+
+static void nomadik_src_init(void)
+{
+	struct device_node *np;
+	u32 val;
+
+	np = of_find_matching_node(NULL, nomadik_src_match);
+	if (!np) {
+		pr_crit("no matching node for SRC, aborting clock init\n");
+		return;
+	}
+	src_base = of_iomap(np, 0);
+	if (!src_base) {
+		pr_err("%s: must have src parent node with REGS (%s)\n",
+		       __func__, np->name);
+		return;
+	}
+
+	/* Set all timers to use the 2.4 MHz TIMCLK */
+	val = readl(src_base + SRC_CR);
+	val |= SRC_CR_T0_ENSEL;
+	val |= SRC_CR_T1_ENSEL;
+	val |= SRC_CR_T2_ENSEL;
+	val |= SRC_CR_T3_ENSEL;
+	val |= SRC_CR_T4_ENSEL;
+	val |= SRC_CR_T5_ENSEL;
+	val |= SRC_CR_T6_ENSEL;
+	val |= SRC_CR_T7_ENSEL;
+	writel(val, src_base + SRC_CR);
+
+	val = readl(src_base + SRC_XTALCR);
+	pr_info("SXTALO is %s\n",
+		(val & SRC_XTALCR_SXTALDIS) ? "disabled" : "enabled");
+	pr_info("MXTAL is %s\n",
+		(val & SRC_XTALCR_MXTALSTAT) ? "enabled" : "disabled");
+	if (of_property_read_bool(np, "disable-sxtalo")) {
+		/* The machine uses an external oscillator circuit */
+		val |= SRC_XTALCR_SXTALDIS;
+		pr_info("disabling SXTALO\n");
+	}
+	if (of_property_read_bool(np, "disable-mxtalo")) {
+		/* Disable this too: also run by external oscillator */
+		val |= SRC_XTALCR_MXTALOVER;
+		val &= ~SRC_XTALCR_MXTALEN;
+		pr_info("disabling MXTALO\n");
+	}
+	writel(val, src_base + SRC_XTALCR);
+	register_reboot_notifier(&nomadik_clk_reboot_notifier);
+}
+
 /**
  * struct clk_pll1 - Nomadik PLL1 clock
  * @hw: corresponding clock hardware entry
@@ -487,11 +560,6 @@ static void __init of_nomadik_src_clk_setup(struct device_node *np)
 		of_clk_add_provider(np, of_clk_src_simple_get, clk);
 }
 
-static const struct of_device_id nomadik_src_match[] __initconst = {
-	{ .compatible = "stericsson,nomadik-src" },
-	{ /* sentinel */ }
-};
-
 static const struct of_device_id nomadik_src_clk_match[] __initconst = {
 	{
 		.compatible = "fixed-clock",
@@ -516,72 +584,8 @@ static const struct of_device_id nomadik_src_clk_match[] __initconst = {
 	{ /* sentinel */ }
 };
 
-static int nomadik_clk_reboot_handler(struct notifier_block *this,
-				unsigned long code,
-				void *unused)
-{
-	u32 val;
-
-	/* The main chrystal need to be enabled for reboot to work */
-	val = readl(src_base + SRC_XTALCR);
-	val &= ~SRC_XTALCR_MXTALOVER;
-	val |= SRC_XTALCR_MXTALEN;
-	pr_crit("force-enabling MXTALO\n");
-	writel(val, src_base + SRC_XTALCR);
-	return NOTIFY_OK;
-}
-
-static struct notifier_block nomadik_clk_reboot_notifier = {
-	.notifier_call = nomadik_clk_reboot_handler,
-};
-
 void __init nomadik_clk_init(void)
 {
-	struct device_node *np;
-	u32 val;
-
-	np = of_find_matching_node(NULL, nomadik_src_match);
-	if (!np) {
-		pr_crit("no matching node for SRC, aborting clock init\n");
-		return;
-	}
-	src_base = of_iomap(np, 0);
-	if (!src_base) {
-		pr_err("%s: must have src parent node with REGS (%s)\n",
-		       __func__, np->name);
-		return;
-	}
-
-	/* Set all timers to use the 2.4 MHz TIMCLK */
-	val = readl(src_base + SRC_CR);
-	val |= SRC_CR_T0_ENSEL;
-	val |= SRC_CR_T1_ENSEL;
-	val |= SRC_CR_T2_ENSEL;
-	val |= SRC_CR_T3_ENSEL;
-	val |= SRC_CR_T4_ENSEL;
-	val |= SRC_CR_T5_ENSEL;
-	val |= SRC_CR_T6_ENSEL;
-	val |= SRC_CR_T7_ENSEL;
-	writel(val, src_base + SRC_CR);
-
-	val = readl(src_base + SRC_XTALCR);
-	pr_info("SXTALO is %s\n",
-		(val & SRC_XTALCR_SXTALDIS) ? "disabled" : "enabled");
-	pr_info("MXTAL is %s\n",
-		(val & SRC_XTALCR_MXTALSTAT) ? "enabled" : "disabled");
-	if (of_property_read_bool(np, "disable-sxtalo")) {
-		/* The machine uses an external oscillator circuit */
-		val |= SRC_XTALCR_SXTALDIS;
-		pr_info("disabling SXTALO\n");
-	}
-	if (of_property_read_bool(np, "disable-mxtalo")) {
-		/* Disable this too: also run by external oscillator */
-		val |= SRC_XTALCR_MXTALOVER;
-		val &= ~SRC_XTALCR_MXTALEN;
-		pr_info("disabling MXTALO\n");
-	}
-	writel(val, src_base + SRC_XTALCR);
-	register_reboot_notifier(&nomadik_clk_reboot_notifier);
-
+	nomadik_src_init();
 	of_clk_init(nomadik_src_clk_match);
 }
-- 
1.7.10.4

  parent reply	other threads:[~2013-09-22 16:45 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-18 17:53 [PATCH 00/26] ARM: provide common arch init for DT clocks Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 01/26] ARM: nomadik: move mtu setup to clocksource init Sebastian Hesselbarth
2013-09-20 20:49   ` Linus Walleij
2013-09-20 20:51     ` Linus Walleij
2013-09-20 21:08       ` Sebastian Hesselbarth
2013-09-20 21:11         ` Linus Walleij
2013-09-20 21:13   ` Sebastian Hesselbarth
2013-09-20 21:22     ` Linus Walleij
2013-09-22 12:18     ` Sebastian Hesselbarth
2013-09-20 21:37   ` [PATCH v2 01/26] ARM: nomadik: remove mtu initalization from .init_time Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 02/26] clk: nomadik: move src init out of nomadik_clk_init Sebastian Hesselbarth
2013-09-20 20:54   ` Linus Walleij
2013-09-22 16:45   ` Sebastian Hesselbarth [this message]
2013-09-18 17:53 ` [PATCH 03/26] clk: nomadik: declare OF clock provider Sebastian Hesselbarth
2013-09-20 20:55   ` Linus Walleij
2013-09-22 16:46   ` [PATCH v2 " Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 04/26] clk: prima2: " Sebastian Hesselbarth
2013-09-19  8:45   ` Barry Song
2013-09-19  8:48     ` Sebastian Hesselbarth
2013-09-22 12:12       ` Sebastian Hesselbarth
2013-09-22 10:37         ` Barry Song
2013-09-27 18:21           ` Sebastian Hesselbarth
2013-09-29  4:49             ` Barry Song
2013-09-18 17:53 ` [PATCH 05/26] ARM: socfgpa: prepare for arch-wide .init_time callback Sebastian Hesselbarth
2013-09-26  6:12   ` Sebastian Hesselbarth
2013-09-26 13:06   ` Dinh Nguyen
2013-09-18 17:53 ` [PATCH 06/26] clk: sunxi: declare OF clock provider Sebastian Hesselbarth
2013-09-25 20:03   ` Maxime Ripard
2013-09-18 17:53 ` [PATCH 07/26] clk: vt8500: parse pmc_base from clock driver Sebastian Hesselbarth
2013-09-19 19:02   ` Tony Prisk
2013-09-19 19:12     ` Sebastian Hesselbarth
2013-09-20  4:51       ` Tony Prisk
2013-09-20  6:23         ` Sebastian Hesselbarth
2013-09-20 18:23           ` Tony Prisk
2013-09-20  6:22   ` [PATCH v2 " Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 08/26] ARM: vt8500: prepare for arch-wide .init_time callback Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 09/26] ARM: call of_clk_init from default time_init handler Sebastian Hesselbarth
2013-09-23  7:54   ` [PATCH v2 " Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 10/26] ARM: bcm2835: remove custom .init_time hook Sebastian Hesselbarth
2013-09-18 19:37   ` Stephen Warren
2013-09-18 17:53 ` [PATCH 11/26] ARM: dove: " Sebastian Hesselbarth
2013-09-21 12:22   ` Andrew Lunn
2013-09-22 12:20     ` Sebastian Hesselbarth
2013-09-23  9:10       ` Andrew Lunn
2013-09-23 13:32         ` Jason Cooper
2013-09-23 17:46           ` Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 12/26] ARM: exynos: " Sebastian Hesselbarth
2013-09-26  6:21   ` Sebastian Hesselbarth
2013-09-26  8:08     ` Tomasz Figa
2013-09-18 17:53 ` [PATCH 13/26] ARM: highbank: " Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 14/26] ARM: imx: " Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 15/26] ARM: kirkwood: " Sebastian Hesselbarth
2013-09-21 20:27   ` Andrew Lunn
2013-09-23 13:32     ` Jason Cooper
2013-09-18 17:53 ` [PATCH 16/26] ARM: mxs: " Sebastian Hesselbarth
2013-09-20  8:57   ` Shawn Guo
2013-09-18 17:53 ` [PATCH 17/26] ARM: nomadik: " Sebastian Hesselbarth
2013-09-20 20:56   ` Linus Walleij
2013-09-18 17:53 ` [PATCH 18/26] ARM: nspire: " Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 19/26] ARM: prima2: " Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 20/26] ARM: rockchip: " Sebastian Hesselbarth
2013-09-19  8:40   ` Heiko Stübner
2013-09-18 17:53 ` [PATCH 21/26] ARM: socfpga: " Sebastian Hesselbarth
2013-09-26 13:07   ` Dinh Nguyen
2013-09-18 17:53 ` [PATCH 22/26] ARM: sti: " Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 23/26] ARM: sunxi: " Sebastian Hesselbarth
2013-09-25 20:07   ` Maxime Ripard
2013-09-26  6:15     ` Sebastian Hesselbarth
2013-09-27 17:02       ` Maxime Ripard
2013-09-18 17:53 ` [PATCH 24/26] ARM: tegra: " Sebastian Hesselbarth
2013-09-18 19:38   ` Stephen Warren
2013-09-18 17:53 ` [PATCH 25/26] ARM: vexpress: " Sebastian Hesselbarth
2013-09-19 13:34   ` Pawel Moll
2013-09-18 17:53 ` [PATCH 26/26] ARM: vt8500: " Sebastian Hesselbarth
2013-09-18 19:47 ` [PATCH 00/26] ARM: provide common arch init for DT clocks Jason Cooper
2013-09-18 19:52   ` Sebastian Hesselbarth
2013-09-18 20:45     ` Stephen Warren
2013-09-18 20:48     ` Olof Johansson
2013-09-18 21:04       ` Sebastian Hesselbarth
2013-09-20 19:16 ` Matt Porter
2013-09-22 12:14   ` Sebastian Hesselbarth
2013-09-23 17:45     ` Matt Porter
2013-09-23 18:41       ` Christian Daudt

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=1379868332-2808-1-git-send-email-sebastian.hesselbarth@gmail.com \
    --to=sebastian.hesselbarth@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).