From: Chen-Yu Tsai <wens@csie.org>
To: Maxime Ripard <maxime.ripard@bootlin.com>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Alessandro Zummo <a.zummo@towertech.it>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>
Cc: Chen-Yu Tsai <wens@csie.org>,
linux-arm-kernel@lists.infradead.org, linux-rtc@vger.kernel.org,
linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com,
Corentin Labbe <clabbe.montjoie@gmail.com>
Subject: [PATCH v2 08/14] rtc: sun6i: Expose internal oscillator through device tree
Date: Mon, 3 Dec 2018 22:58:19 +0800 [thread overview]
Message-ID: <20181203145825.20511-9-wens@csie.org> (raw)
In-Reply-To: <20181203145825.20511-1-wens@csie.org>
The bindings have been updated to expose the RTC's internal oscillator,
for some SoCs that have it directly feeding the PRCM block. The changes
include the index 2 for the clock outputs, as well as the clock output
names.
This patch adds the internal oscillator to the list of clocks exposed
through of_clk_add_hw_provider(), and also have the driver optionally
fetch the name of the clock from the device tree if it's available.
Tested-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
drivers/rtc/rtc-sun6i.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
index 46609ae56ffd..11f56de52179 100644
--- a/drivers/rtc/rtc-sun6i.c
+++ b/drivers/rtc/rtc-sun6i.c
@@ -136,6 +136,7 @@ struct sun6i_rtc_clk_data {
unsigned int fixed_prescaler : 16;
unsigned int has_prescaler : 1;
unsigned int has_out_clk : 1;
+ unsigned int export_iosc : 1;
};
struct sun6i_rtc_dev {
@@ -220,6 +221,7 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,
.ops = &sun6i_rtc_osc_ops,
.name = "losc",
};
+ const char *iosc_name = "rtc-int-osc";
const char *clkout_name = "osc32k-out";
const char *parents[2];
@@ -228,7 +230,7 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,
return;
rtc->data = data;
- clk_data = kzalloc(struct_size(clk_data, hws, 2), GFP_KERNEL);
+ clk_data = kzalloc(struct_size(clk_data, hws, 3), GFP_KERNEL);
if (!clk_data) {
kfree(rtc);
return;
@@ -253,8 +255,13 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,
if (!of_get_property(node, "clocks", NULL))
goto err;
+ /* Only read IOSC name from device tree if it is exported */
+ if (rtc->data->export_iosc)
+ of_property_read_string_index(node, "clock-output-names", 2,
+ &iosc_name);
+
rtc->int_osc = clk_hw_register_fixed_rate_with_accuracy(NULL,
- "rtc-int-osc",
+ iosc_name,
NULL, 0,
rtc->data->rc_osc_rate,
300000000);
@@ -293,6 +300,10 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,
clk_data->num = 2;
clk_data->hws[0] = &rtc->hw;
clk_data->hws[1] = __clk_get_hw(rtc->ext_losc);
+ if (rtc->data->export_iosc) {
+ clk_data->hws[2] = rtc->int_osc;
+ clk_data->num = 3;
+ }
of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
return;
@@ -330,6 +341,7 @@ static const struct sun6i_rtc_clk_data sun8i_h3_rtc_data = {
.fixed_prescaler = 32,
.has_prescaler = 1,
.has_out_clk = 1,
+ .export_iosc = 1,
};
static void __init sun8i_h3_rtc_clk_init(struct device_node *node)
--
2.20.0.rc1
next prev parent reply other threads:[~2018-12-03 14:59 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-03 14:58 [PATCH v2 00/14] rtc: sun6i: clock rework and pre-H6 SoC support Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 01/14] dt-bindings: rtc: sun6i-rtc: Rewrite clock outputs as a list Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 02/14] dt-bindings: rtc: sun6i-rtc: Add compatible strings for pre-H6 variants Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 03/14] dt-bindings: rtc: sun6i-rtc: Deprecate external clock output for A31 Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 04/14] dt-bindings: rtc: sun6i-rtc: Export internal RC oscillator Chen-Yu Tsai
2018-12-04 9:17 ` Maxime Ripard
2018-12-03 14:58 ` [PATCH v2 05/14] rtc: sun6i: Add default clock name for LOSC Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 06/14] rtc: sun6i: Add support for different variants Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 07/14] rtc: sun6i: Add support for all known pre-H6 variants Chen-Yu Tsai
2018-12-03 14:58 ` Chen-Yu Tsai [this message]
2018-12-04 9:17 ` [PATCH v2 08/14] rtc: sun6i: Expose internal oscillator through device tree Maxime Ripard
2018-12-03 14:58 ` [PATCH v2 09/14] ARM: dts: sun8i: a23/a33: Fix up RTC device node Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 10/14] ARM: dts: sunxi: h3/h5: Add clock accuracy for external oscillators Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 11/14] ARM: dts: sunxi: h3/h5: Fix up RTC device node and clock references Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 12/14] ARM: dts: sun8i: r40: Add clock accuracy for external oscillators Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 13/14] ARM: dts: sun8i: r40: Add RTC device node Chen-Yu Tsai
2018-12-03 14:58 ` [PATCH v2 14/14] arm64: dts: allwinner: a64: Fix up RTC device node and clock references Chen-Yu Tsai
2018-12-06 5:49 ` [PATCH v2 00/14] rtc: sun6i: clock rework and pre-H6 SoC support Chen-Yu Tsai
2018-12-06 20:34 ` Alexandre Belloni
2018-12-07 2:25 ` Chen-Yu Tsai
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=20181203145825.20511-9-wens@csie.org \
--to=wens@csie.org \
--cc=a.zummo@towertech.it \
--cc=alexandre.belloni@bootlin.com \
--cc=clabbe.montjoie@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=linux-sunxi@googlegroups.com \
--cc=mark.rutland@arm.com \
--cc=maxime.ripard@bootlin.com \
--cc=mturquette@baylibre.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.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).