xref: /linux/arch/mips/cobalt/buttons.c (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  *  Cobalt buttons platform device.
4  *
5  *  Copyright (C) 2007  Yoichi Yuasa <yuasa@linux-mips.org>
6  */
7 
8 #include <linux/platform_device.h>
9 #include <linux/errno.h>
10 #include <linux/init.h>
11 
12 static struct resource cobalt_buttons_resource __initdata = {
13 	.start	= 0x1d000000,
14 	.end	= 0x1d000003,
15 	.flags	= IORESOURCE_MEM,
16 };
17 
18 static __init int cobalt_add_buttons(void)
19 {
20 	struct platform_device *pd;
21 	int error;
22 
23 	pd = platform_device_alloc("Cobalt buttons", -1);
24 	if (!pd)
25 		return -ENOMEM;
26 
27 	error = platform_device_add_resources(pd, &cobalt_buttons_resource, 1);
28 	if (error)
29 		goto err_free_device;
30 
31 	error = platform_device_add(pd);
32 	if (error)
33 		goto err_free_device;
34 
35 	return 0;
36 
37  err_free_device:
38 	platform_device_put(pd);
39 	return error;
40 }
41 device_initcall(cobalt_add_buttons);
42