diff options
Diffstat (limited to 'drivers/pcmcia/i82092.c')
-rw-r--r-- | drivers/pcmcia/i82092.c | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/drivers/pcmcia/i82092.c b/drivers/pcmcia/i82092.c index f3fdc748659d..7979c85df3dc 100644 --- a/drivers/pcmcia/i82092.c +++ b/drivers/pcmcia/i82092.c | |||
@@ -66,7 +66,6 @@ static struct pci_driver i82092aa_pci_drv = { | |||
66 | static struct pccard_operations i82092aa_operations = { | 66 | static struct pccard_operations i82092aa_operations = { |
67 | .init = i82092aa_init, | 67 | .init = i82092aa_init, |
68 | .get_status = i82092aa_get_status, | 68 | .get_status = i82092aa_get_status, |
69 | .get_socket = i82092aa_get_socket, | ||
70 | .set_socket = i82092aa_set_socket, | 69 | .set_socket = i82092aa_set_socket, |
71 | .set_io_map = i82092aa_set_io_map, | 70 | .set_io_map = i82092aa_set_io_map, |
72 | .set_mem_map = i82092aa_set_mem_map, | 71 | .set_mem_map = i82092aa_set_mem_map, |
@@ -482,78 +481,6 @@ static int i82092aa_get_status(struct pcmcia_socket *socket, u_int *value) | |||
482 | } | 481 | } |
483 | 482 | ||
484 | 483 | ||
485 | static int i82092aa_get_socket(struct pcmcia_socket *socket, socket_state_t *state) | ||
486 | { | ||
487 | unsigned int sock = container_of(socket, struct socket_info, socket)->number; | ||
488 | unsigned char reg,vcc,vpp; | ||
489 | |||
490 | enter("i82092aa_get_socket"); | ||
491 | state->flags = 0; | ||
492 | state->Vcc = 0; | ||
493 | state->Vpp = 0; | ||
494 | state->io_irq = 0; | ||
495 | state->csc_mask = 0; | ||
496 | |||
497 | /* First the power status of the socket */ | ||
498 | reg = indirect_read(sock,I365_POWER); /* PCTRL - Power Control Register */ | ||
499 | |||
500 | if (reg & I365_PWR_AUTO) | ||
501 | state->flags |= SS_PWR_AUTO; /* Automatic Power Switch */ | ||
502 | |||
503 | if (reg & I365_PWR_OUT) | ||
504 | state->flags |= SS_OUTPUT_ENA; /* Output signals are enabled */ | ||
505 | |||
506 | vcc = reg & I365_VCC_MASK; vpp = reg & I365_VPP1_MASK; | ||
507 | |||
508 | if (reg & I365_VCC_5V) { /* Can still be 3.3V, in this case the Vcc value will be overwritten later */ | ||
509 | state->Vcc = 50; | ||
510 | |||
511 | if (vpp == I365_VPP1_5V) | ||
512 | state->Vpp = 50; | ||
513 | if (vpp == I365_VPP1_12V) | ||
514 | state->Vpp = 120; | ||
515 | |||
516 | } | ||
517 | |||
518 | if ((reg & I365_VCC_3V)==I365_VCC_3V) | ||
519 | state->Vcc = 33; | ||
520 | |||
521 | |||
522 | /* Now the IO card, RESET flags and IO interrupt */ | ||
523 | |||
524 | reg = indirect_read(sock, I365_INTCTL); /* IGENC, Interrupt and General Control */ | ||
525 | |||
526 | if ((reg & I365_PC_RESET)==0) | ||
527 | state->flags |= SS_RESET; | ||
528 | if (reg & I365_PC_IOCARD) | ||
529 | state->flags |= SS_IOCARD; /* This is an IO card */ | ||
530 | |||
531 | /* Set the IRQ number */ | ||
532 | if (sockets[sock].dev!=NULL) | ||
533 | state->io_irq = sockets[sock].dev->irq; | ||
534 | |||
535 | /* Card status change */ | ||
536 | reg = indirect_read(sock, I365_CSCINT); /* CSCICR, Card Status Change Interrupt Configuration */ | ||
537 | |||
538 | if (reg & I365_CSC_DETECT) | ||
539 | state->csc_mask |= SS_DETECT; /* Card detect is enabled */ | ||
540 | |||
541 | if (state->flags & SS_IOCARD) {/* IO Cards behave different */ | ||
542 | if (reg & I365_CSC_STSCHG) | ||
543 | state->csc_mask |= SS_STSCHG; | ||
544 | } else { | ||
545 | if (reg & I365_CSC_BVD1) | ||
546 | state->csc_mask |= SS_BATDEAD; | ||
547 | if (reg & I365_CSC_BVD2) | ||
548 | state->csc_mask |= SS_BATWARN; | ||
549 | if (reg & I365_CSC_READY) | ||
550 | state->csc_mask |= SS_READY; | ||
551 | } | ||
552 | |||
553 | leave("i82092aa_get_socket"); | ||
554 | return 0; | ||
555 | } | ||
556 | |||
557 | static int i82092aa_set_socket(struct pcmcia_socket *socket, socket_state_t *state) | 484 | static int i82092aa_set_socket(struct pcmcia_socket *socket, socket_state_t *state) |
558 | { | 485 | { |
559 | unsigned int sock = container_of(socket, struct socket_info, socket)->number; | 486 | unsigned int sock = container_of(socket, struct socket_info, socket)->number; |