OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [mips/] [bcm47xx/] [wgt634u.c] - Blame information for rev 17

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
/*
2
 * This file is subject to the terms and conditions of the GNU General Public
3
 * License.  See the file "COPYING" in the main directory of this archive
4
 * for more details.
5
 *
6
 * Copyright (C) 2007 Aurelien Jarno <aurelien@aurel32.net>
7
 */
8
 
9
#include <linux/platform_device.h>
10
#include <linux/module.h>
11
#include <linux/leds.h>
12
#include <linux/ssb/ssb.h>
13
#include <asm/mach-bcm47xx/bcm47xx.h>
14
 
15
/* GPIO definitions for the WGT634U */
16
#define WGT634U_GPIO_LED        3
17
#define WGT634U_GPIO_RESET      2
18
#define WGT634U_GPIO_TP1        7
19
#define WGT634U_GPIO_TP2        6
20
#define WGT634U_GPIO_TP3        5
21
#define WGT634U_GPIO_TP4        4
22
#define WGT634U_GPIO_TP5        1
23
 
24
static struct gpio_led wgt634u_leds[] = {
25
        {
26
                .name = "power",
27
                .gpio = WGT634U_GPIO_LED,
28
                .active_low = 1,
29
                .default_trigger = "heartbeat",
30
        },
31
};
32
 
33
static struct gpio_led_platform_data wgt634u_led_data = {
34
        .num_leds =     ARRAY_SIZE(wgt634u_leds),
35
        .leds =         wgt634u_leds,
36
};
37
 
38
static struct platform_device wgt634u_gpio_leds = {
39
        .name =         "leds-gpio",
40
        .id =           -1,
41
        .dev = {
42
                .platform_data = &wgt634u_led_data,
43
        }
44
};
45
 
46
static int __init wgt634u_init(void)
47
{
48
        /* There is no easy way to detect that we are running on a WGT634U
49
         * machine. Use the MAC address as an heuristic. Netgear Inc. has
50
         * been allocated ranges 00:09:5b:xx:xx:xx and 00:0f:b5:xx:xx:xx.
51
         */
52
 
53
        u8 *et0mac = ssb_bcm47xx.sprom.r1.et0mac;
54
 
55
        if (et0mac[0] == 0x00 &&
56
            ((et0mac[1] == 0x09 && et0mac[2] == 0x5b) ||
57
             (et0mac[1] == 0x0f && et0mac[2] == 0xb5)))
58
                return platform_device_register(&wgt634u_gpio_leds);
59
        else
60
                return -ENODEV;
61
}
62
 
63
module_init(wgt634u_init);
64
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.