From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Arnd Bergmann <arnd@arndb.de>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Alexander Dahl <ada@thorsis.com>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org
Subject: Re: [PATCH 03/12] misc: atmel_tclib: move definitions to header file
Date: Mon, 15 Apr 2019 16:22:23 +0200 [thread overview]
Message-ID: <20190415142223.GF3578@piout.net> (raw)
In-Reply-To: <63e25c2f-2e10-9c6e-9bfa-7b7220377bd8@linaro.org>
On 11/04/2019 17:00:26+0200, Daniel Lezcano wrote:
> On 03/04/2019 16:11, Alexandre Belloni wrote:
> > Move atmel_tc_divisors and atmel_tcb_dt_ids definitions to the header file
> > so they can be used without using tclib.
>
> Why not kill those structure and use the TIMER_OF_DECLARE with the
> corresponding probe function which will initialize to 16 or 32 counter
> width?
>
I'm dropping this patch and the structures but doing the differentiation
with TIMER_OF_DECLARE is not possible as this has to match
"atmel,tcb-timer" and the differentiation is done on the parent
compatible.
>
>
> > Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> > ---
> > drivers/misc/atmel_tclib.c | 24 ------------------------
> > include/soc/at91/atmel_tcb.h | 21 ++++++++++++++++++++-
> > 2 files changed, 20 insertions(+), 25 deletions(-)
> >
> > diff --git a/drivers/misc/atmel_tclib.c b/drivers/misc/atmel_tclib.c
> > index 3af27ce7e514..c79190525862 100644
> > --- a/drivers/misc/atmel_tclib.c
> > +++ b/drivers/misc/atmel_tclib.c
> > @@ -17,10 +17,6 @@
> > * share individual timers between different drivers.
> > */
> >
> > -/* AT91 has these divide MCK */
> > -const u8 atmel_tc_divisors[5] = { 2, 8, 32, 128, 0, };
> > -EXPORT_SYMBOL(atmel_tc_divisors);
> > -
> > static DEFINE_SPINLOCK(tc_list_lock);
> > static LIST_HEAD(tc_list);
> >
> > @@ -72,26 +68,6 @@ void atmel_tc_free(struct atmel_tc *tc)
> > EXPORT_SYMBOL_GPL(atmel_tc_free);
> >
> > #if defined(CONFIG_OF)
> > -static struct atmel_tcb_config tcb_rm9200_config = {
> > - .counter_width = 16,
> > -};
> > -
> > -static struct atmel_tcb_config tcb_sam9x5_config = {
> > - .counter_width = 32,
> > -};
> > -
> > -static const struct of_device_id atmel_tcb_dt_ids[] = {
> > - {
> > - .compatible = "atmel,at91rm9200-tcb",
> > - .data = &tcb_rm9200_config,
> > - }, {
> > - .compatible = "atmel,at91sam9x5-tcb",
> > - .data = &tcb_sam9x5_config,
> > - }, {
> > - /* sentinel */
> > - }
> > -};
> > -
> > MODULE_DEVICE_TABLE(of, atmel_tcb_dt_ids);
> > #endif
> >
> > diff --git a/include/soc/at91/atmel_tcb.h b/include/soc/at91/atmel_tcb.h
> > index c3c7200ce151..cb0c5f53cd46 100644
> > --- a/include/soc/at91/atmel_tcb.h
> > +++ b/include/soc/at91/atmel_tcb.h
> > @@ -76,8 +76,27 @@ extern struct atmel_tc *atmel_tc_alloc(unsigned block);
> > extern void atmel_tc_free(struct atmel_tc *tc);
> >
> > /* platform-specific ATMEL_TC_TIMER_CLOCKx divisors (0 means 32KiHz) */
> > -extern const u8 atmel_tc_divisors[5];
> > +static const u8 atmel_tc_divisors[] = { 2, 8, 32, 128, 0, };
> >
> > +static const struct atmel_tcb_config tcb_rm9200_config = {
> > + .counter_width = 16,
> > +};
> > +
> > +static const struct atmel_tcb_config tcb_sam9x5_config = {
> > + .counter_width = 32,
> > +};
> > +
> > +static const struct of_device_id atmel_tcb_dt_ids[] = {
> > + {
> > + .compatible = "atmel,at91rm9200-tcb",
> > + .data = &tcb_rm9200_config,
> > + }, {
> > + .compatible = "atmel,at91sam9x5-tcb",
> > + .data = &tcb_sam9x5_config,
> > + }, {
> > + /* sentinel */
> > + }
> > +};
> >
> > /*
> > * Two registers have block-wide controls. These are: configuring the three
> >
>
>
> --
> <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
>
> Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
> <http://twitter.com/#!/linaroorg> Twitter |
> <http://www.linaro.org/linaro-blog/> Blog
>
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
WARNING: multiple messages have this Message-ID (diff)
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: linux-pwm@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
Alexander Dahl <ada@thorsis.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 03/12] misc: atmel_tclib: move definitions to header file
Date: Mon, 15 Apr 2019 16:22:23 +0200 [thread overview]
Message-ID: <20190415142223.GF3578@piout.net> (raw)
In-Reply-To: <63e25c2f-2e10-9c6e-9bfa-7b7220377bd8@linaro.org>
On 11/04/2019 17:00:26+0200, Daniel Lezcano wrote:
> On 03/04/2019 16:11, Alexandre Belloni wrote:
> > Move atmel_tc_divisors and atmel_tcb_dt_ids definitions to the header file
> > so they can be used without using tclib.
>
> Why not kill those structure and use the TIMER_OF_DECLARE with the
> corresponding probe function which will initialize to 16 or 32 counter
> width?
>
I'm dropping this patch and the structures but doing the differentiation
with TIMER_OF_DECLARE is not possible as this has to match
"atmel,tcb-timer" and the differentiation is done on the parent
compatible.
>
>
> > Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> > ---
> > drivers/misc/atmel_tclib.c | 24 ------------------------
> > include/soc/at91/atmel_tcb.h | 21 ++++++++++++++++++++-
> > 2 files changed, 20 insertions(+), 25 deletions(-)
> >
> > diff --git a/drivers/misc/atmel_tclib.c b/drivers/misc/atmel_tclib.c
> > index 3af27ce7e514..c79190525862 100644
> > --- a/drivers/misc/atmel_tclib.c
> > +++ b/drivers/misc/atmel_tclib.c
> > @@ -17,10 +17,6 @@
> > * share individual timers between different drivers.
> > */
> >
> > -/* AT91 has these divide MCK */
> > -const u8 atmel_tc_divisors[5] = { 2, 8, 32, 128, 0, };
> > -EXPORT_SYMBOL(atmel_tc_divisors);
> > -
> > static DEFINE_SPINLOCK(tc_list_lock);
> > static LIST_HEAD(tc_list);
> >
> > @@ -72,26 +68,6 @@ void atmel_tc_free(struct atmel_tc *tc)
> > EXPORT_SYMBOL_GPL(atmel_tc_free);
> >
> > #if defined(CONFIG_OF)
> > -static struct atmel_tcb_config tcb_rm9200_config = {
> > - .counter_width = 16,
> > -};
> > -
> > -static struct atmel_tcb_config tcb_sam9x5_config = {
> > - .counter_width = 32,
> > -};
> > -
> > -static const struct of_device_id atmel_tcb_dt_ids[] = {
> > - {
> > - .compatible = "atmel,at91rm9200-tcb",
> > - .data = &tcb_rm9200_config,
> > - }, {
> > - .compatible = "atmel,at91sam9x5-tcb",
> > - .data = &tcb_sam9x5_config,
> > - }, {
> > - /* sentinel */
> > - }
> > -};
> > -
> > MODULE_DEVICE_TABLE(of, atmel_tcb_dt_ids);
> > #endif
> >
> > diff --git a/include/soc/at91/atmel_tcb.h b/include/soc/at91/atmel_tcb.h
> > index c3c7200ce151..cb0c5f53cd46 100644
> > --- a/include/soc/at91/atmel_tcb.h
> > +++ b/include/soc/at91/atmel_tcb.h
> > @@ -76,8 +76,27 @@ extern struct atmel_tc *atmel_tc_alloc(unsigned block);
> > extern void atmel_tc_free(struct atmel_tc *tc);
> >
> > /* platform-specific ATMEL_TC_TIMER_CLOCKx divisors (0 means 32KiHz) */
> > -extern const u8 atmel_tc_divisors[5];
> > +static const u8 atmel_tc_divisors[] = { 2, 8, 32, 128, 0, };
> >
> > +static const struct atmel_tcb_config tcb_rm9200_config = {
> > + .counter_width = 16,
> > +};
> > +
> > +static const struct atmel_tcb_config tcb_sam9x5_config = {
> > + .counter_width = 32,
> > +};
> > +
> > +static const struct of_device_id atmel_tcb_dt_ids[] = {
> > + {
> > + .compatible = "atmel,at91rm9200-tcb",
> > + .data = &tcb_rm9200_config,
> > + }, {
> > + .compatible = "atmel,at91sam9x5-tcb",
> > + .data = &tcb_sam9x5_config,
> > + }, {
> > + /* sentinel */
> > + }
> > +};
> >
> > /*
> > * Two registers have block-wide controls. These are: configuring the three
> >
>
>
> --
> <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
>
> Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
> <http://twitter.com/#!/linaroorg> Twitter |
> <http://www.linaro.org/linaro-blog/> Blog
>
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-04-15 14:22 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-03 14:11 [PATCH 00/12] clocksource: improve Atmel TCB timer driver Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 01/12] ARM: at91: move SoC specific definitions to SoC folder Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-03 14:36 ` Thierry Reding
2019-04-03 14:36 ` Thierry Reding
2019-04-03 17:36 ` Arnd Bergmann
2019-04-03 17:36 ` Arnd Bergmann
2019-04-03 14:11 ` [PATCH 02/12] misc: atmel_tclib: drop AVR32 support Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 03/12] misc: atmel_tclib: move definitions to header file Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-11 15:00 ` Daniel Lezcano
2019-04-11 15:00 ` Daniel Lezcano
2019-04-15 14:22 ` Alexandre Belloni [this message]
2019-04-15 14:22 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 04/12] clocksource/drivers/tcb_clksrc: stop depending on atmel_tclib Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-11 16:19 ` Daniel Lezcano
2019-04-11 16:19 ` Daniel Lezcano
2019-04-15 14:14 ` Alexandre Belloni
2019-04-15 14:14 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 05/12] clocksource/drivers/tcb_clksrc: Use tcb as sched_clock Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 06/12] ARM: at91: Implement clocksource selection Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 07/12] clocksource/drivers/tcb_clksrc: move Kconfig option Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 08/12] clocksource/drivers/timer-atmel-pit: rework " Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 09/12] clocksource/drivers/tcb_clksrc: Rename the file for consistency Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 10/12] ARM: configs: at91: unselect PIT Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-03 14:11 ` [PATCH 11/12] misc: atmel_tclib: do not probe already used TCBs Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-25 20:18 ` Greg Kroah-Hartman
2019-04-25 20:18 ` Greg Kroah-Hartman
2019-04-03 14:11 ` [PATCH 12/12] clocksource/drivers/timer-atmel-tcb: Use ARRAY_SIZE instead of hardcoded size Alexandre Belloni
2019-04-03 14:11 ` Alexandre Belloni
2019-04-11 16:34 ` [PATCH 00/12] clocksource: improve Atmel TCB timer driver Daniel Lezcano
2019-04-11 16:34 ` Daniel Lezcano
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=20190415142223.GF3578@piout.net \
--to=alexandre.belloni@bootlin.com \
--cc=ada@thorsis.com \
--cc=arnd@arndb.de \
--cc=bigeasy@linutronix.de \
--cc=daniel.lezcano@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=tglx@linutronix.de \
/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.