OMAP850 RTC and MMC registers differ from other OMAP1, how to implement?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm working on OMAP850 support. I have found that OMAP 15xx and 16xx have
32 bit registers, while 730 and 850 have 8 bit RTC registers and 16
bit MMC registers. At the moment I work around this using #defines as
such:

#if (defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850))
#define OMAP_RTC_SECONDS_REG           0x00
...
#define OMAP_RTC_OSC_REG               0x19
#else
#define OMAP_RTC_SECONDS_REG            0x00
...
#define OMAP_RTC_OSC_REG                0x54
#endif

I have been told that this isn't a good way to handle it because the
same binary kernel has to work on all OMAP1 machines. So this has to
be checked for at run time. We can check that with cpu_is_omap7xx()
but what would be the correct way to actually implement this? I could
do something like this:

#define OMAP_RTC_REGISTER_SIZE (cpu_is_omap7xx()?1:4)
#define OMAP_RTC_OSC_REG               (0x19*OMAP_RTC_REGISTER_SIZE)

Would that be acceptable? If not, how should I do it? Is there an
existing driver that does something similar I could look at?

Thanks,

-- 
Alistair Buxton
a.j.buxton@xxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux