From: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
To: Mike Turquette
<mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Maxime Ripard
<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Emilio Lopez <emilio-0Z03zUJReD5OxF6Tv1QG9Q@public.gmane.org>,
Vinod Koul <vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Dan Williams
<dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Grant Likely
<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH 0/7] clk: sun6i: Unify AHB1 clock and fix rate calculation
Date: Sat, 6 Sep 2014 18:47:21 +0800 [thread overview]
Message-ID: <1410000448-9999-1-git-send-email-wens@csie.org> (raw)
Hi everyone,
This series unifies the mux and divider parts of the AHB1 clock found
on sun6i and sun8i, while also adding support for the pre-divider on
the PLL6 input.
The rate calculation logic must factor in which parent it is using to
calculate the rate, to decide whether to use the pre-divider or not.
This is beyond the original factors clk design in sunxi. To avoid
feature bloat, this is implemented as a seperate composite clk.
The new clock driver is registered with a separate OF_CLK_DECLARE.
This is done so that assigned-clocks* properties on the clk provider
node can actually work. The clock framework arranges the clock setup
order by checking whether all clock parents are available, by checking
the node matching OF_CLK_DECLARE.
However, the sunxi clk driver is based on the root node compatible,
has no defined dependencies (parents), and is setup before the fixed-rate
clocks. Thus when the ahb1 clock is added, all parents have rate = 0.
There is no way to calculate the required clock factors to set a default
clock rate under these circumstances. This happens when we set the
defaults in the clock node (provider), rather than a clock consumer.
I can think of 2 ways to solve the dependency issue, but neither is
pretty. One would be to move the root fixed-rate clocks into the sunxi
clk driver. The other would be separating all the clocks into individual
OF_CLK_DECLARE statements, which adds a lot of boilerplate code.
The contents of this series are as follows:
Patch 1 adds support for a fixed divider on the output of factor clocks,
which is used by the next patch.
Patch 2 fixes PLL6 rate calculation error, due to one of the factor values
starting from 1, instead of 0. It also adds the /2 divider on the output.
Patch 3 adds the unified AHB1 clock driver.
Patch 4 and 5 unify the AHB1 clock nodes on sun6i and sun8i respectively.
Patch 6 sets the default parent and clock rate for AHB1, as required by
the DMA controller. Curiously I did not require this when I tried dmatest
on my A31 Hummingbird.
Patch 7 removes the clk_set_parent calls from the sun6i-dma driver, as
it no longer works, and is replaced by the previous patch.
Suggestions are more than welcome.
Cheers
ChenYu
Chen-Yu Tsai (7):
clk: sunxi: Add post clk divider for factor clocks
clk: sunxi: Fix PLL6 calculation on sun6i
clk: sunxi: unify sun6i AHB1 clock with proper PLL6 pre-divider
ARM: dts: sun8i: Unify ahb1 clock nodes
ARM: dts: sun6i: Unify ahb1 clock nodes
ARM: dts: sun6i: Add required ahb1 clock parent and rates for dma
controller
dmaengine: sun6i: Remove obsolete clk muxing code
Documentation/devicetree/bindings/clock/sunxi.txt | 2 +-
arch/arm/boot/dts/sun6i-a31.dtsi | 17 +-
arch/arm/boot/dts/sun8i-a23.dtsi | 12 +-
drivers/clk/sunxi/clk-factors.c | 3 +
drivers/clk/sunxi/clk-factors.h | 1 +
drivers/clk/sunxi/clk-sunxi.c | 215 +++++++++++++++++++++-
drivers/dma/sun6i-dma.c | 23 ---
7 files changed, 227 insertions(+), 46 deletions(-)
--
2.1.0
next reply other threads:[~2014-09-06 10:47 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-06 10:47 Chen-Yu Tsai [this message]
[not found] ` <1410000448-9999-1-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-09-06 10:47 ` [PATCH 1/7] clk: sunxi: Add post clk divider for factor clocks Chen-Yu Tsai
[not found] ` <1410000448-9999-2-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-09-11 20:36 ` Maxime Ripard
2014-09-13 14:43 ` Emilio López
[not found] ` <54145822.4020607-0Z03zUJReD5OxF6Tv1QG9Q@public.gmane.org>
2014-09-16 8:11 ` Chen-Yu Tsai
2014-09-16 15:57 ` Maxime Ripard
2014-09-24 15:35 ` Chen-Yu Tsai
[not found] ` <CAGb2v64o-7La6Sd_WVDrPQC0DUTqXZPZoG7u=OpXb+xRB1tcog-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-27 7:07 ` Maxime Ripard
2014-09-27 7:23 ` Chen-Yu Tsai
2014-09-06 10:47 ` [PATCH 2/7] clk: sunxi: Fix PLL6 calculation on sun6i Chen-Yu Tsai
[not found] ` <1410000448-9999-3-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-09-11 20:38 ` Maxime Ripard
2014-09-06 10:47 ` [PATCH 3/7] clk: sunxi: unify sun6i AHB1 clock with proper PLL6 pre-divider Chen-Yu Tsai
[not found] ` <1410000448-9999-4-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-09-11 21:02 ` Maxime Ripard
2014-09-12 3:16 ` Chen-Yu Tsai
[not found] ` <CAGb2v66L36nsoucSgLY8pV8f=wjKTvtjJby43Z=Ct+NiRonptQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-13 10:26 ` Maxime Ripard
2014-09-25 23:03 ` Mike Turquette
2014-09-26 8:28 ` Maxime Ripard
2014-09-06 10:47 ` [PATCH 4/7] ARM: dts: sun8i: Unify ahb1 clock nodes Chen-Yu Tsai
2014-09-06 10:47 ` [PATCH 5/7] ARM: dts: sun6i: " Chen-Yu Tsai
2014-09-06 10:47 ` [PATCH 6/7] ARM: dts: sun6i: Add required ahb1 clock parent and rates for dma controller Chen-Yu Tsai
[not found] ` <1410000448-9999-7-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-09-11 21:15 ` Maxime Ripard
2014-09-12 2:10 ` Chen-Yu Tsai
[not found] ` <CAGb2v64+RxJ52DzawhAtYCn=sw+28e4Q11jzG02KQE=8hxa0tQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-16 15:48 ` Maxime Ripard
2014-09-16 16:01 ` Chen-Yu Tsai
[not found] ` <CAGb2v64BLvB3v8Wnep5Fqh1COTXYJ5_uyeuevejqD-KpYiptQg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-20 9:59 ` Maxime Ripard
2014-09-21 8:31 ` Chen-Yu Tsai
[not found] ` <CAGb2v67cf+UQW2Sp=vS1jSu1jCAgG-wXz8cvh7K4RM4zhJgjkA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-25 13:41 ` Maxime Ripard
2014-09-06 10:47 ` [PATCH 7/7] dmaengine: sun6i: Remove obsolete clk muxing code Chen-Yu Tsai
[not found] ` <1410000448-9999-8-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-09-11 21:16 ` Maxime Ripard
2014-09-24 5:10 ` Vinod Koul
2014-09-11 20:36 ` [PATCH 0/7] clk: sun6i: Unify AHB1 clock and fix rate calculation Maxime Ripard
2014-09-26 0:25 ` Mike Turquette
2014-09-26 0:55 ` Chen-Yu Tsai
2014-09-26 18:53 ` Mike Turquette
2014-10-09 3:16 ` Chen-Yu Tsai
[not found] ` <CAGb2v65KDOmwHAgFT6Gx8mtKTGEEYfbx6UVhz74V15J1O4odjg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-10-13 10:39 ` Maxime Ripard
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=1410000448-9999-1-git-send-email-wens@csie.org \
--to=wens-jday2fn1rrm@public.gmane.org \
--cc=dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=emilio-0Z03zUJReD5OxF6Tv1QG9Q@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@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=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=vinod.koul-ral2JQCrhuEAvxtiuMwx3w@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).