From: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Linus Walleij
<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Maxime Ripard
<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Samuel Ortiz <sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: Mike Turquette
<mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Linux Media Mailing List
<linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: [PATCH v2 06/13] clk: sunxi: Make the mod0 clk driver also a platform driver
Date: Wed, 17 Dec 2014 18:18:17 +0100 [thread overview]
Message-ID: <1418836704-15689-7-git-send-email-hdegoede@redhat.com> (raw)
In-Reply-To: <1418836704-15689-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
With the prcm in sun6i (and some later SoCs) some mod0 clocks are instantiated
through the mfd framework, and as such do not work with of_clk_declare, since
they do not have registers assigned to them yet at of_clk_declare init time.
Silence the error on not finding registers in the of_clk_declare mod0 clk
setup method, and also register mod0-clk support as a platform driver to work
properly with mfd instantiated mod0 clocks.
Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
drivers/clk/sunxi/clk-mod0.c | 41 ++++++++++++++++++++++++++++++++++++-----
1 file changed, 36 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/sunxi/clk-mod0.c b/drivers/clk/sunxi/clk-mod0.c
index 658d74f..7ddab6f 100644
--- a/drivers/clk/sunxi/clk-mod0.c
+++ b/drivers/clk/sunxi/clk-mod0.c
@@ -17,6 +17,7 @@
#include <linux/clk-provider.h>
#include <linux/clkdev.h>
#include <linux/of_address.h>
+#include <linux/platform_device.h>
#include "clk-factors.h"
@@ -67,7 +68,7 @@ static struct clk_factors_config sun4i_a10_mod0_config = {
.pwidth = 2,
};
-static const struct factors_data sun4i_a10_mod0_data __initconst = {
+static const struct factors_data sun4i_a10_mod0_data = {
.enable = 31,
.mux = 24,
.muxmask = BIT(1) | BIT(0),
@@ -82,17 +83,47 @@ static void __init sun4i_a10_mod0_setup(struct device_node *node)
void __iomem *reg;
reg = of_iomap(node, 0);
- if (!reg) {
- pr_err("Could not get registers for mod0-clk: %s\n",
- node->name);
+ if (!reg)
return;
- }
sunxi_factors_register(node, &sun4i_a10_mod0_data,
&sun4i_a10_mod0_lock, reg);
}
CLK_OF_DECLARE(sun4i_a10_mod0, "allwinner,sun4i-a10-mod0-clk", sun4i_a10_mod0_setup);
+static int sun4i_a10_mod0_clk_probe(struct platform_device *pdev)
+{
+ struct device_node *np = pdev->dev.of_node;
+ struct resource *r;
+ void __iomem *reg;
+
+ if (!np)
+ return -ENODEV;
+
+ r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ reg = devm_ioremap_resource(&pdev->dev, r);
+ if (IS_ERR(reg))
+ return PTR_ERR(reg);
+
+ sunxi_factors_register(np, &sun4i_a10_mod0_data,
+ &sun4i_a10_mod0_lock, reg);
+ return 0;
+}
+
+static const struct of_device_id sun4i_a10_mod0_clk_dt_ids[] = {
+ { .compatible = "allwinner,sun4i-a10-mod0-clk" },
+ { /* sentinel */ }
+};
+
+static struct platform_driver sun4i_a10_mod0_clk_driver = {
+ .driver = {
+ .name = "sun4i-a10-mod0-clk",
+ .of_match_table = sun4i_a10_mod0_clk_dt_ids,
+ },
+ .probe = sun4i_a10_mod0_clk_probe,
+};
+module_platform_driver(sun4i_a10_mod0_clk_driver);
+
static DEFINE_SPINLOCK(sun5i_a13_mbus_lock);
static void __init sun5i_a13_mbus_setup(struct device_node *node)
--
2.1.0
next prev parent reply other threads:[~2014-12-17 17:18 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-17 17:18 [PATCH v2 00/13] sun6i: Add A31s and ir support Hans de Goede
[not found] ` <1418836704-15689-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-17 17:18 ` [PATCH v2 01/13] pinctrl: sun6i: Add some missing functions Hans de Goede
[not found] ` <1418836704-15689-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:17 ` Maxime Ripard
2015-01-13 14:29 ` Linus Walleij
2014-12-17 17:18 ` [PATCH v2 02/13] pinctrl: sun6i: Add A31s pinctrl support Hans de Goede
[not found] ` <1418836704-15689-3-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:20 ` Maxime Ripard
2015-01-13 14:31 ` Linus Walleij
2014-12-17 17:18 ` [PATCH v2 03/13] ARM: sunxi: Add "allwinner,sun6i-a31s" to mach-sunxi Hans de Goede
[not found] ` <1418836704-15689-4-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:22 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 04/13] rc: sunxi-cir: Add support for an optional reset controller Hans de Goede
[not found] ` <1418836704-15689-5-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-18 2:48 ` Chen-Yu Tsai
[not found] ` <CAGb2v65BW7NABQXK877DkMNqDdBeuZ55wQHFkTexbWACFC4zFA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-18 8:50 ` Hans de Goede
[not found] ` <54929552.8090707-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:17 ` Maxime Ripard
2014-12-20 10:20 ` Hans de Goede
[not found] ` <54954D5B.2020904-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-01-19 14:10 ` Chen-Yu Tsai
[not found] ` <CAGb2v676uRnKRNbBLPvcW4oTVzjWnNbVUTtw=DLoDyr2vn3Dgw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-19 14:17 ` Hans de Goede
[not found] ` <54BD11DF.1020907-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-01-19 14:24 ` Chen-Yu Tsai
2014-12-17 17:18 ` [PATCH v2 05/13] rc: sunxi-cir: Add support for the larger fifo found on sun5i and sun6i Hans de Goede
2014-12-17 17:18 ` Hans de Goede [this message]
[not found] ` <1418836704-15689-7-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:24 ` [PATCH v2 06/13] clk: sunxi: Make the mod0 clk driver also a platform driver Maxime Ripard
2014-12-20 10:25 ` Hans de Goede
2014-12-17 17:18 ` [PATCH v2 07/13] mfd: sun6i-prcm: Add support for the ir-clk Hans de Goede
[not found] ` <1418836704-15689-8-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-18 8:41 ` Lee Jones
2014-12-18 8:53 ` Hans de Goede
[not found] ` <54929602.8020002-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-18 9:19 ` Lee Jones
2014-12-17 17:18 ` [PATCH v2 08/13] ARM: dts: sun6i: Add ir_clk node Hans de Goede
[not found] ` <1418836704-15689-9-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:25 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 09/13] ARM: dts: sun6i: Add ir node Hans de Goede
[not found] ` <1418836704-15689-10-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:25 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 10/13] ARM: dts: sun6i: Add pinmux settings for the ir pins Hans de Goede
2014-12-17 17:18 ` [PATCH v2 11/13] ARM: dts: sun6i: Enable ir receiver on the Mele M9 Hans de Goede
[not found] ` <1418836704-15689-12-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:27 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 12/13] ARM: dts: sun6i: Add sun6i-a31s.dtsi Hans de Goede
[not found] ` <1418836704-15689-13-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:34 ` Maxime Ripard
2014-12-20 10:24 ` Hans de Goede
[not found] ` <54954E77.4070302-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-21 22:39 ` Maxime Ripard
2014-12-22 13:46 ` Hans de Goede
[not found] ` <549820A4.9090900-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-01-05 9:08 ` Maxime Ripard
2015-01-05 9:31 ` Hans de Goede
[not found] ` <54AA59D9.7030909-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-01-06 10:03 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 13/13] ARM: dts: sun6i: Add dts file for CSQ CS908 board Hans de Goede
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=1418836704-15689-7-git-send-email-hdegoede@redhat.com \
--to=hdegoede-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.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).