[PATCH 2/4] rtc: sa1100: convert to run-time register mapping
Robert Jarzmik
robert.jarzmik at free.fr
Wed Feb 4 09:30:21 PST 2015
Rob Herring <robh at kernel.org> writes:
Hi Rob,
> SA1100 and PXA differ only in register offsets which are currently
> hardcoded in a machine specific header. Some arm64 platforms (PXA1928)
> have this RTC block also.
>
> Convert the driver to use ioremap and set the register offsets dynamically.
> Since we are touching all the register accesses, convert them all to
> readl/writel.
A general comment, probably made by Arnd already, why not using the relaxed
accessors ?
... zip ...
> + iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> + base = devm_ioremap_resource(&pdev->dev, iores);
> + if (IS_ERR(base))
> + return PTR_ERR(base);
> +
> + if (IS_ENABLED(CONFIG_ARCH_SA1100) ||
> + of_device_is_compatible(pdev->dev.of_node, "mrvl,sa1100-rtc")) {
> + info->rcnr = base + 0x04;
> + info->rtsr = base + 0x10;
> + info->rtar = base + 0x00;
> + info->rttr = base + 0x08;
> + } else {
> + info->rcnr = base + 0x0;
> + info->rtsr = base + 0x8;
> + info->rtar = base + 0x4;
> + info->rttr = base + 0xc;
> + }
> +
This is making me feel a bit uncomfortable. What if a single kernel is built for
both SA1100 and PXA, and used in a PXA platform (as this drivers is also used in
pxa2xx and pxa3xx) ?
And just for your information, both rtc-sa1100 and rtc-pxa can be used at the
same time in a pxa kernel.
Apart from that worry it's quite nice.
Cheers.
--
Robert
More information about the linux-arm-kernel
mailing list