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