summaryrefslogtreecommitdiffstats
path: root/sys/pccard/pcic.c
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>1998-08-25 22:46:44 +0000
committerimp <imp@FreeBSD.org>1998-08-25 22:46:44 +0000
commit489a278c8f035dd5ee4bb2b682aefebef62da6c4 (patch)
tree7df5c21f59902f36792a34c9da6abd71b111f2e6 /sys/pccard/pcic.c
parentea1d22b2ff3f58ecafecdfa27eadde6cf052be9d (diff)
downloadFreeBSD-src-489a278c8f035dd5ee4bb2b682aefebef62da6c4.zip
FreeBSD-src-489a278c8f035dd5ee4bb2b682aefebef62da6c4.tar.gz
Add probing support for the vadem VG365 and the Vadem VG465 pcic chips.
We do the same thing we do with all the other Vadem chips and print the right identification for these chips. Tested with the 365, and inferred for the 465. This allows the cheapo PCMCIA card that I got from necx to print the right chip number on boot.
Diffstat (limited to 'sys/pccard/pcic.c')
-rw-r--r--sys/pccard/pcic.c36
1 files changed, 30 insertions, 6 deletions
diff --git a/sys/pccard/pcic.c b/sys/pccard/pcic.c
index 6bfd484..1384c5b 100644
--- a/sys/pccard/pcic.c
+++ b/sys/pccard/pcic.c
@@ -629,8 +629,20 @@ pcic_probe(void)
setb(sp, 0x3A, 0x40);
c = sp->getb(sp, PCIC_ID_REV);
if (c & 0x08) {
- sp->controller = ((sp->revision = c & 7) == 4) ?
- PCIC_VG469 : PCIC_VG468 ;
+ switch (sp->revision = c & 7) {
+ case 1:
+ sp->controller = PCIC_VG365;
+ break;
+ case 2:
+ sp->controller = PCIC_VG465;
+ break;
+ case 3:
+ sp->controller = PCIC_VG468;
+ break;
+ default:
+ sp->controller = PCIC_VG469;
+ break;
+ }
clrb(sp, 0x3A, 0x40);
}
@@ -693,6 +705,12 @@ pcic_probe(void)
case PCIC_PD6710:
cinfo.name = "Cirrus Logic PD6710";
break;
+ case PCIC_VG365:
+ cinfo.name = "Vadem 365";
+ break;
+ case PCIC_VG465:
+ cinfo.name = "Vadem 465";
+ break;
case PCIC_VG468:
cinfo.name = "Vadem 468";
break;
@@ -868,6 +886,8 @@ pcic_power(struct slot *slt)
#endif
case PCIC_PD672X:
case PCIC_PD6710:
+ case PCIC_VG365:
+ case PCIC_VG465:
case PCIC_VG468:
case PCIC_VG469:
case PCIC_RF5C396:
@@ -897,8 +917,10 @@ pcic_power(struct slot *slt)
break;
}
reg |= PCIC_VCC_3V;
- if ((sp->controller == PCIC_VG468)||
- (sp->controller == PCIC_VG469))
+ if ((sp->controller == PCIC_VG468) ||
+ (sp->controller == PCIC_VG469) ||
+ (sp->controller == PCIC_VG465) ||
+ (sp->controller == PCIC_VG365))
setb(sp, 0x2f, 0x03) ;
else
setb(sp, 0x16, 0x02);
@@ -909,8 +931,10 @@ pcic_power(struct slot *slt)
break;
}
reg |= PCIC_VCC_5V;
- if ((sp->controller == PCIC_VG468)||
- (sp->controller == PCIC_VG469))
+ if ((sp->controller == PCIC_VG468) ||
+ (sp->controller == PCIC_VG469) ||
+ (sp->controller == PCIC_VG465) ||
+ (sp->controller == PCIC_VG365))
clrb(sp, 0x2f, 0x03) ;
else
clrb(sp, 0x16, 0x02);
OpenPOWER on IntegriCloud