linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: plagnioj@jcrosoft.com (Jean-Christophe PLAGNIOL-VILLARD)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 13/18] ARM: at91/rtc-at91sam9: pass the GPBR to use via ressources
Date: Mon, 20 Feb 2012 02:20:10 +0100	[thread overview]
Message-ID: <20120220012010.GA29599@game.jcrosoft.org> (raw)
In-Reply-To: <4F419742.70200@gmail.com>

On 11:43 Mon 20 Feb     , Ryan Mallon wrote:
> On 18/02/12 04:50, Nicolas Ferre wrote:
> 
> > From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> > 
> > The GPBR registers are used for storing RTC values. The GPBR registers
> > to use are now provided using standard resource entry. The array is
> > filled in SoC specific code.
> > rtc-at91sam9 RTT as RTC driver is modified to retrieve this information.
> > 
> > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> > Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> > ---
> >  arch/arm/mach-at91/at91sam9260_devices.c      |   10 +++++++-
> >  arch/arm/mach-at91/at91sam9261_devices.c      |    8 ++++++-
> >  arch/arm/mach-at91/at91sam9263_devices.c      |   16 +++++++++++--
> >  arch/arm/mach-at91/at91sam9g45_devices.c      |    8 ++++++-
> >  arch/arm/mach-at91/at91sam9rl_devices.c       |    8 ++++++-
> >  arch/arm/mach-at91/include/mach/at91sam9260.h |    5 +--
> >  arch/arm/mach-at91/include/mach/at91sam9261.h |    5 +--
> >  arch/arm/mach-at91/include/mach/at91sam9263.h |    5 +--
> >  arch/arm/mach-at91/include/mach/at91sam9g45.h |    5 +--
> >  arch/arm/mach-at91/include/mach/at91sam9rl.h  |    2 +-
> >  drivers/rtc/rtc-at91sam9.c                    |   29 +++++++++++++++++++++---
> >  11 files changed, 76 insertions(+), 25 deletions(-)
> > 
> > diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
> > index 2071017..ae2b648 100644
> > --- a/arch/arm/mach-at91/at91sam9260_devices.c
> > +++ b/arch/arm/mach-at91/at91sam9260_devices.c
> > @@ -718,14 +718,16 @@ static struct resource rtt_resources[] = {
> >  		.start	= AT91SAM9260_BASE_RTT,
> >  		.end	= AT91SAM9260_BASE_RTT + SZ_16 - 1,
> >  		.flags	= IORESOURCE_MEM,
> > -	}
> > +	}, {
> > +		.flags	= IORESOURCE_MEM,
> > +	},
> >  };
> >  
> >  static struct platform_device at91sam9260_rtt_device = {
> >  	.name		= "at91_rtt",
> >  	.id		= 0,
> >  	.resource	= rtt_resources,
> > -	.num_resources	= ARRAY_SIZE(rtt_resources),
> > +	.num_resources	= 1,
> 
> 
> Why this change? The device has two resources, and the rtc driver
> request both of them, so why are you saying there is only one resource
> here. It either needs to be changed back to use ARRAY_SIZE, or needs a
> comment explaining what magic is in use.
because the number of resources depends on the user of rtt
we must not hardcode the GPBR reg as this resource will be present only if the
rtc-at91sam9 is enabled

> 
> <snip>
> 
> >  #if IS_ENABLED(CONFIG_RTC_DRV_AT91SAM9)
> >  static void __init at91_add_device_rtt_rtc(void)
> >  {
> >  	struct platform_device *pdev;
> > +	struct resource *r;
> >  
> >  	switch (CONFIG_RTC_DRV_AT91SAM9_RTT) {
> >  	case 0:
> >  		pdev = &at91sam9263_rtt0_device;
> > +		r = rtt0_resources;
> >  		break;
> >  	case 1:
> >  		pdev = &at91sam9263_rtt1_device;
> > +		r = rtt1_resources;
> >  		break;
> >  	default:
> >  		pr_err("at91sam9263: support only 2 RTT (%d)\n",
> > -			 CONFIG_RTC_DRV_AT91SAM9_RTT);
> > +		       CONFIG_RTC_DRV_AT91SAM9_RTT);
> >  		return;
> >  	}
> 
> >  
> > +	r[1].start = AT91SAM9263_BASE_GPBR + 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR;
> > +	r[1].end = r[1].start + 3;
> >  	pdev->name = "rtc-at91sam9";
> > +	pdev->num_resources++;
> 
> 
> Okay, makes a little more sense now. I really think it needs a comment
> explaining how the resources are being managed, since it is a bit
> non-obvious.
> 
> Also, can only one of the RTT's can be used as an RTC at a time?
it was always the case as nearly all soc have only one rtt and via Kconfig
doc in Kconfig

Best Regards,
J.

> 
> ~Ryan

  reply	other threads:[~2012-02-20  1:20 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-17 17:49 [PATCH 00/18] at91 first cleanup series for 3.4 Nicolas Ferre
2012-02-17 17:49 ` [PATCH 01/18] ARM: at91: factorise duplicated at91sam9 idle Nicolas Ferre
2012-02-17 17:49 ` [PATCH 02/18] ARM: at91/at91x40: remove use of at91_sys_read/write Nicolas Ferre
2012-02-17 17:49 ` [PATCH 03/18] ARM: at91: make matrix register base soc independent Nicolas Ferre
2012-02-17 17:49 ` [PATCH 04/18] ARM: at91: make ST (System Timer) " Nicolas Ferre
2012-02-20  0:22   ` Ryan Mallon
2012-02-20  1:38     ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-20  1:52       ` Ryan Mallon
2012-02-20  3:02         ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-20  3:16           ` Ryan Mallon
2012-02-20  3:23             ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-20  3:48               ` Ryan Mallon
2012-02-20  3:49                 ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-20  7:33           ` Russell King - ARM Linux
2012-02-20  9:18             ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-17 17:49 ` [PATCH 05/18] ARM: at91/pm_slowclock: rename register to named define Nicolas Ferre
2012-02-17 17:49 ` [PATCH 06/18] ARM: at91/pm_slowclock: function slow_clock() accepts parameters Nicolas Ferre
2012-02-17 17:49 ` [PATCH 07/18] ARM: at91: move at91rm9200 sdramc defines to at91rm9200_sdramc.h Nicolas Ferre
2012-02-17 17:50 ` [PATCH 08/18] ARM: at91: make sdram/ddr register base soc independent Nicolas Ferre
2012-02-17 17:50 ` [PATCH 09/18] ARM: at91/pm_slowclock: add runtime detection of memory contoller Nicolas Ferre
2012-02-17 17:50 ` [PATCH 10/18] ARM: at91/PMC: make register base soc independent Nicolas Ferre
2012-02-20  0:27   ` Ryan Mallon
2012-02-17 17:50 ` [PATCH 11/18] ARM: at91/rtc-at91sam9: each SoC can select the RTT device to use Nicolas Ferre
2012-02-20  0:32   ` Ryan Mallon
2012-02-20  1:25     ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-17 17:50 ` [PATCH 12/18] ARM: at91:rtc/rtc-at91sam9: ioremap register bank Nicolas Ferre
2012-02-17 17:50 ` [PATCH 13/18] ARM: at91/rtc-at91sam9: pass the GPBR to use via ressources Nicolas Ferre
2012-02-20  0:43   ` Ryan Mallon
2012-02-20  1:20     ` Jean-Christophe PLAGNIOL-VILLARD [this message]
2012-02-20  7:36       ` Russell King - ARM Linux
2012-02-20  9:16         ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-20 10:04           ` Russell King - ARM Linux
2012-02-20 11:21             ` Nicolas Ferre
2012-02-20 14:45             ` [PATCH] ARM: at91/rtc-at91sam9: rework resources assignment Nicolas Ferre
2012-02-20 15:06               ` Russell King - ARM Linux
2012-02-20 20:04               ` Ryan Mallon
2012-02-17 17:50 ` [PATCH 14/18] ARM: at91: finally drop at91_sys_read/write Nicolas Ferre
2012-02-17 17:50 ` [PATCH 15/18] ARM: at91: merge SRAM Memory banks thanks to mirroring Nicolas Ferre
2012-02-17 17:50 ` [PATCH 16/18] Atmel: move console default platform_device to serial driver Nicolas Ferre
2012-02-18  9:17   ` Hans-Christian Egtvedt
2012-02-19  7:07     ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-17 17:50 ` [PATCH 17/18] ARM: at91/board-dt: drop default console Nicolas Ferre
2012-02-17 17:50 ` [PATCH 18/18] ARM: at91/board-dt: move at91_initialize() to init_irq() 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=20120220012010.GA29599@game.jcrosoft.org \
    --to=plagnioj@jcrosoft.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;
as well as URLs for NNTP newsgroup(s).