[brcm63xx] fix the setup of MII clock in the case enet1 is linked to external switch...
[openwrt.git] / target / linux / brcm63xx / patches-2.6.33 / 140-new_bcm96348gw_leds.patch
1 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
2 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
3 @@ -336,24 +336,39 @@ static struct board_info __initdata boar
4                         .active_low     = 1,
5                 },
6                 {
7 -                       .name           = "ppp",
8 -                       .gpio           = 3,
9 +                       .name           = "power",
10 +                       .gpio           = 0,
11                         .active_low     = 1,
12 +                       .default_trigger = "default-on",
13                 },
14                 {
15 -                       .name           = "ppp-fail",
16 +                       .name           = "stop",
17 +                       .gpio           = 1,
18 +                       .active_low     = 1,
19 +               },
20 +               {
21 +                       .name           = "line1",
22                         .gpio           = 4,
23                         .active_low     = 1,
24                 },
25                 {
26 -                       .name           = "power",
27 -                       .gpio           = 0,
28 +                       .name           = "line2",
29 +                       .gpio           = 5,
30                         .active_low     = 1,
31 -                       .default_trigger = "default-on",
32                 },
33                 {
34 -                       .name           = "stop",
35 -                       .gpio           = 1,
36 +                       .name           = "line3",
37 +                       .gpio           = 6,
38 +                       .active_low     = 1,
39 +               },
40 +               {
41 +                       .name           = "tel",
42 +                       .gpio           = 7,
43 +                       .active_low     = 1,
44 +               },
45 +               {
46 +                       .name           = "eth",
47 +                       .gpio           = 35,
48                         .active_low     = 1,
49                 },
50         },
51 @@ -854,6 +869,7 @@ static struct platform_device bcm63xx_gp
52  int __init board_register_devices(void)
53  {
54         u32 val;
55 +       int led_count = 0;
56  
57         if (board.has_pccard)
58                 bcm63xx_pcmcia_register();
59 @@ -900,7 +916,11 @@ int __init board_register_devices(void)
60  
61         platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1);
62  
63 -       bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds);
64 +       /* count number of LEDs defined by this device */
65 +       while (led_count < ARRAY_SIZE(board.leds) && board.leds[led_count].name)
66 +               led_count++;
67 +
68 +       bcm63xx_led_data.num_leds = led_count;
69         bcm63xx_led_data.leds = board.leds;
70  
71         platform_device_register(&bcm63xx_gpio_leds);
72 --- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
73 +++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
74 @@ -54,7 +54,7 @@ struct board_info {
75         struct bcm63xx_dsp_platform_data dsp;
76  
77         /* GPIO LEDs */
78 -       struct gpio_led leds[5];
79 +       struct gpio_led leds[8];
80  
81         /* Reset button */
82         struct gpio_button reset_buttons[1];