xref: /openbmc/linux/arch/mips/cobalt/lcd.c (revision 58e16d792a6a8c6b750f637a4649967fcac853dc)
1*16216333SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-or-later
2f2bc713fSYoichi Yuasa /*
3f2bc713fSYoichi Yuasa  *  Registration of Cobalt LCD platform device.
4f2bc713fSYoichi Yuasa  *
5ada8e951SYoichi Yuasa  *  Copyright (C) 2008  Yoichi Yuasa <yuasa@linux-mips.org>
6f2bc713fSYoichi Yuasa  */
7f2bc713fSYoichi Yuasa #include <linux/errno.h>
8f2bc713fSYoichi Yuasa #include <linux/init.h>
9f2bc713fSYoichi Yuasa #include <linux/ioport.h>
10f2bc713fSYoichi Yuasa #include <linux/platform_device.h>
11f2bc713fSYoichi Yuasa 
12f2bc713fSYoichi Yuasa static struct resource cobalt_lcd_resource __initdata = {
13f2bc713fSYoichi Yuasa 	.start	= 0x1f000000,
14f2bc713fSYoichi Yuasa 	.end	= 0x1f00001f,
15f2bc713fSYoichi Yuasa 	.flags	= IORESOURCE_MEM,
16f2bc713fSYoichi Yuasa };
17f2bc713fSYoichi Yuasa 
cobalt_lcd_add(void)18f2bc713fSYoichi Yuasa static __init int cobalt_lcd_add(void)
19f2bc713fSYoichi Yuasa {
20f2bc713fSYoichi Yuasa 	struct platform_device *pdev;
21f2bc713fSYoichi Yuasa 	int retval;
22f2bc713fSYoichi Yuasa 
23f2bc713fSYoichi Yuasa 	pdev = platform_device_alloc("cobalt-lcd", -1);
24f2bc713fSYoichi Yuasa 	if (!pdev)
25f2bc713fSYoichi Yuasa 		return -ENOMEM;
26f2bc713fSYoichi Yuasa 
27f2bc713fSYoichi Yuasa 	retval = platform_device_add_resources(pdev, &cobalt_lcd_resource, 1);
28f2bc713fSYoichi Yuasa 	if (retval)
29f2bc713fSYoichi Yuasa 		goto err_free_device;
30f2bc713fSYoichi Yuasa 
31f2bc713fSYoichi Yuasa 	retval = platform_device_add(pdev);
32f2bc713fSYoichi Yuasa 	if (retval)
33f2bc713fSYoichi Yuasa 		goto err_free_device;
34f2bc713fSYoichi Yuasa 
35f2bc713fSYoichi Yuasa 	return 0;
36f2bc713fSYoichi Yuasa 
37f2bc713fSYoichi Yuasa err_free_device:
38f2bc713fSYoichi Yuasa 	platform_device_put(pdev);
39f2bc713fSYoichi Yuasa 
40f2bc713fSYoichi Yuasa 	return retval;
41f2bc713fSYoichi Yuasa }
42f2bc713fSYoichi Yuasa device_initcall(cobalt_lcd_add);
43