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
Subject: [PATCH v2 00/14] rtc: sun6i: clock rework and pre-H6 SoC support
Date: Mon, 3 Dec 2018 22:58:11 +0800 [thread overview]
Message-ID: <20181203145825.20511-1-wens@csie.org> (raw)
Hi everyone,
This is v2 of my rtc-sun6i clean-up series.
Changes since v1:
- Collected tags
- Dropped patch "clk: sunxi-ng: r40: Force LOSC parent to RTC LOSC
output"; already merged
- Removed H6 compatible CLK_OF_DECLARE_DRIVER entry that wasn't
overlooked
- Only export IOSC clock for A64/H3/H5
Original cover letter, with patch numbers corrected, follows:
This series was started as part of enabling Bluetooth on various
Allwinner SBCs. The bluetooth controller requires a precise 32.768 kHz
clock fed to it to correctly detect the frequency of its main oscillator.
This clock signal is provided by the RTC, either directly from a special
pin on the SoC, or some clock output function from the clock controllers.
I found that the clock-related properties of the RTC on later SoCs were
incorrect or missing.
This series reworks the compatible strings and clock parts of the device
tree bindings for sun6i-rtc. Currently we assume most Allwinner SoCs use
the same sun6i-rtc variant, when in fact they do not. The differences
that matter with regards to clocks are a) the A31 does not have an extra
external output for the RTC 32K clock, while most of the others do;
b) the clock frequency of the internal RC oscillator is different on
some SoCs; c) on the H6 the RTC also handles the 24 MHz DCXO, which
feeds the system HOSC. The last difference, and by extension the H6, are
not covered in this series.
Patch 1 cleans up the clock-related section of the RTC device tree
binding. This would make it easier to read and easier to add additional
clocks.
Patch 2 adds compatible strings for all identified variants introduced
prior to the H6.
Patch 3 deprecates the external clock output for the A31. The A31 does
not have this output, so it's introduction and usage was an error.
Patch 4 adds a clock output for the RTC's internal oscillator to the
device tree binding. This feeds the PRCM in some SoCs.
Patch 5 adds a default clock name for the LOSC to the RTC driver.
Patch 6 adds support for different hardware variants to the RTC driver.
Patch 7 adds support for all known pre-H6 variants.
Patch 8 exposes the RTC's internal oscillator through the device tree.
Patch 9 through 14 adds an RTC node or fixes up the RTC device node
address ranges, clock properties, names of existing clocks, and adds
accuracy properties for the external fixed oscillators.
The clock names require fixing because the sunxi clock driver implicitly
depends on the HOSC and LOSC being named "osc24M" and "osc32k". The
"fixes" to the clock hierarchy introduced in this series means the names
must also be shuffled around or the in kernel representation would be
incorrect. This has been the case since the sunxi-ng drivers were
introduced. There are plans to address this, but the code is still in its
early stages.
Please have a look.
Thanks
ChenYu
Chen-Yu Tsai (14):
dt-bindings: rtc: sun6i-rtc: Rewrite clock outputs as a list
dt-bindings: rtc: sun6i-rtc: Add compatible strings for pre-H6
variants
dt-bindings: rtc: sun6i-rtc: Deprecate external clock output for A31
dt-bindings: rtc: sun6i-rtc: Export internal RC oscillator
rtc: sun6i: Add default clock name for LOSC
rtc: sun6i: Add support for different variants
rtc: sun6i: Add support for all known pre-H6 variants
rtc: sun6i: Expose internal oscillator through device tree
ARM: dts: sun8i: a23/a33: Fix up RTC device node
ARM: dts: sunxi: h3/h5: Add clock accuracy for external oscillators
ARM: dts: sunxi: h3/h5: Fix up RTC device node and clock references
ARM: dts: sun8i: r40: Add clock accuracy for external oscillators
ARM: dts: sun8i: r40: Add RTC device node
arm64: dts: allwinner: a64: Fix up RTC device node and clock
references
.../devicetree/bindings/rtc/sun6i-rtc.txt | 31 ++++-
arch/arm/boot/dts/sun8i-a23-a33.dtsi | 6 +-
arch/arm/boot/dts/sun8i-h3.dtsi | 4 +
arch/arm/boot/dts/sun8i-r40.dtsi | 18 ++-
arch/arm/boot/dts/sunxi-h3-h5.dtsi | 28 ++--
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 22 +---
arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 4 +
drivers/rtc/rtc-sun6i.c | 121 ++++++++++++++++--
8 files changed, 182 insertions(+), 52 deletions(-)
--
2.20.0.rc1
next 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 Chen-Yu Tsai [this message]
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 ` [PATCH v2 08/14] rtc: sun6i: Expose internal oscillator through device tree Chen-Yu Tsai
2018-12-04 9:17 ` 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-1-wens@csie.org \
--to=wens@csie.org \
--cc=a.zummo@towertech.it \
--cc=alexandre.belloni@bootlin.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).