unicore32: move rtc-puv3.c to drivers/rtc directory
The patch moves rtc driver for PKUnity-v3 SoC from arch/unicore32/kernel/ to drivers/rtc/, with renaming it to rtc-puv3.c. Also, Kconfig, Makefile, and MAINTAINERS are modified correspondingly. Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn> Acked-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
06e86849cf
commit
2809e80b8a
|
@ -4945,6 +4945,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/epip/linux-2.6-unicore32.gi
|
||||||
F: drivers/input/serio/i8042-unicore32io.h
|
F: drivers/input/serio/i8042-unicore32io.h
|
||||||
F: drivers/i2c/busses/i2c-puv3.c
|
F: drivers/i2c/busses/i2c-puv3.c
|
||||||
F: drivers/video/fb-puv3.c
|
F: drivers/video/fb-puv3.c
|
||||||
|
F: drivers/rtc/rtc-puv3.c
|
||||||
|
|
||||||
PMC SIERRA MaxRAID DRIVER
|
PMC SIERRA MaxRAID DRIVER
|
||||||
M: Anil Ravindranath <anil_ravindranath@pmc-sierra.com>
|
M: Anil Ravindranath <anil_ravindranath@pmc-sierra.com>
|
||||||
|
|
|
@ -231,10 +231,6 @@ config PUV3_PWM
|
||||||
help
|
help
|
||||||
Enable support for NB0916 PWM controllers
|
Enable support for NB0916 PWM controllers
|
||||||
|
|
||||||
config PUV3_RTC
|
|
||||||
tristate "PKUnity v3 RTC Support"
|
|
||||||
depends on !ARCH_FPGA
|
|
||||||
|
|
||||||
if PUV3_NB0916
|
if PUV3_NB0916
|
||||||
|
|
||||||
menu "PKUnity NetBook-0916 Features"
|
menu "PKUnity NetBook-0916 Features"
|
||||||
|
|
|
@ -64,7 +64,6 @@ CONFIG_I2C_BATTERY_BQ27200=n
|
||||||
CONFIG_I2C_EEPROM_AT24=n
|
CONFIG_I2C_EEPROM_AT24=n
|
||||||
CONFIG_LCD_BACKLIGHT=n
|
CONFIG_LCD_BACKLIGHT=n
|
||||||
|
|
||||||
CONFIG_PUV3_RTC=y
|
|
||||||
CONFIG_PUV3_UMAL=y
|
CONFIG_PUV3_UMAL=y
|
||||||
CONFIG_PUV3_MUSB=n
|
CONFIG_PUV3_MUSB=n
|
||||||
CONFIG_PUV3_AC97=n
|
CONFIG_PUV3_AC97=n
|
||||||
|
@ -167,8 +166,9 @@ CONFIG_LEDS_TRIGGER_IDE_DISK=y
|
||||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||||
|
|
||||||
# Real Time Clock
|
# Real Time Clock
|
||||||
CONFIG_RTC_LIB=m
|
CONFIG_RTC_LIB=y
|
||||||
CONFIG_RTC_CLASS=m
|
CONFIG_RTC_CLASS=y
|
||||||
|
CONFIG_RTC_DRV_PUV3=y
|
||||||
|
|
||||||
### File systems
|
### File systems
|
||||||
CONFIG_EXT2_FS=m
|
CONFIG_EXT2_FS=m
|
||||||
|
|
|
@ -16,7 +16,6 @@ obj-$(CONFIG_UNICORE_FPU_F64) += fpu-ucf64.o
|
||||||
obj-$(CONFIG_ARCH_PUV3) += clock.o irq.o time.o
|
obj-$(CONFIG_ARCH_PUV3) += clock.o irq.o time.o
|
||||||
|
|
||||||
obj-$(CONFIG_PUV3_GPIO) += gpio.o
|
obj-$(CONFIG_PUV3_GPIO) += gpio.o
|
||||||
obj-$(CONFIG_PUV3_RTC) += rtc.o
|
|
||||||
obj-$(CONFIG_PUV3_PWM) += pwm.o
|
obj-$(CONFIG_PUV3_PWM) += pwm.o
|
||||||
obj-$(CONFIG_PUV3_PM) += pm.o sleep.o
|
obj-$(CONFIG_PUV3_PM) += pm.o sleep.o
|
||||||
obj-$(CONFIG_HIBERNATION) += hibernate.o hibernate_asm.o
|
obj-$(CONFIG_HIBERNATION) += hibernate.o hibernate_asm.o
|
||||||
|
|
|
@ -1051,4 +1051,13 @@ config RTC_DRV_TILE
|
||||||
Enable support for the Linux driver side of the Tilera
|
Enable support for the Linux driver side of the Tilera
|
||||||
hypervisor's real-time clock interface.
|
hypervisor's real-time clock interface.
|
||||||
|
|
||||||
|
config RTC_DRV_PUV3
|
||||||
|
tristate "PKUnity v3 RTC support"
|
||||||
|
depends on ARCH_PUV3
|
||||||
|
help
|
||||||
|
This enables support for the RTC in the PKUnity-v3 SoCs.
|
||||||
|
|
||||||
|
This drive can also be built as a module. If so, the module
|
||||||
|
will be called rtc-puv3.
|
||||||
|
|
||||||
endif # RTC_CLASS
|
endif # RTC_CLASS
|
||||||
|
|
|
@ -78,6 +78,7 @@ obj-$(CONFIG_RTC_DRV_PCF50633) += rtc-pcf50633.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_PS3) += rtc-ps3.o
|
obj-$(CONFIG_RTC_DRV_PS3) += rtc-ps3.o
|
||||||
|
obj-$(CONFIG_RTC_DRV_PUV3) += rtc-puv3.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
|
||||||
obj-$(CONFIG_RTC_DRV_RP5C01) += rtc-rp5c01.o
|
obj-$(CONFIG_RTC_DRV_RP5C01) += rtc-rp5c01.o
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* linux/arch/unicore32/kernel/rtc.c
|
* RTC driver code specific to PKUnity SoC and UniCore ISA
|
||||||
*
|
|
||||||
* Code specific to PKUnity SoC and UniCore ISA
|
|
||||||
*
|
*
|
||||||
* Maintained by GUAN Xue-tao <gxt@mprc.pku.edu.cn>
|
* Maintained by GUAN Xue-tao <gxt@mprc.pku.edu.cn>
|
||||||
* Copyright (C) 2001-2010 Guan Xuetao
|
* Copyright (C) 2001-2010 Guan Xuetao
|
||||||
|
@ -36,7 +34,6 @@ static int puv3_rtc_tickno = IRQ_RTC;
|
||||||
static DEFINE_SPINLOCK(puv3_rtc_pie_lock);
|
static DEFINE_SPINLOCK(puv3_rtc_pie_lock);
|
||||||
|
|
||||||
/* IRQ Handlers */
|
/* IRQ Handlers */
|
||||||
|
|
||||||
static irqreturn_t puv3_rtc_alarmirq(int irq, void *id)
|
static irqreturn_t puv3_rtc_alarmirq(int irq, void *id)
|
||||||
{
|
{
|
||||||
struct rtc_device *rdev = id;
|
struct rtc_device *rdev = id;
|
||||||
|
@ -89,7 +86,6 @@ static int puv3_rtc_setpie(struct device *dev, int enabled)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Time read/write */
|
/* Time read/write */
|
||||||
|
|
||||||
static int puv3_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm)
|
static int puv3_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm)
|
||||||
{
|
{
|
||||||
rtc_time_to_tm(readl(RTC_RCNR), rtc_tm);
|
rtc_time_to_tm(readl(RTC_RCNR), rtc_tm);
|
||||||
|
@ -196,7 +192,6 @@ static void puv3_rtc_release(struct device *dev)
|
||||||
struct rtc_device *rtc_dev = platform_get_drvdata(pdev);
|
struct rtc_device *rtc_dev = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
/* do not clear AIE here, it may be needed for wake */
|
/* do not clear AIE here, it may be needed for wake */
|
||||||
|
|
||||||
puv3_rtc_setpie(dev, 0);
|
puv3_rtc_setpie(dev, 0);
|
||||||
free_irq(puv3_rtc_alarmno, rtc_dev);
|
free_irq(puv3_rtc_alarmno, rtc_dev);
|
||||||
free_irq(puv3_rtc_tickno, rtc_dev);
|
free_irq(puv3_rtc_tickno, rtc_dev);
|
||||||
|
@ -218,7 +213,6 @@ static void puv3_rtc_enable(struct platform_device *pdev, int en)
|
||||||
writel(readl(RTC_RTSR) & ~RTC_RTSR_HZE, RTC_RTSR);
|
writel(readl(RTC_RTSR) & ~RTC_RTSR_HZE, RTC_RTSR);
|
||||||
} else {
|
} else {
|
||||||
/* re-enable the device, and check it is ok */
|
/* re-enable the device, and check it is ok */
|
||||||
|
|
||||||
if ((readl(RTC_RTSR) & RTC_RTSR_HZE) == 0) {
|
if ((readl(RTC_RTSR) & RTC_RTSR_HZE) == 0) {
|
||||||
dev_info(&pdev->dev, "rtc disabled, re-enabling\n");
|
dev_info(&pdev->dev, "rtc disabled, re-enabling\n");
|
||||||
writel(readl(RTC_RTSR) | RTC_RTSR_HZE, RTC_RTSR);
|
writel(readl(RTC_RTSR) | RTC_RTSR_HZE, RTC_RTSR);
|
||||||
|
@ -251,7 +245,6 @@ static int puv3_rtc_probe(struct platform_device *pdev)
|
||||||
pr_debug("%s: probe=%p\n", __func__, pdev);
|
pr_debug("%s: probe=%p\n", __func__, pdev);
|
||||||
|
|
||||||
/* find the IRQs */
|
/* find the IRQs */
|
||||||
|
|
||||||
puv3_rtc_tickno = platform_get_irq(pdev, 1);
|
puv3_rtc_tickno = platform_get_irq(pdev, 1);
|
||||||
if (puv3_rtc_tickno < 0) {
|
if (puv3_rtc_tickno < 0) {
|
||||||
dev_err(&pdev->dev, "no irq for rtc tick\n");
|
dev_err(&pdev->dev, "no irq for rtc tick\n");
|
||||||
|
@ -268,7 +261,6 @@ static int puv3_rtc_probe(struct platform_device *pdev)
|
||||||
puv3_rtc_tickno, puv3_rtc_alarmno);
|
puv3_rtc_tickno, puv3_rtc_alarmno);
|
||||||
|
|
||||||
/* get the memory region */
|
/* get the memory region */
|
||||||
|
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
if (res == NULL) {
|
if (res == NULL) {
|
||||||
dev_err(&pdev->dev, "failed to get memory region resource\n");
|
dev_err(&pdev->dev, "failed to get memory region resource\n");
|
||||||
|
@ -288,7 +280,6 @@ static int puv3_rtc_probe(struct platform_device *pdev)
|
||||||
puv3_rtc_enable(pdev, 1);
|
puv3_rtc_enable(pdev, 1);
|
||||||
|
|
||||||
/* register RTC and exit */
|
/* register RTC and exit */
|
||||||
|
|
||||||
rtc = rtc_device_register("pkunity", &pdev->dev, &puv3_rtcops,
|
rtc = rtc_device_register("pkunity", &pdev->dev, &puv3_rtcops,
|
||||||
THIS_MODULE);
|
THIS_MODULE);
|
||||||
|
|
||||||
|
@ -315,8 +306,6 @@ static int puv3_rtc_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
|
|
||||||
/* RTC Power management control */
|
|
||||||
|
|
||||||
static int ticnt_save;
|
static int ticnt_save;
|
||||||
|
|
||||||
static int puv3_rtc_suspend(struct platform_device *pdev, pm_message_t state)
|
static int puv3_rtc_suspend(struct platform_device *pdev, pm_message_t state)
|
||||||
|
@ -368,4 +357,3 @@ module_exit(puv3_rtc_exit);
|
||||||
MODULE_DESCRIPTION("RTC Driver for the PKUnity v3 chip");
|
MODULE_DESCRIPTION("RTC Driver for the PKUnity v3 chip");
|
||||||
MODULE_AUTHOR("Hu Dongliang");
|
MODULE_AUTHOR("Hu Dongliang");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
|
|
Loading…
Reference in New Issue