devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Boris BREZILLON <b.brezillon@overkiz.com>,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <rob.herring@calxeda.com>,
	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>,
	Ludovic Desroches <ludovic.desroches@atmel.com>,
	Josh Wu <josh.wu@atmel.com>,
	Richard Genoud <richard.genoud@gmail.com>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 02/19] ARM: at91: add Kconfig options for common clk support
Date: Mon, 7 Oct 2013 17:12:56 +0200	[thread overview]
Message-ID: <5252CF78.2070509@atmel.com> (raw)
In-Reply-To: <1375938174-3926-1-git-send-email-b.brezillon@overkiz.com>

On 08/08/2013 07:02, 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

I would have prefered to keep "AT91" as a prefix => "AT91_COMMON_CLK"
But it is not so important.

>    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

Here also.

>    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>
> ---
>   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

  parent reply	other threads:[~2013-10-07 15:12 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1375937608-3773-1-git-send-email-b.brezillon@overkiz.com>
     [not found] ` <1375938066-3889-1-git-send-email-b.brezillon@overkiz.com>
2013-10-07 15:07   ` [PATCH v3 03/19] clk: at91: add PMC base support Nicolas Ferre
2013-10-07 15:57     ` boris brezillon
     [not found] ` <1375938174-3926-1-git-send-email-b.brezillon@overkiz.com>
2013-10-07 15:12   ` Nicolas Ferre [this message]
2013-10-07 16:05     ` [PATCH v3 02/19] ARM: at91: add Kconfig options for common clk support boris brezillon
2013-10-09  9:56     ` boris brezillon
2013-10-09 10:05       ` Nicolas Ferre
     [not found] ` <1375938270-3965-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375938270-3965-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-07 15:17     ` [PATCH v3 04/19] clk: at91: add PMC macro file for dt definitions Nicolas Ferre
     [not found]       ` <5252D0A5.60304-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2013-10-07 16:06         ` boris brezillon
     [not found] ` <1375938369-4002-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375938369-4002-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-07 16:51     ` [PATCH v3 05/19] clk: at91: add PMC main clock Nicolas Ferre
2013-10-07 19:11       ` boris brezillon
     [not found]         ` <52530744.60701-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08  8:24           ` Nicolas Ferre
     [not found]             ` <5253C142.2080808-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2013-10-08  9:00               ` boris brezillon
     [not found] ` <52134321.8000806@overkiz.com>
2013-10-07 20:06   ` [PATCH v3 00/19] ARM: at91: move to common clk framework Mike Turquette
     [not found] ` <1375946357-9775-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375946357-9775-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08  9:44     ` [PATCH v3 17/19] clk: at91: add PMC clk device tree binding doc Nicolas Ferre
     [not found]       ` <5253D3FA.5060602-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2013-10-08 12:37         ` boris brezillon
     [not found]           ` <5253FC90.1000808-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 12:42             ` Nicolas Ferre
     [not found] ` <1375942041-8843-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375942041-8843-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 10:28     ` [PATCH v3 06/19] clk: at91: add PMC pll clocks Nicolas Ferre
     [not found]       ` <5253DE3A.5090503-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2013-10-08 11:45         ` boris brezillon
     [not found] ` <1375942160-8881-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375942160-8881-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 10:30     ` [PATCH v3 07/19] clk: at91: add pll id macros for pll dt bindings Nicolas Ferre
2013-10-08 12:03       ` boris brezillon
     [not found] ` <1375942346-8966-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375942346-8966-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 15:32     ` [PATCH v3 09/19] clk: at91: add PMC system clocks Nicolas Ferre
     [not found] ` <1375942504-9010-1-git-send-email-b.brezillon@overkiz.com>
2013-10-08 15:36   ` [PATCH v3 10/19] ARM: at91/dt: add system clk id definitions in dt-bindings include dir Nicolas Ferre
     [not found] ` <1375942611-9048-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375942611-9048-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 15:43     ` [PATCH v3 11/19] clk: at91: add PMC peripheral clocks Nicolas Ferre
     [not found] ` <1375945839-9573-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375945839-9573-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 15:44     ` [PATCH v3 12/19] clk: at91: add peripheral clk macros for peripheral clk dt bindings Nicolas Ferre
2013-10-08 16:01       ` boris brezillon
     [not found]         ` <52542C4C.5080409-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 16:15           ` Nicolas Ferre
2013-10-08 16:19             ` boris brezillon
     [not found] ` <1375945938-9614-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375945938-9614-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 16:02     ` [PATCH v3 13/19] clk: at91: add PMC programmable clocks Nicolas Ferre
     [not found]       ` <52542CA9.2000105-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2013-10-08 16:06         ` Nicolas Ferre
     [not found] ` <1375946057-9651-1-git-send-email-b.brezillon@overkiz.com>
2013-10-08 16:08   ` [PATCH v3 14/19] clk: at91: add PMC utmi clock Nicolas Ferre
     [not found] ` <1375946153-9694-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375946153-9694-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 16:20     ` [PATCH v3 15/19] clk: at91: add PMC usb clock Nicolas Ferre
     [not found] ` <1375946243-9736-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375946243-9736-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 16:22     ` [PATCH v3 16/19] clk: at91: add PMC smd clock Nicolas Ferre
     [not found] ` <1375949844-10545-1-git-send-email-b.brezillon@overkiz.com>
2013-10-08 16:28   ` [PATCH v3 18/19] ARM: at91: move pit timer to common clk framework Nicolas Ferre
     [not found] ` <1375949965-10586-1-git-send-email-b.brezillon@overkiz.com>
     [not found]   ` <1375949965-10586-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-10-08 16:29     ` [PATCH v3 19/19] ARM: at91: add new compatible strings for pmc driver Nicolas Ferre

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=5252CF78.2070509@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=josh.wu@atmel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=linux@maxim.org.za \
    --cc=ludovic.desroches@atmel.com \
    --cc=mturquette@linaro.org \
    --cc=plagnioj@jcrosoft.com \
    --cc=richard.genoud@gmail.com \
    --cc=rob.herring@calxeda.com \
    --cc=rob@landley.net \
    /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).