diff options
-rw-r--r-- | sys/pccard/i82365.h | 14 | ||||
-rw-r--r-- | sys/pccard/pcic.c | 36 |
2 files changed, 38 insertions, 12 deletions
diff --git a/sys/pccard/i82365.h b/sys/pccard/i82365.h index b457539..27b2b45 100644 --- a/sys/pccard/i82365.h +++ b/sys/pccard/i82365.h @@ -39,12 +39,14 @@ #define PCIC_PD672X 3 /* Cirrus logic 627x */ #define PCIC_PD6710 4 /* Cirrus logic 6710 */ #define PCIC_CL6729 5 /* Cirrus logic 6729 */ -#define PCIC_VG468 6 /* Vadem 468 */ -#define PCIC_VG469 7 /* Vadem 469 */ -#define PCIC_RF5C396 8 /* Ricoh RF5C396 */ -#define PCIC_IBM_KING 9 /* IBM KING PCMCIA Controller */ -#define PCIC_PC98 10 /* NEC PC98 PCMCIA Controller */ -#define PCIC_TI1130 11 /* TI PCI1130 CardBus */ +#define PCIC_VG365 6 /* Vadem 365 */ +#define PCIC_VG465 7 /* Vadem 465 */ +#define PCIC_VG468 8 /* Vadem 468 */ +#define PCIC_VG469 9 /* Vadem 469 */ +#define PCIC_RF5C396 10 /* Ricoh RF5C396 */ +#define PCIC_IBM_KING 11 /* IBM KING PCMCIA Controller */ +#define PCIC_PC98 12 /* NEC PC98 PCMCIA Controller */ +#define PCIC_TI1130 13 /* TI PCI1130 CardBus */ /* * Address of the controllers. Each controller can manage 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); |