18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Registration of Cobalt LCD platform device. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2008 Yoichi Yuasa <yuasa@linux-mips.org> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci#include <linux/errno.h> 88c2ecf20Sopenharmony_ci#include <linux/init.h> 98c2ecf20Sopenharmony_ci#include <linux/ioport.h> 108c2ecf20Sopenharmony_ci#include <linux/platform_device.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cistatic struct resource cobalt_lcd_resource __initdata = { 138c2ecf20Sopenharmony_ci .start = 0x1f000000, 148c2ecf20Sopenharmony_ci .end = 0x1f00001f, 158c2ecf20Sopenharmony_ci .flags = IORESOURCE_MEM, 168c2ecf20Sopenharmony_ci}; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_cistatic __init int cobalt_lcd_add(void) 198c2ecf20Sopenharmony_ci{ 208c2ecf20Sopenharmony_ci struct platform_device *pdev; 218c2ecf20Sopenharmony_ci int retval; 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci pdev = platform_device_alloc("cobalt-lcd", -1); 248c2ecf20Sopenharmony_ci if (!pdev) 258c2ecf20Sopenharmony_ci return -ENOMEM; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci retval = platform_device_add_resources(pdev, &cobalt_lcd_resource, 1); 288c2ecf20Sopenharmony_ci if (retval) 298c2ecf20Sopenharmony_ci goto err_free_device; 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci retval = platform_device_add(pdev); 328c2ecf20Sopenharmony_ci if (retval) 338c2ecf20Sopenharmony_ci goto err_free_device; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci return 0; 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_cierr_free_device: 388c2ecf20Sopenharmony_ci platform_device_put(pdev); 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci return retval; 418c2ecf20Sopenharmony_ci} 428c2ecf20Sopenharmony_cidevice_initcall(cobalt_lcd_add); 43