xref: /linux-6.15/drivers/rtc/rtc-generic.c (revision 09c434b8)
1*09c434b8SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
23afe6d04SGeert Uytterhoeven /* rtc-generic: RTC driver using the generic RTC abstraction
33afe6d04SGeert Uytterhoeven  *
43afe6d04SGeert Uytterhoeven  * Copyright (C) 2008 Kyle McMartin <[email protected]>
53afe6d04SGeert Uytterhoeven  */
63afe6d04SGeert Uytterhoeven 
73afe6d04SGeert Uytterhoeven #include <linux/kernel.h>
83afe6d04SGeert Uytterhoeven #include <linux/module.h>
93afe6d04SGeert Uytterhoeven #include <linux/time.h>
103afe6d04SGeert Uytterhoeven #include <linux/platform_device.h>
113afe6d04SGeert Uytterhoeven #include <linux/rtc.h>
123afe6d04SGeert Uytterhoeven 
generic_rtc_probe(struct platform_device * dev)133afe6d04SGeert Uytterhoeven static int __init generic_rtc_probe(struct platform_device *dev)
143afe6d04SGeert Uytterhoeven {
153afe6d04SGeert Uytterhoeven 	struct rtc_device *rtc;
164273b49aSArnd Bergmann 	const struct rtc_class_ops *ops = dev_get_platdata(&dev->dev);
173afe6d04SGeert Uytterhoeven 
18360fe134SJingoo Han 	rtc = devm_rtc_device_register(&dev->dev, "rtc-generic",
1964232fc3SArnd Bergmann 					ops, THIS_MODULE);
203afe6d04SGeert Uytterhoeven 	if (IS_ERR(rtc))
213afe6d04SGeert Uytterhoeven 		return PTR_ERR(rtc);
223afe6d04SGeert Uytterhoeven 
233afe6d04SGeert Uytterhoeven 	platform_set_drvdata(dev, rtc);
243afe6d04SGeert Uytterhoeven 
253afe6d04SGeert Uytterhoeven 	return 0;
263afe6d04SGeert Uytterhoeven }
273afe6d04SGeert Uytterhoeven 
283afe6d04SGeert Uytterhoeven static struct platform_driver generic_rtc_driver = {
293afe6d04SGeert Uytterhoeven 	.driver = {
303afe6d04SGeert Uytterhoeven 		.name = "rtc-generic",
313afe6d04SGeert Uytterhoeven 	},
323afe6d04SGeert Uytterhoeven };
333afe6d04SGeert Uytterhoeven 
34a53f9a4eSJingoo Han module_platform_driver_probe(generic_rtc_driver, generic_rtc_probe);
353afe6d04SGeert Uytterhoeven 
363afe6d04SGeert Uytterhoeven MODULE_AUTHOR("Kyle McMartin <[email protected]>");
373afe6d04SGeert Uytterhoeven MODULE_LICENSE("GPL");
383afe6d04SGeert Uytterhoeven MODULE_DESCRIPTION("Generic RTC driver");
393afe6d04SGeert Uytterhoeven MODULE_ALIAS("platform:rtc-generic");
40