Commit | Line | Data |
---|---|---|
16216333 | 1 | // SPDX-License-Identifier: GPL-2.0-or-later |
b0cc114c YY |
2 | /* |
3 | * Registration of Cobalt RTC platform device. | |
4 | * | |
ada8e951 | 5 | * Copyright (C) 2007 Yoichi Yuasa <yuasa@linux-mips.org> |
b0cc114c YY |
6 | */ |
7 | #include <linux/errno.h> | |
8 | #include <linux/init.h> | |
9 | #include <linux/ioport.h> | |
d5ab1a69 | 10 | #include <linux/mc146818rtc.h> |
b0cc114c YY |
11 | #include <linux/platform_device.h> |
12 | ||
13 | static struct resource cobalt_rtc_resource[] __initdata = { | |
14 | { | |
15 | .start = 0x70, | |
16 | .end = 0x77, | |
17 | .flags = IORESOURCE_IO, | |
18 | }, | |
19 | { | |
d5ab1a69 YY |
20 | .start = RTC_IRQ, |
21 | .end = RTC_IRQ, | |
b0cc114c YY |
22 | .flags = IORESOURCE_IRQ, |
23 | }, | |
24 | }; | |
25 | ||
26 | static __init int cobalt_rtc_add(void) | |
27 | { | |
28 | struct platform_device *pdev; | |
29 | int retval; | |
30 | ||
31 | pdev = platform_device_alloc("rtc_cmos", -1); | |
32 | if (!pdev) | |
33 | return -ENOMEM; | |
34 | ||
35 | retval = platform_device_add_resources(pdev, cobalt_rtc_resource, | |
70342287 | 36 | ARRAY_SIZE(cobalt_rtc_resource)); |
b0cc114c YY |
37 | if (retval) |
38 | goto err_free_device; | |
39 | ||
40 | retval = platform_device_add(pdev); | |
41 | if (retval) | |
42 | goto err_free_device; | |
43 | ||
44 | return 0; | |
45 | ||
46 | err_free_device: | |
47 | platform_device_put(pdev); | |
48 | ||
49 | return retval; | |
50 | } | |
51 | device_initcall(cobalt_rtc_add); |