[PATCH 2/4] rtc: sa1100: convert to run-time register mapping

Robert Jarzmik robert.jarzmik at free.fr
Thu Feb 5 11:18:05 PST 2015

Russell King - ARM Linux <linux at arm.linux.org.uk> writes:

> On Thu, Feb 05, 2015 at 07:34:50AM -0600, Rob Herring wrote:
>> > And just for your information, both rtc-sa1100 and rtc-pxa can be used at the
>> > same time in a pxa kernel.
>> Yes, I know. I find that a bit odd. We'll have a bit of a problem
>> supporting that with DT BTW.
> I think you're close to that problem without DT anyway.  You modify
> rtc-sa1100 to use devm_ioremap_resource(), which claims the memory
> resource exclusively, thus marking the memory region exclusive.
Ah yes, I have not caught that one.

> Luckily, rtc-pxa uses devm_ioremap() without claiming the memory
> resource - which is the only saving grace for why it still works.
> If rtc-pxa were to be converted to use devm_ioremap_resource(), then
> they'll become mutually exclusive.

Since the pxa-rtc begin ([1] and [2]), the idea was that both rtc-pxa and
rtc-sa1100 could work in the same kernel, each handling a part of RTC

Retrospectively, I think I made an error there, when I agreed the pxa2xx had 2
distinct RTC IPs. The sharing of ioresource as well of the IRQ should have made
me decide it was a _single_ IP.

And it's only a matter of time until rtc-pxa claims the resources too I think,
probably by some device-tree push.

As a consequence, I'm pretty much in favor of :
 - making rtc-pxa and rtc-sa1100 exclusive
 - adding to rtc-pxa driver :
   - a new rtc device (ie. it will register 2 rtc devices, one of the sa1100
     kind, one of the pxa specific kind)

This has flaws :
 - a bit of code will be duplicated between rtc-pxa and rtc-sa1100
 - the ordering in rtc-pxa between the 2 rtc devices will be important, as if I
 remember correctly /dev/rtc points to the first /dev/rtc0 registered

But it opens up :
 - DT path to both drivers
 - isolation between sa1100 architecture changes and pxa architecture changes
 - Rob's current patches can remain almost the same

> Also note that by including the resource in rtc-sa1100's platform
> device resource list, you'll have stacked resources between the two
> platform devices appearing in /proc/iomem (you did look at that
> before posting the patches, right?)
I must admit I don't know if there are nasty consequences, I think I need to
follow up the code to have a clear idea.



A bit of history for sa1100/pxa-rtc split :

More information about the linux-arm-kernel mailing list