summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/pccard/i82365.h14
-rw-r--r--sys/pccard/pcic.c36
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);
OpenPOWER on IntegriCloud