diff options
author | imp <imp@FreeBSD.org> | 1998-08-25 22:46:44 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 1998-08-25 22:46:44 +0000 |
commit | 489a278c8f035dd5ee4bb2b682aefebef62da6c4 (patch) | |
tree | 7df5c21f59902f36792a34c9da6abd71b111f2e6 /sys/pccard/pcic.c | |
parent | ea1d22b2ff3f58ecafecdfa27eadde6cf052be9d (diff) | |
download | FreeBSD-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.c | 36 |
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); |