From: maxime.ripard@free-electrons.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 02/13] clk: sunxi: Add mod0 and mmc module clock support for A80
Date: Wed, 14 Jan 2015 17:28:41 +0100 [thread overview]
Message-ID: <20150114162841.GW4891@lukather> (raw)
In-Reply-To: <1421113055-17867-3-git-send-email-wens@csie.org>
On Tue, Jan 13, 2015 at 09:37:24AM +0800, Chen-Yu Tsai wrote:
> The module 0 style clocks, or storage module clocks as named in the
> official SDK, are almost the same as the module 0 clocks on earlier
> Allwinner SoCs. The only difference is wider mux register bits.
>
> As with earlier Allwinner SoCs, mmc module clocks are a special case
> of mod0 clocks, with phase controls for 2 child clocks, output and
> sample.
>
> This patch adds support for both.
>
> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> ---
> Documentation/devicetree/bindings/clock/sunxi.txt | 7 +++--
> drivers/clk/sunxi/clk-mod0.c | 32 +++++++++++++++++++++++
> 2 files changed, 37 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
> index e4c42276c577..0dfd018ba47b 100644
> --- a/Documentation/devicetree/bindings/clock/sunxi.txt
> +++ b/Documentation/devicetree/bindings/clock/sunxi.txt
> @@ -56,7 +56,9 @@ Required properties:
> "allwinner,sun8i-a23-apb2-gates-clk" - for the APB2 gates on A23
> "allwinner,sun5i-a13-mbus-clk" - for the MBUS clock on A13
> "allwinner,sun4i-a10-mmc-clk" - for the MMC clock
> + "allwinner,sun9i-a80-mmc-clk" - for mmc module clocks on A80
> "allwinner,sun4i-a10-mod0-clk" - for the module 0 family of clocks
> + "allwinner,sun9i-a80-mod0-clk" - for module 0 (storage) clocks on A80
> "allwinner,sun8i-a23-mbus-clk" - for the MBUS clock on A23
> "allwinner,sun7i-a20-out-clk" - for the external output clocks
> "allwinner,sun7i-a20-gmac-clk" - for the GMAC clock module on A20/A31
> @@ -72,7 +74,8 @@ Required properties for all clocks:
> - #clock-cells : from common clock binding; shall be set to 0 except for
> the following compatibles where it shall be set to 1:
> "allwinner,*-gates-clk", "allwinner,sun4i-pll5-clk",
> - "allwinner,sun4i-pll6-clk", "allwinner,sun6i-a31-pll6-clk"
> + "allwinner,sun4i-pll6-clk", "allwinner,sun6i-a31-pll6-clk",
> + "allwinner,*-usb-clk", "allwinner,*-mmc-clk"
> - clock-output-names : shall be the corresponding names of the outputs.
> If the clock module only has one output, the name shall be the
> module name.
> @@ -94,7 +97,7 @@ For "allwinner,sun6i-a31-pll6-clk", there are 2 outputs. The first output
> is the normal PLL6 output, or "pll6". The second output is rate doubled
> PLL6, or "pll6x2".
>
> -The "allwinner,sun4i-a10-mmc-clk" has three different outputs: the
> +The "allwinner,*-mmc-clk" clocks have three different outputs: the
> main clock, with the ID 0, and the output and sample clocks, with the
> IDs 1 and 2, respectively.
>
> diff --git a/drivers/clk/sunxi/clk-mod0.c b/drivers/clk/sunxi/clk-mod0.c
> index 4430d1398ce6..99ff2c7cccf7 100644
> --- a/drivers/clk/sunxi/clk-mod0.c
> +++ b/drivers/clk/sunxi/clk-mod0.c
> @@ -130,6 +130,30 @@ static struct platform_driver sun4i_a10_mod0_clk_driver = {
> };
> module_platform_driver(sun4i_a10_mod0_clk_driver);
>
> +static const struct factors_data sun9i_a80_mod0_data __initconst = {
> + .enable = 31,
> + .mux = 24,
> + .muxmask = BIT(3) | BIT(2) | BIT(1) | BIT(0),
> + .table = &sun4i_a10_mod0_config,
> + .getter = sun4i_a10_get_mod0_factors,
> +};
> +
> +static void __init sun9i_a80_mod0_setup(struct device_node *node)
> +{
> + void __iomem *reg;
> +
> + reg = of_io_request_and_map(node, 0, of_node_full_name(node));
> + if (!reg) {
of_io_request_and_map returns an error pointer.
Looks good otherwise.
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150114/aff9db07/attachment-0001.sig>
next prev parent reply other threads:[~2015-01-14 16:28 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-13 1:37 [PATCH v3 00/13] ARM: sun9i: Enable MMC support on Allwinner A80 Chen-Yu Tsai
2015-01-13 1:37 ` [PATCH v3 01/13] clk: sunxi: Add a common setup function for mmc module clocks Chen-Yu Tsai
2015-01-14 16:26 ` Maxime Ripard
2015-01-13 1:37 ` [PATCH v3 02/13] clk: sunxi: Add mod0 and mmc module clock support for A80 Chen-Yu Tsai
2015-01-14 16:28 ` Maxime Ripard [this message]
2015-01-15 2:34 ` Chen-Yu Tsai
2015-01-13 1:37 ` [PATCH v3 03/13] ARM: dts: sun9i: Add mmc module clock nodes " Chen-Yu Tsai
2015-01-14 16:30 ` Maxime Ripard
2015-01-13 1:37 ` [PATCH v3 04/13] clk: sunxi: Add driver for A80 MMC config clocks/resets Chen-Yu Tsai
2015-01-14 16:37 ` Maxime Ripard
2015-01-15 2:29 ` Chen-Yu Tsai
2015-01-13 1:37 ` [PATCH v3 05/13] ARM: dts: sun9i: Add clock-indices property for bus gate clocks Chen-Yu Tsai
2015-01-14 16:33 ` Maxime Ripard
2015-01-15 2:24 ` Chen-Yu Tsai
2015-01-15 15:20 ` Maxime Ripard
2015-01-15 15:35 ` [linux-sunxi] " Chen-Yu Tsai
2015-01-15 15:51 ` Maxime Ripard
2015-01-15 16:09 ` Chen-Yu Tsai
2015-01-15 21:46 ` Maxime Ripard
2015-01-13 1:37 ` [PATCH v3 06/13] ARM: dts: sun9i: Add mmc config clock nodes Chen-Yu Tsai
2015-01-14 16:38 ` Maxime Ripard
2015-01-13 1:37 ` [PATCH v3 07/13] ARM: dts: sunxi: Use label to reference pio in sunxi-common-regulators Chen-Yu Tsai
2015-01-14 16:39 ` Maxime Ripard
2015-01-13 1:37 ` [PATCH v3 08/13] ARM: dts: sun9i: Add mmc controller nodes to the A80 dtsi Chen-Yu Tsai
2015-01-13 1:37 ` [PATCH v3 09/13] ARM: dts: sun9i: Add pinmux setting for mmc0 Chen-Yu Tsai
2015-01-14 16:40 ` Maxime Ripard
2015-01-13 1:37 ` [PATCH v3 10/13] ARM: dts: sun9i: Convert a80 optimus board dts to label referencing Chen-Yu Tsai
2015-01-13 1:37 ` [PATCH v3 11/13] ARM: dts: sun9i: Enable mmc0 on A80 Optimus Board Chen-Yu Tsai
2015-01-13 1:37 ` [PATCH v3 12/13] ARM: dts: sun9i: Add 8 bit mmc pinmux setting for mmc2 Chen-Yu Tsai
2015-01-13 1:37 ` [PATCH v3 13/13] ARM: dts: sun9i: Enable mmc2 on A80 Optimus Board 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=20150114162841.GW4891@lukather \
--to=maxime.ripard@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.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