parisc: rtc: Rename rtc-parisc to rtc-generic

The rtc-parisc driver is not PA-RISC specific at all, as it uses the existing
(but deprecated) generic RTC infrastructure ([gs]et_rtc_time()).
Rename the driver from rtc-parisc to rtc-generic.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
This commit is contained in:
Geert Uytterhoeven 2009-02-19 16:46:49 +01:00 committed by Kyle McMartin
parent 8c534e95d5
commit 3afe6d0462
6 changed files with 95 additions and 93 deletions

View File

@ -10,7 +10,7 @@ config PARISC
select HAVE_IDE select HAVE_IDE
select HAVE_OPROFILE select HAVE_OPROFILE
select RTC_CLASS select RTC_CLASS
select RTC_DRV_PARISC select RTC_DRV_GENERIC
select INIT_ALL_POSSIBLE select INIT_ALL_POSSIBLE
help help
The PA-RISC microprocessor is designed by Hewlett-Packard and used The PA-RISC microprocessor is designed by Hewlett-Packard and used

View File

@ -216,14 +216,14 @@ void __init start_cpu_itimer(void)
per_cpu(cpu_data, cpu).it_value = next_tick; per_cpu(cpu_data, cpu).it_value = next_tick;
} }
static struct platform_device rtc_parisc_dev = { static struct platform_device rtc_generic_dev = {
.name = "rtc-parisc", .name = "rtc-generic",
.id = -1, .id = -1,
}; };
static int __init rtc_init(void) static int __init rtc_init(void)
{ {
if (platform_device_register(&rtc_parisc_dev) < 0) if (platform_device_register(&rtc_generic_dev) < 0)
printk(KERN_ERR "unable to register rtc device...\n"); printk(KERN_ERR "unable to register rtc device...\n");
/* not necessarily an error */ /* not necessarily an error */

View File

@ -688,12 +688,14 @@ config RTC_DRV_RS5C313
help help
If you say yes here you get support for the Ricoh RS5C313 RTC chips. If you say yes here you get support for the Ricoh RS5C313 RTC chips.
config RTC_DRV_PARISC config RTC_DRV_GENERIC
tristate "PA-RISC firmware RTC support" tristate "Generic RTC support"
# Please consider writing a new RTC driver instead of using the generic
# RTC abstraction
depends on PARISC depends on PARISC
help help
Say Y or M here to enable RTC support on PA-RISC systems using Say Y or M here to enable RTC support on systems using the generic
firmware calls. If you do not know what you are doing, you should RTC abstraction. If you do not know what you are doing, you should
just say Y. just say Y.
config RTC_DRV_PPC config RTC_DRV_PPC

View File

@ -56,7 +56,7 @@ obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o
obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o
obj-$(CONFIG_RTC_DRV_PL030) += rtc-pl030.o obj-$(CONFIG_RTC_DRV_PL030) += rtc-pl030.o
obj-$(CONFIG_RTC_DRV_PL031) += rtc-pl031.o obj-$(CONFIG_RTC_DRV_PL031) += rtc-pl031.o
obj-$(CONFIG_RTC_DRV_PARISC) += rtc-parisc.o obj-$(CONFIG_RTC_DRV_GENERIC) += rtc-generic.o
obj-$(CONFIG_RTC_DRV_PPC) += rtc-ppc.o obj-$(CONFIG_RTC_DRV_PPC) += rtc-ppc.o
obj-$(CONFIG_RTC_DRV_PXA) += rtc-pxa.o obj-$(CONFIG_RTC_DRV_PXA) += rtc-pxa.o
obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o

84
drivers/rtc/rtc-generic.c Normal file
View File

@ -0,0 +1,84 @@
/* rtc-generic: RTC driver using the generic RTC abstraction
*
* Copyright (C) 2008 Kyle McMartin <kyle@mcmartin.ca>
*/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/time.h>
#include <linux/platform_device.h>
#include <linux/rtc.h>
#include <asm/rtc.h>
static int generic_get_time(struct device *dev, struct rtc_time *tm)
{
unsigned int ret = get_rtc_time(tm);
if (ret & RTC_BATT_BAD)
return -EOPNOTSUPP;
return rtc_valid_tm(tm);
}
static int generic_set_time(struct device *dev, struct rtc_time *tm)
{
if (set_rtc_time(tm) < 0)
return -EOPNOTSUPP;
return 0;
}
static const struct rtc_class_ops generic_rtc_ops = {
.read_time = generic_get_time,
.set_time = generic_set_time,
};
static int __init generic_rtc_probe(struct platform_device *dev)
{
struct rtc_device *rtc;
rtc = rtc_device_register("rtc-generic", &dev->dev, &generic_rtc_ops,
THIS_MODULE);
if (IS_ERR(rtc))
return PTR_ERR(rtc);
platform_set_drvdata(dev, rtc);
return 0;
}
static int __exit generic_rtc_remove(struct platform_device *dev)
{
struct rtc_device *rtc = platform_get_drvdata(dev);
rtc_device_unregister(rtc);
return 0;
}
static struct platform_driver generic_rtc_driver = {
.driver = {
.name = "rtc-generic",
.owner = THIS_MODULE,
},
.remove = __exit_p(generic_rtc_remove),
};
static int __init generic_rtc_init(void)
{
return platform_driver_probe(&generic_rtc_driver, generic_rtc_probe);
}
static void __exit generic_rtc_fini(void)
{
platform_driver_unregister(&generic_rtc_driver);
}
module_init(generic_rtc_init);
module_exit(generic_rtc_fini);
MODULE_AUTHOR("Kyle McMartin <kyle@mcmartin.ca>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Generic RTC driver");
MODULE_ALIAS("platform:rtc-generic");

View File

@ -1,84 +0,0 @@
/* rtc-parisc: RTC for HP PA-RISC firmware
*
* Copyright (C) 2008 Kyle McMartin <kyle@mcmartin.ca>
*/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/time.h>
#include <linux/platform_device.h>
#include <linux/rtc.h>
#include <asm/rtc.h>
static int parisc_get_time(struct device *dev, struct rtc_time *tm)
{
unsigned int ret = get_rtc_time(tm);
if (ret & RTC_BATT_BAD)
return -EOPNOTSUPP;
return rtc_valid_tm(tm);
}
static int parisc_set_time(struct device *dev, struct rtc_time *tm)
{
if (set_rtc_time(tm) < 0)
return -EOPNOTSUPP;
return 0;
}
static const struct rtc_class_ops parisc_rtc_ops = {
.read_time = parisc_get_time,
.set_time = parisc_set_time,
};
static int __init parisc_rtc_probe(struct platform_device *dev)
{
struct rtc_device *rtc;
rtc = rtc_device_register("rtc-parisc", &dev->dev, &parisc_rtc_ops,
THIS_MODULE);
if (IS_ERR(rtc))
return PTR_ERR(rtc);
platform_set_drvdata(dev, rtc);
return 0;
}
static int __exit parisc_rtc_remove(struct platform_device *dev)
{
struct rtc_device *rtc = platform_get_drvdata(dev);
rtc_device_unregister(rtc);
return 0;
}
static struct platform_driver parisc_rtc_driver = {
.driver = {
.name = "rtc-parisc",
.owner = THIS_MODULE,
},
.remove = __exit_p(parisc_rtc_remove),
};
static int __init parisc_rtc_init(void)
{
return platform_driver_probe(&parisc_rtc_driver, parisc_rtc_probe);
}
static void __exit parisc_rtc_fini(void)
{
platform_driver_unregister(&parisc_rtc_driver);
}
module_init(parisc_rtc_init);
module_exit(parisc_rtc_fini);
MODULE_AUTHOR("Kyle McMartin <kyle@mcmartin.ca>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("HP PA-RISC RTC driver");
MODULE_ALIAS("platform:rtc-parisc");