aboutsummaryrefslogtreecommitdiffstats
path: root/package/broadcom-diag/src/diag.c
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2008-07-26 16:10:44 +0000
committerGabor Juhos <juhosg@openwrt.org>2008-07-26 16:10:44 +0000
commit1c27b386135765feb52d6e3be9e21e62f62d77d8 (patch)
treee3ff91f8422a2aebc5e4e1139c3773aa7d6dfc6d /package/broadcom-diag/src/diag.c
parentdb61dbe67ce470063fb824973947f449d4994e9e (diff)
downloadupstream-1c27b386135765feb52d6e3be9e21e62f62d77d8.tar.gz
upstream-1c27b386135765feb52d6e3be9e21e62f62d77d8.tar.bz2
upstream-1c27b386135765feb52d6e3be9e21e62f62d77d8.zip
[brcm-2.4] fix Dell TrueMobile 2300 v1/v2 detection and network configuration (closes #2788)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11935 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/broadcom-diag/src/diag.c')
-rw-r--r--package/broadcom-diag/src/diag.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/package/broadcom-diag/src/diag.c b/package/broadcom-diag/src/diag.c
index bbc0bfadac..8f2a0c1705 100644
--- a/package/broadcom-diag/src/diag.c
+++ b/package/broadcom-diag/src/diag.c
@@ -99,6 +99,7 @@ enum {
/* Dell */
TM2300,
+ TM2300V2,
/* Motorola */
WE800G,
@@ -566,6 +567,16 @@ static struct platform_t __initdata platforms[] = {
{ .name = "power", .gpio = 1 << 7, .polarity = REVERSE },
},
},
+ [TM2300V2] = {
+ .name = "Dell TrueMobile 2300 v2",
+ .buttons = {
+ { .name = "reset", .gpio = 1 << 0 },
+ },
+ .leds = {
+ { .name = "wlan", .gpio = 1 << 6, .polarity = REVERSE },
+ { .name = "power", .gpio = 1 << 7, .polarity = REVERSE },
+ },
+ },
/* Motorola */
[WE800G] = {
.name = "Motorola WE800G",
@@ -747,8 +758,8 @@ static struct platform_t __init *platform_detect(void)
if ((buf = nvram_get("ModelId"))) {
if (!strcmp(buf, "WR850GP"))
return &platforms[WR850GP];
- if (!strcmp(buf,"WX-5565"))
- return &platforms[TM2300];
+ if (!strcmp(buf, "WX-5565") && !strcmp(getvar("boardtype"),"bcm94710ap"))
+ return &platforms[TM2300]; /* Dell TrueMobile 2300 */
if (startswith(buf,"WE800G")) /* WE800G* */
return &platforms[WE800G];
}
@@ -804,6 +815,11 @@ static struct platform_t __init *platform_detect(void)
return &platforms[WRT54G];
}
+ if (!strcmp(boardnum, "44") || !strcmp(boardnum, "44\r")) {
+ if (!strcmp(boardtype,"0x0101") || !strcmp(boardtype, "0x0101\r"))
+ return &platforms[TM2300V2]; /* Dell TrueMobile 2300 v2 */
+ }
+
if (!strcmp(boardnum, "45")) { /* ASUS */
if (!strcmp(boardtype,"0x042f"))
return &platforms[WL500GP];
@@ -818,7 +834,7 @@ static struct platform_t __init *platform_detect(void)
if (!strcmp(getvar("boardtype"), "0x0101") && !strcmp(getvar("boardrev"), "0x10")) /* SE505V2 With Modified CFE */
return &platforms[SE505V2];
-
+
} else { /* PMON based - old stuff */
if ((simple_strtoul(getvar("GemtekPmonVer"), NULL, 0) == 9) &&
(simple_strtoul(getvar("et0phyaddr"), NULL, 0) == 30)) {
@@ -1010,7 +1026,7 @@ static irqreturn_t button_handler(int irq, void *dev_id, struct pt_regs *regs)
changed &= ~gpio_outen(0, 0);
- for (b = platform.buttons; b->name; b++) {
+ for (b = platform.buttons; b->name; b++) {
struct event_t *event;
if (!(b->gpio & changed)) continue;