source: trunk/target/linux/lantiq/files-3.1/arch/mips/lantiq/dev-gpio-leds.c @ 28721

Last change on this file since 28721 was 28721, checked in by blogic, 5 years ago

lantiq: bump to 3.1

File size: 1.2 KB
Line 
1/*
2 *  Lantiq GPIO LED device support
3 *
4 *  Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
5 *  Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
6 *
7 *  Parts of this file are based on Atheros' 2.6.15 BSP
8 *
9 *  This program is free software; you can redistribute it and/or modify it
10 *  under the terms of the GNU General Public License version 2 as published
11 *  by the Free Software Foundation.
12 */
13
14#include <linux/init.h>
15#include <linux/slab.h>
16#include <linux/platform_device.h>
17
18#include <dev-gpio-leds.h>
19
20void __init ltq_add_device_gpio_leds(int id, unsigned num_leds,
21                                        struct gpio_led *leds)
22{
23        struct platform_device *pdev;
24        struct gpio_led_platform_data pdata;
25        struct gpio_led *p;
26        int err;
27
28        p = kmalloc(num_leds * sizeof(*p), GFP_KERNEL);
29        if (!p)
30                return;
31
32        memcpy(p, leds, num_leds * sizeof(*p));
33
34        pdev = platform_device_alloc("gpio-leds", id);
35        if (!pdev)
36                goto err_free_leds;
37
38        memset(&pdata, 0, sizeof(pdata));
39        pdata.num_leds = num_leds;
40        pdata.leds = p;
41
42        err = platform_device_add_data(pdev, &pdata, sizeof(pdata));
43        if (err)
44                goto err_put_pdev;
45
46        err = platform_device_add(pdev);
47        if (err)
48                goto err_put_pdev;
49
50        return;
51
52err_put_pdev:
53        platform_device_put(pdev);
54
55err_free_leds:
56        kfree(p);
57}
Note: See TracBrowser for help on using the repository browser.