PageRenderTime 14ms CodeModel.GetById 11ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/mips/cobalt/rtc.c

http://github.com/mirrors/linux
C | 51 lines | 37 code | 8 blank | 6 comment | 3 complexity | 0db0ac35c2a62aefad050247402561c9 MD5 | raw file
 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);