1*e86169ffSYoichi Yuasa /* 2*e86169ffSYoichi Yuasa * Registration of Cobalt LED platform device. 3*e86169ffSYoichi Yuasa * 4*e86169ffSYoichi Yuasa * Copyright (C) 2007 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5*e86169ffSYoichi Yuasa * 6*e86169ffSYoichi Yuasa * This program is free software; you can redistribute it and/or modify 7*e86169ffSYoichi Yuasa * it under the terms of the GNU General Public License as published by 8*e86169ffSYoichi Yuasa * the Free Software Foundation; either version 2 of the License, or 9*e86169ffSYoichi Yuasa * (at your option) any later version. 10*e86169ffSYoichi Yuasa * 11*e86169ffSYoichi Yuasa * This program is distributed in the hope that it will be useful, 12*e86169ffSYoichi Yuasa * but WITHOUT ANY WARRANTY; without even the implied warranty of 13*e86169ffSYoichi Yuasa * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*e86169ffSYoichi Yuasa * GNU General Public License for more details. 15*e86169ffSYoichi Yuasa * 16*e86169ffSYoichi Yuasa * You should have received a copy of the GNU General Public License 17*e86169ffSYoichi Yuasa * along with this program; if not, write to the Free Software 18*e86169ffSYoichi Yuasa * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19*e86169ffSYoichi Yuasa */ 20*e86169ffSYoichi Yuasa #include <linux/errno.h> 21*e86169ffSYoichi Yuasa #include <linux/init.h> 22*e86169ffSYoichi Yuasa #include <linux/ioport.h> 23*e86169ffSYoichi Yuasa #include <linux/platform_device.h> 24*e86169ffSYoichi Yuasa 25*e86169ffSYoichi Yuasa static struct resource cobalt_led_resource __initdata = { 26*e86169ffSYoichi Yuasa .start = 0x1c000000, 27*e86169ffSYoichi Yuasa .end = 0x1c000000, 28*e86169ffSYoichi Yuasa .flags = IORESOURCE_MEM, 29*e86169ffSYoichi Yuasa }; 30*e86169ffSYoichi Yuasa 31*e86169ffSYoichi Yuasa static __init int cobalt_led_add(void) 32*e86169ffSYoichi Yuasa { 33*e86169ffSYoichi Yuasa struct platform_device *pdev; 34*e86169ffSYoichi Yuasa int retval; 35*e86169ffSYoichi Yuasa 36*e86169ffSYoichi Yuasa pdev = platform_device_alloc("cobalt-raq-leds", -1); 37*e86169ffSYoichi Yuasa 38*e86169ffSYoichi Yuasa if (!pdev) 39*e86169ffSYoichi Yuasa return -ENOMEM; 40*e86169ffSYoichi Yuasa 41*e86169ffSYoichi Yuasa retval = platform_device_add_resources(pdev, &cobalt_led_resource, 1); 42*e86169ffSYoichi Yuasa if (retval) 43*e86169ffSYoichi Yuasa goto err_free_device; 44*e86169ffSYoichi Yuasa 45*e86169ffSYoichi Yuasa retval = platform_device_add(pdev); 46*e86169ffSYoichi Yuasa if (retval) 47*e86169ffSYoichi Yuasa goto err_free_device; 48*e86169ffSYoichi Yuasa 49*e86169ffSYoichi Yuasa return 0; 50*e86169ffSYoichi Yuasa 51*e86169ffSYoichi Yuasa err_free_device: 52*e86169ffSYoichi Yuasa platform_device_put(pdev); 53*e86169ffSYoichi Yuasa 54*e86169ffSYoichi Yuasa return retval; 55*e86169ffSYoichi Yuasa } 56*e86169ffSYoichi Yuasa device_initcall(cobalt_led_add); 57