From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Boris BREZILLON <b.brezillon@overkiz.com>,
Rob Herring <rob.herring@calxeda.com>,
Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Stephen Warren <swarren@wwwdotorg.org>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Rob Landley <rob@landley.net>, Andrew Victor <linux@maxim.org.za>,
Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
Russell King <linux@arm.linux.org.uk>,
"Mike Turquette" <mturquette@linaro.org>,
Felipe Balbi <balbi@ti.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
Grant Likely <grant.likely@linaro.org>,
Ludovic Desroches <ludovic.desroches@atmel.com>,
Josh Wu <josh.wu@atmel.com>,
Richard Genoud <richard.genoud@gmail.com>
Cc: <devicetree@vger.kernel.org>, <linux-doc@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-usb@vger.kernel.org>
Subject: Re: [PATCH v4 02/17] ARM: at91: add Kconfig options for common clk support
Date: Wed, 16 Oct 2013 17:33:07 +0200 [thread overview]
Message-ID: <525EB1B3.8070309@atmel.com> (raw)
In-Reply-To: <1381477081-6041-3-git-send-email-b.brezillon@overkiz.com>
On 11/10/2013 09:37, Boris BREZILLON :
> This patch adds the following Kconfig options to prepare the transition to
> common clk framework:
>
> - AT91_USE_OLD_CLK: this option is selected by every SoC which does not
> support new at91 clks based on common clk framework (SoC which does not
> define the clock tree in its device tree).
> This options is also selected when the user choose non dt boards support
> (new at91 clks can only be registered from a device tree definition).
>
> - COMMON_CLK_AT91: this option cannot be selected directly. Instead it is
> enabled if these 3 conditions are met:
> * at least one of the selected SoCs have a PMC (Power Management
> Controller) Unit
> * device tree support is enabled
> * the old at91 clk implementation is disabled (every selected SoC define
> its clks in its device tree and non dt boards support is disabled)
>
> - OLD_CLK_AT91: this option cannot be selected directly. Instead it is
> enabled if these 2 conditions are met:
> * at least one of the selected SoCs have a PMC (Power Management
> Controller) Unit
> * at least one of the selected SoCs does not define its clks in its
> device tree or non dt-boards support is enabled
>
> This patch selects AT91_USE_OLD_CLK in all currently supported SoCs. These
> selects will be removed after clk definitions are properly added in each
> soc's device tree.
> It also selects AT91_USE_OLD_CLK in all non-dt boards support.
>
> AT91_PMC_UNIT references are replaced by OLD_CLK_AT91, because PMC Unit is
> enabled for both old and common clk implementations, and old clk
> implementation should not be compiled if COMMON_CLK is enabled.
>
> To avoid future link errors, a new stub is created for at91_dt_clock_init
> function if OLD_CLK_AT91 is disabled.
>
> A new check is added in dt init functions (setup.c) to prepare for SoCs
> supporting new clk implementation. These SoCs won't setup the
> register_clocks callback (clk registration is done using of_clk_init).
>
> Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
It seems that all cases are covered for a smooth transition to common
clock framework.
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Thanks
> ---
> arch/arm/mach-at91/Kconfig | 21 +++++++++++++++++++++
> arch/arm/mach-at91/Kconfig.non_dt | 6 ++++++
> arch/arm/mach-at91/Makefile | 2 +-
> arch/arm/mach-at91/generic.h | 3 ++-
> arch/arm/mach-at91/setup.c | 6 ++++--
> 5 files changed, 34 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
> index 699b71e..85b53a4 100644
> --- a/arch/arm/mach-at91/Kconfig
> +++ b/arch/arm/mach-at91/Kconfig
> @@ -6,10 +6,22 @@ config HAVE_AT91_DBGU0
> config HAVE_AT91_DBGU1
> bool
>
> +config AT91_USE_OLD_CLK
> + bool
> +
> config AT91_PMC_UNIT
> bool
> default !ARCH_AT91X40
>
> +config COMMON_CLK_AT91
> + bool
> + default AT91_PMC_UNIT && USE_OF && !AT91_USE_OLD_CLK
> + select COMMON_CLK
> +
> +config OLD_CLK_AT91
> + bool
> + default AT91_PMC_UNIT && AT91_USE_OLD_CLK
> +
> config AT91_SAM9_ALT_RESET
> bool
> default !ARCH_AT91X40
> @@ -65,6 +77,7 @@ config SOC_SAMA5D3
> select SOC_SAMA5
> select HAVE_FB_ATMEL
> select HAVE_AT91_DBGU1
> + select AT91_USE_OLD_CLK
> help
> Select this if you are using one of Atmel's SAMA5D3 family SoC.
> This support covers SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35.
> @@ -78,11 +91,13 @@ config SOC_AT91RM9200
> select HAVE_AT91_DBGU0
> select MULTI_IRQ_HANDLER
> select SPARSE_IRQ
> + select AT91_USE_OLD_CLK
>
> config SOC_AT91SAM9260
> bool "AT91SAM9260, AT91SAM9XE or AT91SAM9G20"
> select HAVE_AT91_DBGU0
> select SOC_AT91SAM9
> + select AT91_USE_OLD_CLK
> help
> Select this if you are using one of Atmel's AT91SAM9260, AT91SAM9XE
> or AT91SAM9G20 SoC.
> @@ -92,6 +107,7 @@ config SOC_AT91SAM9261
> select HAVE_AT91_DBGU0
> select HAVE_FB_ATMEL
> select SOC_AT91SAM9
> + select AT91_USE_OLD_CLK
> help
> Select this if you are using one of Atmel's AT91SAM9261 or AT91SAM9G10 SoC.
>
> @@ -100,18 +116,21 @@ config SOC_AT91SAM9263
> select HAVE_AT91_DBGU1
> select HAVE_FB_ATMEL
> select SOC_AT91SAM9
> + select AT91_USE_OLD_CLK
>
> config SOC_AT91SAM9RL
> bool "AT91SAM9RL"
> select HAVE_AT91_DBGU0
> select HAVE_FB_ATMEL
> select SOC_AT91SAM9
> + select AT91_USE_OLD_CLK
>
> config SOC_AT91SAM9G45
> bool "AT91SAM9G45 or AT91SAM9M10 families"
> select HAVE_AT91_DBGU1
> select HAVE_FB_ATMEL
> select SOC_AT91SAM9
> + select AT91_USE_OLD_CLK
> help
> Select this if you are using one of Atmel's AT91SAM9G45 family SoC.
> This support covers AT91SAM9G45, AT91SAM9G46, AT91SAM9M10 and AT91SAM9M11.
> @@ -121,6 +140,7 @@ config SOC_AT91SAM9X5
> select HAVE_AT91_DBGU0
> select HAVE_FB_ATMEL
> select SOC_AT91SAM9
> + select AT91_USE_OLD_CLK
> help
> Select this if you are using one of Atmel's AT91SAM9x5 family SoC.
> This means that your SAM9 name finishes with a '5' (except if it is
> @@ -133,6 +153,7 @@ config SOC_AT91SAM9N12
> select HAVE_AT91_DBGU0
> select HAVE_FB_ATMEL
> select SOC_AT91SAM9
> + select AT91_USE_OLD_CLK
> help
> Select this if you are using Atmel's AT91SAM9N12 SoC.
>
> diff --git a/arch/arm/mach-at91/Kconfig.non_dt b/arch/arm/mach-at91/Kconfig.non_dt
> index ca900be..b736b57 100644
> --- a/arch/arm/mach-at91/Kconfig.non_dt
> +++ b/arch/arm/mach-at91/Kconfig.non_dt
> @@ -12,26 +12,32 @@ config ARCH_AT91_NONE
> config ARCH_AT91RM9200
> bool "AT91RM9200"
> select SOC_AT91RM9200
> + select AT91_USE_OLD_CLK
>
> config ARCH_AT91SAM9260
> bool "AT91SAM9260 or AT91SAM9XE or AT91SAM9G20"
> select SOC_AT91SAM9260
> + select AT91_USE_OLD_CLK
>
> config ARCH_AT91SAM9261
> bool "AT91SAM9261 or AT91SAM9G10"
> select SOC_AT91SAM9261
> + select AT91_USE_OLD_CLK
>
> config ARCH_AT91SAM9263
> bool "AT91SAM9263"
> select SOC_AT91SAM9263
> + select AT91_USE_OLD_CLK
>
> config ARCH_AT91SAM9RL
> bool "AT91SAM9RL"
> select SOC_AT91SAM9RL
> + select AT91_USE_OLD_CLK
>
> config ARCH_AT91SAM9G45
> bool "AT91SAM9G45"
> select SOC_AT91SAM9G45
> + select AT91_USE_OLD_CLK
>
> config ARCH_AT91X40
> bool "AT91x40"
> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
> index 3b0a953..8539411 100644
> --- a/arch/arm/mach-at91/Makefile
> +++ b/arch/arm/mach-at91/Makefile
> @@ -7,7 +7,7 @@ obj-m :=
> obj-n :=
> obj- :=
>
> -obj-$(CONFIG_AT91_PMC_UNIT) += clock.o
> +obj-$(CONFIG_OLD_CLK_AT91) += clock.o
> obj-$(CONFIG_AT91_SAM9_ALT_RESET) += at91sam9_alt_reset.o
> obj-$(CONFIG_AT91_SAM9G45_RESET) += at91sam9g45_reset.o
> obj-$(CONFIG_AT91_SAM9_TIME) += at91sam926x_time.o
> diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
> index dc6e2f5..375c42e 100644
> --- a/arch/arm/mach-at91/generic.h
> +++ b/arch/arm/mach-at91/generic.h
> @@ -44,11 +44,12 @@ extern void at91sam926x_pit_init(void);
> extern void at91x40_timer_init(void);
>
> /* Clocks */
> -#ifdef CONFIG_AT91_PMC_UNIT
> +#ifdef CONFIG_OLD_CLK_AT91
> extern int __init at91_clock_init(unsigned long main_clock);
> extern int __init at91_dt_clock_init(void);
> #else
> static int inline at91_clock_init(unsigned long main_clock) { return 0; }
> +static int inline at91_dt_clock_init(void) { return 0; }
> #endif
> struct device;
>
> diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c
> index 41aa68b..06052fc 100644
> --- a/arch/arm/mach-at91/setup.c
> +++ b/arch/arm/mach-at91/setup.c
> @@ -483,7 +483,8 @@ void __init at91rm9200_dt_initialize(void)
> at91_dt_clock_init();
>
> /* Register the processor-specific clocks */
> - at91_boot_soc.register_clocks();
> + if (at91_boot_soc.register_clocks)
> + at91_boot_soc.register_clocks();
>
> at91_boot_soc.init();
> }
> @@ -498,7 +499,8 @@ void __init at91_dt_initialize(void)
> at91_dt_clock_init();
>
> /* Register the processor-specific clocks */
> - at91_boot_soc.register_clocks();
> + if (at91_boot_soc.register_clocks)
> + at91_boot_soc.register_clocks();
>
> if (at91_boot_soc.init)
> at91_boot_soc.init();
>
--
Nicolas Ferre
next prev parent reply other threads:[~2013-10-16 15:33 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-11 7:37 [PATCH v4 00/17] ARM: at91: move to common clk framework Boris BREZILLON
2013-10-11 7:37 ` [PATCH v4 01/17] ARM: at91: move at91_pmc.h to include/linux/clk/at91_pmc.h Boris BREZILLON
2013-10-11 16:05 ` Felipe Balbi
2013-10-16 15:29 ` Nicolas Ferre
2013-10-11 7:37 ` [PATCH v4 02/17] ARM: at91: add Kconfig options for common clk support Boris BREZILLON
2013-10-16 15:33 ` Nicolas Ferre [this message]
2013-10-11 7:37 ` [PATCH v4 03/17] clk: at91: add PMC base support Boris BREZILLON
2013-10-17 15:46 ` Nicolas Ferre
2013-10-11 8:41 ` [PATCH v4 04/17] clk: at91: add PMC macro file for dt definitions Boris BREZILLON
2013-10-17 15:47 ` Nicolas Ferre
2013-10-11 8:44 ` [PATCH v4 05/17] clk: at91: add PMC main clock Boris BREZILLON
2013-10-17 15:58 ` Nicolas Ferre
2013-10-11 8:48 ` [PATCH v4 06/17] clk: at91: add PMC pll clocks Boris BREZILLON
2013-10-17 15:59 ` Nicolas Ferre
2013-10-11 8:51 ` [PATCH v4 07/17] clk: at91: add PMC master clock Boris BREZILLON
2013-10-17 15:59 ` Nicolas Ferre
2013-10-11 9:41 ` [PATCH v4 08/17] clk: at91: add PMC system clocks Boris BREZILLON
2013-10-17 15:59 ` Nicolas Ferre
2013-10-11 9:44 ` [PATCH v4 09/17] clk: at91: add PMC peripheral clocks Boris BREZILLON
2013-10-17 16:02 ` Nicolas Ferre
2013-10-11 9:53 ` [PATCH v4 10/17] clk: at91: add peripheral clk macros for peripheral clk dt bindings Boris BREZILLON
2013-10-17 16:03 ` Nicolas Ferre
2013-10-11 9:57 ` [PATCH v4 11/17] clk: at91: add PMC programmable clocks Boris BREZILLON
2013-10-17 16:08 ` Nicolas Ferre
2013-10-11 10:22 ` [PATCH v4 12/17] clk: at91: add PMC utmi clock Boris BREZILLON
2013-10-17 16:10 ` Nicolas Ferre
2013-10-11 11:15 ` [PATCH v4 13/17] clk: at91: add PMC usb clock Boris BREZILLON
2013-10-17 16:18 ` Nicolas Ferre
2013-10-11 11:27 ` [PATCH v4 14/17] clk: at91: add PMC smd clock Boris BREZILLON
2013-10-17 16:27 ` Nicolas Ferre
2013-10-17 16:55 ` [PATCH v5 13/17] clk: at91: add PMC usb clock Boris BREZILLON
2013-10-18 7:53 ` Nicolas Ferre
2013-10-11 11:38 ` [PATCH v4 15/17] clk: at91: add PMC clk device tree binding doc Boris BREZILLON
2013-10-17 16:37 ` Nicolas Ferre
2013-10-11 11:46 ` [PATCH v4 16/17] ARM: at91: move pit timer to common clk framework Boris BREZILLON
2013-10-11 11:49 ` [PATCH v4 17/17] ARM: at91: add new compatible strings for pmc driver Boris BREZILLON
2013-10-18 8:18 ` [PATCH v4 00/17] ARM: at91: move to common clk framework Nicolas Ferre
2013-11-07 23:29 ` Mike Turquette
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=525EB1B3.8070309@atmel.com \
--to=nicolas.ferre@atmel.com \
--cc=b.brezillon@overkiz.com \
--cc=balbi@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=grant.likely@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=josh.wu@atmel.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=linux@maxim.org.za \
--cc=ludovic.desroches@atmel.com \
--cc=mark.rutland@arm.com \
--cc=mturquette@linaro.org \
--cc=pawel.moll@arm.com \
--cc=plagnioj@jcrosoft.com \
--cc=richard.genoud@gmail.com \
--cc=rob.herring@calxeda.com \
--cc=rob@landley.net \
--cc=swarren@wwwdotorg.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).