aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-tx4939.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc/rtc-tx4939.c')
-rw-r--r--drivers/rtc/rtc-tx4939.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/drivers/rtc/rtc-tx4939.c b/drivers/rtc/rtc-tx4939.c
index a12bfac49d36..f9a0677e4e3b 100644
--- a/drivers/rtc/rtc-tx4939.c
+++ b/drivers/rtc/rtc-tx4939.c
@@ -268,14 +268,13 @@ static int __init tx4939_rtc_probe(struct platform_device *pdev)
268 if (devm_request_irq(&pdev->dev, irq, tx4939_rtc_interrupt, 268 if (devm_request_irq(&pdev->dev, irq, tx4939_rtc_interrupt,
269 0, pdev->name, &pdev->dev) < 0) 269 0, pdev->name, &pdev->dev) < 0)
270 return -EBUSY; 270 return -EBUSY;
271 rtc = rtc_device_register(pdev->name, &pdev->dev, 271 rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
272 &tx4939_rtc_ops, THIS_MODULE); 272 &tx4939_rtc_ops, THIS_MODULE);
273 if (IS_ERR(rtc)) 273 if (IS_ERR(rtc))
274 return PTR_ERR(rtc); 274 return PTR_ERR(rtc);
275 pdata->rtc = rtc; 275 pdata->rtc = rtc;
276 ret = sysfs_create_bin_file(&pdev->dev.kobj, &tx4939_rtc_nvram_attr); 276 ret = sysfs_create_bin_file(&pdev->dev.kobj, &tx4939_rtc_nvram_attr);
277 if (ret) 277
278 rtc_device_unregister(rtc);
279 return ret; 278 return ret;
280} 279}
281 280
@@ -284,7 +283,6 @@ static int __exit tx4939_rtc_remove(struct platform_device *pdev)
284 struct tx4939rtc_plat_data *pdata = platform_get_drvdata(pdev); 283 struct tx4939rtc_plat_data *pdata = platform_get_drvdata(pdev);
285 284
286 sysfs_remove_bin_file(&pdev->dev.kobj, &tx4939_rtc_nvram_attr); 285 sysfs_remove_bin_file(&pdev->dev.kobj, &tx4939_rtc_nvram_attr);
287 rtc_device_unregister(pdata->rtc);
288 spin_lock_irq(&pdata->lock); 286 spin_lock_irq(&pdata->lock);
289 tx4939_rtc_cmd(pdata->rtcreg, TX4939_RTCCTL_COMMAND_NOP); 287 tx4939_rtc_cmd(pdata->rtcreg, TX4939_RTCCTL_COMMAND_NOP);
290 spin_unlock_irq(&pdata->lock); 288 spin_unlock_irq(&pdata->lock);
@@ -299,18 +297,7 @@ static struct platform_driver tx4939_rtc_driver = {
299 }, 297 },
300}; 298};
301 299
302static int __init tx4939rtc_init(void) 300module_platform_driver_probe(tx4939_rtc_driver, tx4939_rtc_probe);
303{
304 return platform_driver_probe(&tx4939_rtc_driver, tx4939_rtc_probe);
305}
306
307static void __exit tx4939rtc_exit(void)
308{
309 platform_driver_unregister(&tx4939_rtc_driver);
310}
311
312module_init(tx4939rtc_init);
313module_exit(tx4939rtc_exit);
314 301
315MODULE_AUTHOR("Atsushi Nemoto <anemo@mba.ocn.ne.jp>"); 302MODULE_AUTHOR("Atsushi Nemoto <anemo@mba.ocn.ne.jp>");
316MODULE_DESCRIPTION("TX4939 internal RTC driver"); 303MODULE_DESCRIPTION("TX4939 internal RTC driver");