xref: /linux/drivers/rtc/rtc-generic.c (revision b4d0d230ccfb5d1a9ea85da64aa584df7c148ee9)
1  // SPDX-License-Identifier: GPL-2.0-only
2  /* rtc-generic: RTC driver using the generic RTC abstraction
3   *
4   * Copyright (C) 2008 Kyle McMartin <kyle@mcmartin.ca>
5   */
6  
7  #include <linux/kernel.h>
8  #include <linux/module.h>
9  #include <linux/time.h>
10  #include <linux/platform_device.h>
11  #include <linux/rtc.h>
12  
13  static int __init generic_rtc_probe(struct platform_device *dev)
14  {
15  	struct rtc_device *rtc;
16  	const struct rtc_class_ops *ops = dev_get_platdata(&dev->dev);
17  
18  	rtc = devm_rtc_device_register(&dev->dev, "rtc-generic",
19  					ops, THIS_MODULE);
20  	if (IS_ERR(rtc))
21  		return PTR_ERR(rtc);
22  
23  	platform_set_drvdata(dev, rtc);
24  
25  	return 0;
26  }
27  
28  static struct platform_driver generic_rtc_driver = {
29  	.driver = {
30  		.name = "rtc-generic",
31  	},
32  };
33  
34  module_platform_driver_probe(generic_rtc_driver, generic_rtc_probe);
35  
36  MODULE_AUTHOR("Kyle McMartin <kyle@mcmartin.ca>");
37  MODULE_LICENSE("GPL");
38  MODULE_DESCRIPTION("Generic RTC driver");
39  MODULE_ALIAS("platform:rtc-generic");
40