From: David Lechner <david@lechnology.com>
To: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Cc: Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@codeaurora.org>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>, Sekhar Nori <nsekhar@ti.com>,
Kevin Hilman <khilman@kernel.org>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
Adam Ford <aford173@gmail.com>,
linux-kernel@vger.kernel.org,
David Lechner <david@lechnology.com>
Subject: [PATCH v9 02/27] clk: davinci: da850-pll: change PLL0 to CLK_OF_DECLARE
Date: Thu, 26 Apr 2018 19:17:20 -0500 [thread overview]
Message-ID: <20180427001745.4116-3-david@lechnology.com> (raw)
In-Reply-To: <20180427001745.4116-1-david@lechnology.com>
PLL0 on davinci/da850-type device needs to be registered early in boot
because it is needed for clocksource/clockevent. Change the driver
to use CLK_OF_DECLARE for this special case.
Signed-off-by: David Lechner <david@lechnology.com>
---
v9 changes:
- new patch in v9
drivers/clk/davinci/pll-da850.c | 26 ++++++++++++++++++++++----
drivers/clk/davinci/pll.c | 4 +++-
drivers/clk/davinci/pll.h | 2 +-
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/drivers/clk/davinci/pll-da850.c b/drivers/clk/davinci/pll-da850.c
index 00a6ece7b524..743527de1da2 100644
--- a/drivers/clk/davinci/pll-da850.c
+++ b/drivers/clk/davinci/pll-da850.c
@@ -12,6 +12,8 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/mfd/da8xx-cfgchip.h>
+#include <linux/mfd/syscon.h>
+#include <linux/of_address.h>
#include <linux/of.h>
#include <linux/types.h>
@@ -135,11 +137,27 @@ static const struct davinci_pll_sysclk_info *da850_pll0_sysclk_info[] = {
NULL
};
-int of_da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip)
+void of_da850_pll0_init(struct device_node *node)
{
- return of_davinci_pll_init(dev, dev->of_node, &da850_pll0_info,
- &da850_pll0_obsclk_info,
- da850_pll0_sysclk_info, 7, base, cfgchip);
+ void __iomem *base;
+ struct regmap *cfgchip;
+
+ base = of_iomap(node, 0);
+ if (!base) {
+ pr_err("%s: ioremap failed\n", __func__);
+ return;
+ }
+
+ cfgchip = syscon_regmap_lookup_by_compatible("ti,da830-cfgchip");
+ if (IS_ERR(cfgchip)) {
+ pr_warn("%s: failed to get cfgchip (%ld)\n", __func__,
+ PTR_ERR(cfgchip));
+ cfgchip = NULL;
+ }
+
+ of_davinci_pll_init(NULL, node, &da850_pll0_info,
+ &da850_pll0_obsclk_info,
+ da850_pll0_sysclk_info, 7, base, cfgchip);
}
static const struct davinci_pll_clk_info da850_pll1_info = {
diff --git a/drivers/clk/davinci/pll.c b/drivers/clk/davinci/pll.c
index 7c4d808b8fdb..7d55e7470005 100644
--- a/drivers/clk/davinci/pll.c
+++ b/drivers/clk/davinci/pll.c
@@ -794,8 +794,10 @@ static struct davinci_pll_platform_data *davinci_pll_get_pdata(struct device *de
return pdata;
}
+/* needed in early boot for clocksource/clockevent */
+CLK_OF_DECLARE(da850_pll0, "ti,da850-pll0", of_da850_pll0_init);
+
static const struct of_device_id davinci_pll_of_match[] = {
- { .compatible = "ti,da850-pll0", .data = of_da850_pll0_init },
{ .compatible = "ti,da850-pll1", .data = of_da850_pll1_init },
{ }
};
diff --git a/drivers/clk/davinci/pll.h b/drivers/clk/davinci/pll.h
index 92a0978a7d29..5fe59ca45638 100644
--- a/drivers/clk/davinci/pll.h
+++ b/drivers/clk/davinci/pll.h
@@ -126,7 +126,7 @@ int da830_pll_init(struct device *dev, void __iomem *base, struct regmap *cfgchi
int da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
int da850_pll1_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
-int of_da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
+void of_da850_pll0_init(struct device_node *node);
int of_da850_pll1_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
int dm355_pll1_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
--
2.17.0
WARNING: multiple messages have this Message-ID (diff)
From: david@lechnology.com (David Lechner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v9 02/27] clk: davinci: da850-pll: change PLL0 to CLK_OF_DECLARE
Date: Thu, 26 Apr 2018 19:17:20 -0500 [thread overview]
Message-ID: <20180427001745.4116-3-david@lechnology.com> (raw)
In-Reply-To: <20180427001745.4116-1-david@lechnology.com>
PLL0 on davinci/da850-type device needs to be registered early in boot
because it is needed for clocksource/clockevent. Change the driver
to use CLK_OF_DECLARE for this special case.
Signed-off-by: David Lechner <david@lechnology.com>
---
v9 changes:
- new patch in v9
drivers/clk/davinci/pll-da850.c | 26 ++++++++++++++++++++++----
drivers/clk/davinci/pll.c | 4 +++-
drivers/clk/davinci/pll.h | 2 +-
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/drivers/clk/davinci/pll-da850.c b/drivers/clk/davinci/pll-da850.c
index 00a6ece7b524..743527de1da2 100644
--- a/drivers/clk/davinci/pll-da850.c
+++ b/drivers/clk/davinci/pll-da850.c
@@ -12,6 +12,8 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/mfd/da8xx-cfgchip.h>
+#include <linux/mfd/syscon.h>
+#include <linux/of_address.h>
#include <linux/of.h>
#include <linux/types.h>
@@ -135,11 +137,27 @@ static const struct davinci_pll_sysclk_info *da850_pll0_sysclk_info[] = {
NULL
};
-int of_da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip)
+void of_da850_pll0_init(struct device_node *node)
{
- return of_davinci_pll_init(dev, dev->of_node, &da850_pll0_info,
- &da850_pll0_obsclk_info,
- da850_pll0_sysclk_info, 7, base, cfgchip);
+ void __iomem *base;
+ struct regmap *cfgchip;
+
+ base = of_iomap(node, 0);
+ if (!base) {
+ pr_err("%s: ioremap failed\n", __func__);
+ return;
+ }
+
+ cfgchip = syscon_regmap_lookup_by_compatible("ti,da830-cfgchip");
+ if (IS_ERR(cfgchip)) {
+ pr_warn("%s: failed to get cfgchip (%ld)\n", __func__,
+ PTR_ERR(cfgchip));
+ cfgchip = NULL;
+ }
+
+ of_davinci_pll_init(NULL, node, &da850_pll0_info,
+ &da850_pll0_obsclk_info,
+ da850_pll0_sysclk_info, 7, base, cfgchip);
}
static const struct davinci_pll_clk_info da850_pll1_info = {
diff --git a/drivers/clk/davinci/pll.c b/drivers/clk/davinci/pll.c
index 7c4d808b8fdb..7d55e7470005 100644
--- a/drivers/clk/davinci/pll.c
+++ b/drivers/clk/davinci/pll.c
@@ -794,8 +794,10 @@ static struct davinci_pll_platform_data *davinci_pll_get_pdata(struct device *de
return pdata;
}
+/* needed in early boot for clocksource/clockevent */
+CLK_OF_DECLARE(da850_pll0, "ti,da850-pll0", of_da850_pll0_init);
+
static const struct of_device_id davinci_pll_of_match[] = {
- { .compatible = "ti,da850-pll0", .data = of_da850_pll0_init },
{ .compatible = "ti,da850-pll1", .data = of_da850_pll1_init },
{ }
};
diff --git a/drivers/clk/davinci/pll.h b/drivers/clk/davinci/pll.h
index 92a0978a7d29..5fe59ca45638 100644
--- a/drivers/clk/davinci/pll.h
+++ b/drivers/clk/davinci/pll.h
@@ -126,7 +126,7 @@ int da830_pll_init(struct device *dev, void __iomem *base, struct regmap *cfgchi
int da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
int da850_pll1_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
-int of_da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
+void of_da850_pll0_init(struct device_node *node);
int of_da850_pll1_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
int dm355_pll1_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
--
2.17.0
WARNING: multiple messages have this Message-ID (diff)
From: David Lechner <david@lechnology.com>
To: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Cc: Mark Rutland <mark.rutland@arm.com>,
David Lechner <david@lechnology.com>,
Kevin Hilman <khilman@kernel.org>,
Stephen Boyd <sboyd@codeaurora.org>,
Michael Turquette <mturquette@baylibre.com>,
Sekhar Nori <nsekhar@ti.com>,
linux-kernel@vger.kernel.org,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
Rob Herring <robh+dt@kernel.org>, Adam Ford <aford173@gmail.com>
Subject: [PATCH v9 02/27] clk: davinci: da850-pll: change PLL0 to CLK_OF_DECLARE
Date: Thu, 26 Apr 2018 19:17:20 -0500 [thread overview]
Message-ID: <20180427001745.4116-3-david@lechnology.com> (raw)
In-Reply-To: <20180427001745.4116-1-david@lechnology.com>
PLL0 on davinci/da850-type device needs to be registered early in boot
because it is needed for clocksource/clockevent. Change the driver
to use CLK_OF_DECLARE for this special case.
Signed-off-by: David Lechner <david@lechnology.com>
---
v9 changes:
- new patch in v9
drivers/clk/davinci/pll-da850.c | 26 ++++++++++++++++++++++----
drivers/clk/davinci/pll.c | 4 +++-
drivers/clk/davinci/pll.h | 2 +-
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/drivers/clk/davinci/pll-da850.c b/drivers/clk/davinci/pll-da850.c
index 00a6ece7b524..743527de1da2 100644
--- a/drivers/clk/davinci/pll-da850.c
+++ b/drivers/clk/davinci/pll-da850.c
@@ -12,6 +12,8 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/mfd/da8xx-cfgchip.h>
+#include <linux/mfd/syscon.h>
+#include <linux/of_address.h>
#include <linux/of.h>
#include <linux/types.h>
@@ -135,11 +137,27 @@ static const struct davinci_pll_sysclk_info *da850_pll0_sysclk_info[] = {
NULL
};
-int of_da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip)
+void of_da850_pll0_init(struct device_node *node)
{
- return of_davinci_pll_init(dev, dev->of_node, &da850_pll0_info,
- &da850_pll0_obsclk_info,
- da850_pll0_sysclk_info, 7, base, cfgchip);
+ void __iomem *base;
+ struct regmap *cfgchip;
+
+ base = of_iomap(node, 0);
+ if (!base) {
+ pr_err("%s: ioremap failed\n", __func__);
+ return;
+ }
+
+ cfgchip = syscon_regmap_lookup_by_compatible("ti,da830-cfgchip");
+ if (IS_ERR(cfgchip)) {
+ pr_warn("%s: failed to get cfgchip (%ld)\n", __func__,
+ PTR_ERR(cfgchip));
+ cfgchip = NULL;
+ }
+
+ of_davinci_pll_init(NULL, node, &da850_pll0_info,
+ &da850_pll0_obsclk_info,
+ da850_pll0_sysclk_info, 7, base, cfgchip);
}
static const struct davinci_pll_clk_info da850_pll1_info = {
diff --git a/drivers/clk/davinci/pll.c b/drivers/clk/davinci/pll.c
index 7c4d808b8fdb..7d55e7470005 100644
--- a/drivers/clk/davinci/pll.c
+++ b/drivers/clk/davinci/pll.c
@@ -794,8 +794,10 @@ static struct davinci_pll_platform_data *davinci_pll_get_pdata(struct device *de
return pdata;
}
+/* needed in early boot for clocksource/clockevent */
+CLK_OF_DECLARE(da850_pll0, "ti,da850-pll0", of_da850_pll0_init);
+
static const struct of_device_id davinci_pll_of_match[] = {
- { .compatible = "ti,da850-pll0", .data = of_da850_pll0_init },
{ .compatible = "ti,da850-pll1", .data = of_da850_pll1_init },
{ }
};
diff --git a/drivers/clk/davinci/pll.h b/drivers/clk/davinci/pll.h
index 92a0978a7d29..5fe59ca45638 100644
--- a/drivers/clk/davinci/pll.h
+++ b/drivers/clk/davinci/pll.h
@@ -126,7 +126,7 @@ int da830_pll_init(struct device *dev, void __iomem *base, struct regmap *cfgchi
int da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
int da850_pll1_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
-int of_da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
+void of_da850_pll0_init(struct device_node *node);
int of_da850_pll1_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
int dm355_pll1_init(struct device *dev, void __iomem *base, struct regmap *cfgchip);
--
2.17.0
next prev parent reply other threads:[~2018-04-27 0:17 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-27 0:17 [PATCH v9 00/27] ARM: davinci: convert to common clock framework David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 01/27] clk: davinci: pll: allow dev == NULL David Lechner
2018-04-27 0:17 ` David Lechner
2018-05-01 13:27 ` Sekhar Nori
2018-05-01 13:27 ` Sekhar Nori
2018-05-01 13:27 ` Sekhar Nori
2018-05-02 1:44 ` David Lechner
2018-05-02 1:44 ` David Lechner
2018-04-27 0:17 ` David Lechner [this message]
2018-04-27 0:17 ` [PATCH v9 02/27] clk: davinci: da850-pll: change PLL0 to CLK_OF_DECLARE David Lechner
2018-04-27 0:17 ` David Lechner
2018-05-01 13:46 ` Sekhar Nori
2018-05-01 13:46 ` Sekhar Nori
2018-05-01 13:46 ` Sekhar Nori
2018-05-02 1:46 ` David Lechner
2018-05-02 1:46 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 03/27] clk: davinci: psc: allow for dev == NULL David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` David Lechner
2018-05-01 14:02 ` Sekhar Nori
2018-05-01 14:02 ` Sekhar Nori
2018-05-01 14:02 ` Sekhar Nori
2018-05-02 1:49 ` David Lechner
2018-05-02 1:49 ` David Lechner
2018-05-02 15:08 ` Sekhar Nori
2018-05-02 15:08 ` Sekhar Nori
2018-05-02 15:08 ` Sekhar Nori
2018-04-27 0:17 ` [PATCH v9 04/27] ARM: davinci: pass clock as parameter to davinci_timer_init() David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` David Lechner
2018-05-01 14:09 ` Sekhar Nori
2018-05-01 14:09 ` Sekhar Nori
2018-05-01 14:09 ` Sekhar Nori
2018-04-27 0:17 ` [PATCH v9 05/27] ARM: davinci: da830: add new clock init using common clock framework David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` David Lechner
2018-05-01 14:13 ` Sekhar Nori
2018-05-01 14:13 ` Sekhar Nori
2018-05-01 14:13 ` Sekhar Nori
2018-04-27 0:17 ` [PATCH v9 06/27] ARM: davinci: da850: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-05-01 14:17 ` Sekhar Nori
2018-05-01 14:17 ` Sekhar Nori
2018-05-01 14:17 ` Sekhar Nori
2018-04-27 0:17 ` [PATCH v9 07/27] ARM: davinci: dm355: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` David Lechner
2018-05-03 15:34 ` Sekhar Nori
2018-05-03 15:34 ` Sekhar Nori
2018-05-03 15:34 ` Sekhar Nori
2018-05-03 15:44 ` David Lechner
2018-05-03 15:44 ` David Lechner
2018-05-04 10:01 ` Sekhar Nori
2018-05-04 10:01 ` Sekhar Nori
2018-05-04 10:01 ` Sekhar Nori
2018-05-04 14:26 ` David Lechner
2018-05-04 14:26 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 08/27] ARM: davinci: dm365: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 09/27] ARM: davinci: dm644x: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-05-03 13:18 ` Sekhar Nori
2018-05-03 13:18 ` Sekhar Nori
2018-05-03 13:18 ` Sekhar Nori
2018-04-27 0:17 ` [PATCH v9 10/27] ARM: davinci: dm646x: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 11/27] ARM: davinci: da8xx: add new USB PHY " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 12/27] ARM: davinci: da8xx: add new sata_refclk " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 13/27] ARM: davinci: remove CONFIG_DAVINCI_RESET_CLOCKS David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 14/27] ARM: davinci_all_defconfig: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 15/27] ARM: davinci: switch to common clock framework David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 16/27] ARM: davinci: da830: Remove legacy clock init David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 17/27] ARM: davinci: da850: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 18/27] ARM: davinci: dm355: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 19/27] ARM: davinci: dm365: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 20/27] ARM: davinci: dm644x: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 21/27] ARM: davinci: dm646x: " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 22/27] ARM: davinci: da8xx: Remove legacy USB and SATA " David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 23/27] ARM: davinci: remove legacy clocks David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 24/27] dt-bindings: timer: new bindings for TI DaVinci timer David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 14:05 ` Rob Herring
2018-04-27 14:05 ` Rob Herring
2018-04-27 14:05 ` Rob Herring
2018-05-02 1:52 ` David Lechner
2018-05-02 1:52 ` David Lechner
2018-05-02 5:03 ` Sekhar Nori
2018-05-02 5:03 ` Sekhar Nori
2018-05-02 5:03 ` Sekhar Nori
2018-04-27 0:17 ` [PATCH v9 25/27] ARM: davinci: add device tree support to timer David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 0:17 ` [PATCH v9 26/27] ARM: davinci: da8xx-dt: switch to device tree clocks David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 9:53 ` Bartosz Golaszewski
2018-04-27 9:53 ` Bartosz Golaszewski
2018-04-27 0:17 ` [PATCH v9 27/27] ARM: dts: da850: Add clocks David Lechner
2018-04-27 0:17 ` David Lechner
2018-04-27 12:04 ` [PATCH v9 00/27] ARM: davinci: convert to common clock framework Bartosz Golaszewski
2018-04-27 12:04 ` Bartosz Golaszewski
2018-04-30 20:35 ` Bartosz Golaszewski
2018-04-30 20:35 ` Bartosz Golaszewski
2018-05-01 14:45 ` Sekhar Nori
2018-05-01 14:45 ` Sekhar Nori
2018-05-01 14:45 ` Sekhar Nori
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=20180427001745.4116-3-david@lechnology.com \
--to=david@lechnology.com \
--cc=aford173@gmail.com \
--cc=bgolaszewski@baylibre.com \
--cc=devicetree@vger.kernel.org \
--cc=khilman@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mturquette@baylibre.com \
--cc=nsekhar@ti.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@codeaurora.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.