1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 *  Registration of Cobalt RTC platform device.
4 *
5 *  Copyright (C) 2007  Yoichi Yuasa <yuasa@linux-mips.org>
6 */
7#include <linux/errno.h>
8#include <linux/init.h>
9#include <linux/ioport.h>
10#include <linux/mc146818rtc.h>
11#include <linux/platform_device.h>
12
13static struct resource cobalt_rtc_resource[] __initdata = {
14	{
15		.start	= 0x70,
16		.end	= 0x77,
17		.flags	= IORESOURCE_IO,
18	},
19	{
20		.start	= RTC_IRQ,
21		.end	= RTC_IRQ,
22		.flags	= IORESOURCE_IRQ,
23	},
24};
25
26static __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,
36					       ARRAY_SIZE(cobalt_rtc_resource));
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
46err_free_device:
47	platform_device_put(pdev);
48
49	return retval;
50}
51device_initcall(cobalt_rtc_add);
52