All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Abraham <thomas.abraham@linaro.org>
To: Tomasz Figa <tomasz.figa@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org,
	devicetree-discuss@lists.ozlabs.org, mturquette@ti.com,
	mturquette@linaro.org, kgene.kim@samsung.com, t.figa@samsung.com,
	sylvester.nawrocki@gmail.com
Subject: Re: [PATCH v3 07/11] ARM: Exynos4: allow legacy board support to specify xxti and xusbxti clock speed
Date: Thu, 15 Nov 2012 14:57:28 +0530	[thread overview]
Message-ID: <CAJuYYwQR5Rwvj4CV9G5J_GSbQfkgZu2stEx9fsL_G=A4qiBy=A@mail.gmail.com> (raw)
In-Reply-To: <7438966.1DHnOH3JLs@flatron>

On 15 November 2012 05:06, Tomasz Figa <tomasz.figa@gmail.com> wrote:
> On Thursday 15 of November 2012 03:37:29 Thomas Abraham wrote:
>> The clock speed of xxti and xusbxti clocks depends on the oscillator
>> used on the board to generate these clocks. For non-dt platforms, allow
>> the board support for those platforms to set the clock frequency of
>> xxti and xusbxti clocks.
>>
>> Cc: Kukjin Kim <kgene.kim@samsung.com>
>> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
>> ---
>>  arch/arm/mach-exynos/common.c              |    2 ++
>>  arch/arm/mach-exynos/common.h              |    1 +
>>  arch/arm/mach-exynos/mach-nuri.c           |    2 ++
>>  arch/arm/mach-exynos/mach-origen.c         |    2 ++
>>  arch/arm/mach-exynos/mach-smdkv310.c       |    2 ++
>>  arch/arm/mach-exynos/mach-universal_c210.c |    2 ++
>>  arch/arm/mach-exynos/mct.c                 |    1 +
>>  7 files changed, 12 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/mach-exynos/common.c
>> b/arch/arm/mach-exynos/common.c index 138a41d..64c0012 100644
>> --- a/arch/arm/mach-exynos/common.c
>> +++ b/arch/arm/mach-exynos/common.c
>> @@ -65,6 +65,8 @@ static void exynos5_init_clocks(int xtal);
>>  static void exynos4_init_uarts(struct s3c2410_uartcfg *cfg, int no);
>>  static int exynos_init(void);
>>
>> +unsigned long xxti_f = 0, xusbxti_f = 0;
>> +
>>  static struct cpu_table cpu_ids[] __initdata = {
>>       {
>>               .idcode         = EXYNOS4210_CPU_ID,
>> diff --git a/arch/arm/mach-exynos/common.h
>> b/arch/arm/mach-exynos/common.h index 2cacd48..f947789 100644
>> --- a/arch/arm/mach-exynos/common.h
>> +++ b/arch/arm/mach-exynos/common.h
>> @@ -22,6 +22,7 @@ void exynos4_restart(char mode, const char *cmd);
>>  void exynos5_restart(char mode, const char *cmd);
>>  void exynos_init_late(void);
>>
>> +extern unsigned long xxti_f, xusbxti_f;
>>  void exynos4_clk_init(void);
>>  void exynos4_clk_register_fixed_ext(unsigned long, unsigned long);
>>
>> diff --git a/arch/arm/mach-exynos/mach-nuri.c
>> b/arch/arm/mach-exynos/mach-nuri.c index 5b5c941..e14332c 100644
>> --- a/arch/arm/mach-exynos/mach-nuri.c
>> +++ b/arch/arm/mach-exynos/mach-nuri.c
>> @@ -1332,6 +1332,8 @@ static void __init nuri_map_io(void)
>>  {
>>       exynos_init_io(NULL, 0);
>>       s3c24xx_init_uarts(nuri_uartcfgs, ARRAY_SIZE(nuri_uartcfgs));
>> +     xxti_f = 0;
>> +     xusbxti_f = 24000000;
>
> I don't like setting these variables directly from board code.
>
> If you didn't remove clock initialization call from board code, you could
> extend that function to take these two frequencies as arguments?

Right, but I was not in favour of changing the s3c24xx_init_clocks()
api since that would mean all board code calling this will require
updates. So I was contemplating of adding a new exynos4 specific api.
But then did not opt for it, knowing very well that it is just a
matter of time before we add dt support to existing non-dt exynos4
board files. So just to keep things functional for now, and not add to
much of non-dt stuff, I did this.

>
>>  }
>>
>>  static void __init nuri_reserve(void)
> [snip]
>> diff --git a/arch/arm/mach-exynos/mct.c b/arch/arm/mach-exynos/mct.c
>> index c2e806c..cd061b2 100644
>> --- a/arch/arm/mach-exynos/mct.c
>> +++ b/arch/arm/mach-exynos/mct.c
>> @@ -532,6 +532,7 @@ static void __init exynos4_timer_init(void)
>>               if (soc_is_exynos4210() || soc_is_exynos4212() ||
>>                               soc_is_exynos4412()) {
>>                       exynos4_clk_init();
>> +                     exynos4_clk_register_fixed_ext(xxti_f, xusbxti_f);
>
> I don't like registering clocks from unrelated code. IMHO any clock
> registration should be done from code in drivers/clk/samsung.

Ok. I will check for other alternatives.

Thanks,
Thomas.

WARNING: multiple messages have this Message-ID (diff)
From: thomas.abraham@linaro.org (Thomas Abraham)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 07/11] ARM: Exynos4: allow legacy board support to specify xxti and xusbxti clock speed
Date: Thu, 15 Nov 2012 14:57:28 +0530	[thread overview]
Message-ID: <CAJuYYwQR5Rwvj4CV9G5J_GSbQfkgZu2stEx9fsL_G=A4qiBy=A@mail.gmail.com> (raw)
In-Reply-To: <7438966.1DHnOH3JLs@flatron>

On 15 November 2012 05:06, Tomasz Figa <tomasz.figa@gmail.com> wrote:
> On Thursday 15 of November 2012 03:37:29 Thomas Abraham wrote:
>> The clock speed of xxti and xusbxti clocks depends on the oscillator
>> used on the board to generate these clocks. For non-dt platforms, allow
>> the board support for those platforms to set the clock frequency of
>> xxti and xusbxti clocks.
>>
>> Cc: Kukjin Kim <kgene.kim@samsung.com>
>> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
>> ---
>>  arch/arm/mach-exynos/common.c              |    2 ++
>>  arch/arm/mach-exynos/common.h              |    1 +
>>  arch/arm/mach-exynos/mach-nuri.c           |    2 ++
>>  arch/arm/mach-exynos/mach-origen.c         |    2 ++
>>  arch/arm/mach-exynos/mach-smdkv310.c       |    2 ++
>>  arch/arm/mach-exynos/mach-universal_c210.c |    2 ++
>>  arch/arm/mach-exynos/mct.c                 |    1 +
>>  7 files changed, 12 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/mach-exynos/common.c
>> b/arch/arm/mach-exynos/common.c index 138a41d..64c0012 100644
>> --- a/arch/arm/mach-exynos/common.c
>> +++ b/arch/arm/mach-exynos/common.c
>> @@ -65,6 +65,8 @@ static void exynos5_init_clocks(int xtal);
>>  static void exynos4_init_uarts(struct s3c2410_uartcfg *cfg, int no);
>>  static int exynos_init(void);
>>
>> +unsigned long xxti_f = 0, xusbxti_f = 0;
>> +
>>  static struct cpu_table cpu_ids[] __initdata = {
>>       {
>>               .idcode         = EXYNOS4210_CPU_ID,
>> diff --git a/arch/arm/mach-exynos/common.h
>> b/arch/arm/mach-exynos/common.h index 2cacd48..f947789 100644
>> --- a/arch/arm/mach-exynos/common.h
>> +++ b/arch/arm/mach-exynos/common.h
>> @@ -22,6 +22,7 @@ void exynos4_restart(char mode, const char *cmd);
>>  void exynos5_restart(char mode, const char *cmd);
>>  void exynos_init_late(void);
>>
>> +extern unsigned long xxti_f, xusbxti_f;
>>  void exynos4_clk_init(void);
>>  void exynos4_clk_register_fixed_ext(unsigned long, unsigned long);
>>
>> diff --git a/arch/arm/mach-exynos/mach-nuri.c
>> b/arch/arm/mach-exynos/mach-nuri.c index 5b5c941..e14332c 100644
>> --- a/arch/arm/mach-exynos/mach-nuri.c
>> +++ b/arch/arm/mach-exynos/mach-nuri.c
>> @@ -1332,6 +1332,8 @@ static void __init nuri_map_io(void)
>>  {
>>       exynos_init_io(NULL, 0);
>>       s3c24xx_init_uarts(nuri_uartcfgs, ARRAY_SIZE(nuri_uartcfgs));
>> +     xxti_f = 0;
>> +     xusbxti_f = 24000000;
>
> I don't like setting these variables directly from board code.
>
> If you didn't remove clock initialization call from board code, you could
> extend that function to take these two frequencies as arguments?

Right, but I was not in favour of changing the s3c24xx_init_clocks()
api since that would mean all board code calling this will require
updates. So I was contemplating of adding a new exynos4 specific api.
But then did not opt for it, knowing very well that it is just a
matter of time before we add dt support to existing non-dt exynos4
board files. So just to keep things functional for now, and not add to
much of non-dt stuff, I did this.

>
>>  }
>>
>>  static void __init nuri_reserve(void)
> [snip]
>> diff --git a/arch/arm/mach-exynos/mct.c b/arch/arm/mach-exynos/mct.c
>> index c2e806c..cd061b2 100644
>> --- a/arch/arm/mach-exynos/mct.c
>> +++ b/arch/arm/mach-exynos/mct.c
>> @@ -532,6 +532,7 @@ static void __init exynos4_timer_init(void)
>>               if (soc_is_exynos4210() || soc_is_exynos4212() ||
>>                               soc_is_exynos4412()) {
>>                       exynos4_clk_init();
>> +                     exynos4_clk_register_fixed_ext(xxti_f, xusbxti_f);
>
> I don't like registering clocks from unrelated code. IMHO any clock
> registration should be done from code in drivers/clk/samsung.

Ok. I will check for other alternatives.

Thanks,
Thomas.

  reply	other threads:[~2012-11-15  9:27 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-14 22:07 [PATCH v3 00/11] clk: exynos4: migrate to common clock framework Thomas Abraham
2012-11-14 22:07 ` Thomas Abraham
2012-11-14 22:07 ` [PATCH v3 01/11] clk: samsung: add common clock framework helper functions for Samsung platforms Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 23:12   ` Tomasz Figa
2012-11-14 23:12     ` Tomasz Figa
2012-11-15  8:33     ` Thomas Abraham
2012-11-15  8:33       ` Thomas Abraham
2012-11-15 10:25       ` Tomasz Figa
2012-11-15 10:25         ` Tomasz Figa
2012-11-14 22:07 ` [PATCH v3 02/11] clk: samsung: add pll clock registration helper functions Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 22:07 ` [PATCH v3 03/11] clk: exynos4: register clocks using common clock framework Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 23:24   ` Tomasz Figa
2012-11-14 23:24     ` Tomasz Figa
2012-11-15  8:38     ` Thomas Abraham
2012-11-15  8:38       ` Thomas Abraham
2012-11-14 22:07 ` [PATCH v3 04/11] ARM: Exynos4: Migrate clock support to " Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 23:31   ` Tomasz Figa
2012-11-14 23:31     ` Tomasz Figa
2012-11-15  9:13     ` Thomas Abraham
2012-11-15  9:13       ` Thomas Abraham
2012-11-15 10:42       ` Tomasz Figa
2012-11-15 10:42         ` Tomasz Figa
2012-11-14 22:07 ` [PATCH v3 05/11] ARM: dts: add exynos4 clock controller nodes Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 23:27   ` Tomasz Figa
2012-11-14 23:27     ` Tomasz Figa
2012-11-15  8:58     ` Thomas Abraham
2012-11-15  8:58       ` Thomas Abraham
2012-11-14 22:07 ` [PATCH v3 06/11] ARM: dts: add xxti and xusbxti fixed rate clock nodes for exynos4 based platforms Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 22:07 ` [PATCH v3 07/11] ARM: Exynos4: allow legacy board support to specify xxti and xusbxti clock speed Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 23:36   ` Tomasz Figa
2012-11-14 23:36     ` Tomasz Figa
2012-11-15  9:27     ` Thomas Abraham [this message]
2012-11-15  9:27       ` Thomas Abraham
2012-11-14 22:07 ` [PATCH v3 08/11] ARM: dts: add clock provider information for all controllers in Exynos4 SoC Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 22:07 ` [PATCH v3 09/11] ARM: Exynos4: remove auxdata table from machine file Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 22:07 ` [PATCH v3 10/11] ARM: Exynos: use fin_pll clock as the tick clock source for mct Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham
2012-11-14 22:07 ` [PATCH v3 11/11] ARM: Exynos: add support for mct clock setup Thomas Abraham
2012-11-14 22:07   ` Thomas Abraham

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='CAJuYYwQR5Rwvj4CV9G5J_GSbQfkgZu2stEx9fsL_G=A4qiBy=A@mail.gmail.com' \
    --to=thomas.abraham@linaro.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=kgene.kim@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=mturquette@linaro.org \
    --cc=mturquette@ti.com \
    --cc=sylvester.nawrocki@gmail.com \
    --cc=t.figa@samsung.com \
    --cc=tomasz.figa@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.