Lines Matching refs:socket

61 static unsigned char indirect_read(struct pd6729_socket *socket,
69 reg += socket->number * 0x40;
70 port = socket->io_base;
78 static unsigned short indirect_read16(struct pd6729_socket *socket,
86 reg = reg + socket->number * 0x40;
87 port = socket->io_base;
98 static void indirect_write(struct pd6729_socket *socket, unsigned short reg,
105 reg = reg + socket->number * 0x40;
106 port = socket->io_base;
112 static void indirect_setbit(struct pd6729_socket *socket, unsigned short reg,
120 reg = reg + socket->number * 0x40;
121 port = socket->io_base;
130 static void indirect_resetbit(struct pd6729_socket *socket, unsigned short reg,
138 reg = reg + socket->number * 0x40;
139 port = socket->io_base;
148 static void indirect_write16(struct pd6729_socket *socket, unsigned short reg,
156 reg = reg + socket->number * 0x40;
157 port = socket->io_base;
175 struct pd6729_socket *socket = (struct pd6729_socket *)dev;
195 csc = indirect_read(&socket[i], I365_CSC);
196 if (csc == 0) /* no events on this socket */
204 dev_vdbg(&socket[i].socket.dev,
205 "Card detected in socket %i!\n", i);
208 if (indirect_read(&socket[i], I365_INTCTL)
224 pcmcia_parse_events(&socket[i].socket, events);
235 /* socket functions */
239 struct pd6729_socket *socket = from_timer(socket, t, poll_timer);
241 pd6729_interrupt(0, (void *)socket);
242 mod_timer(&socket->poll_timer, jiffies + HZ);
247 struct pd6729_socket *socket
248 = container_of(sock, struct pd6729_socket, socket);
254 status = indirect_read(socket, I365_STATUS);
264 if (indirect_read(socket, I365_INTCTL) & I365_PC_IOCARD) {
285 t = (socket->number) ? socket : socket + 1;
288 *value |= (data & PD67_EXD_VS1(socket->number)) ? 0 : SS_3VCARD;
296 struct pd6729_socket *socket
297 = container_of(sock, struct pd6729_socket, socket);
301 indirect_write(socket, I365_GBLCTL, 0x00);
302 indirect_write(socket, I365_GENCTL, 0x00);
305 socket->card_irq = state->io_irq;
315 indirect_write(socket, I365_INTCTL, reg);
335 "setting voltage to Vcc to 3.3V on socket %i\n",
336 socket->number);
338 indirect_setbit(socket, PD67_MISC_CTL_1, PD67_MC1_VCC_3V);
342 "setting voltage to Vcc to 5V on socket %i\n",
343 socket->number);
345 indirect_resetbit(socket, PD67_MISC_CTL_1, PD67_MC1_VCC_3V);
356 dev_dbg(&sock->dev, "not setting Vpp on socket %i\n",
357 socket->number);
361 dev_dbg(&sock->dev, "setting Vpp to Vcc for socket %i\n",
362 socket->number);
376 if (reg != indirect_read(socket, I365_POWER))
377 indirect_write(socket, I365_POWER, reg);
385 indirect_write(socket, PD67_EXT_INDEX, PD67_EXT_CTL_1);
386 indirect_write(socket, PD67_EXT_DATA, data);
407 indirect_write(socket, I365_CSCINT, reg);
409 reg = indirect_read(socket, I365_INTCTL);
413 reg |= socket->card_irq;
414 indirect_write(socket, I365_INTCTL, reg);
417 (void)indirect_read(socket, I365_CSC);
425 struct pd6729_socket *socket
426 = container_of(sock, struct pd6729_socket, socket);
438 if (indirect_read(socket, I365_ADDRWIN) & I365_ENA_IO(map))
439 indirect_resetbit(socket, I365_ADDRWIN, I365_ENA_IO(map));
445 indirect_write16(socket, I365_IO(map)+I365_W_START, io->start);
446 indirect_write16(socket, I365_IO(map)+I365_W_STOP, io->stop);
448 ioctl = indirect_read(socket, I365_IOCTL) & ~I365_IOCTL_MASK(map);
457 indirect_write(socket, I365_IOCTL, ioctl);
461 indirect_setbit(socket, I365_ADDRWIN, I365_ENA_IO(map));
469 struct pd6729_socket *socket
470 = container_of(sock, struct pd6729_socket, socket);
486 if (indirect_read(socket, I365_ADDRWIN) & I365_ENA_MEM(map))
487 indirect_resetbit(socket, I365_ADDRWIN, I365_ENA_MEM(map));
496 indirect_write16(socket, base + I365_W_START, i);
515 indirect_write16(socket, base + I365_W_STOP, i);
518 indirect_write(socket, PD67_EXT_INDEX, PD67_MEM_PAGE(map));
519 indirect_write(socket, PD67_EXT_DATA, mem->res->start >> 24);
528 "socket %i\n", socket->number);*/
532 "socket %i\n", socket->number);*/
534 indirect_write16(socket, base + I365_W_OFF, i);
538 indirect_setbit(socket, I365_ADDRWIN, I365_ENA_MEM(map));
629 struct pd6729_socket *socket;
631 socket = kcalloc(MAX_SOCKETS, sizeof(struct pd6729_socket),
633 if (!socket) {
634 dev_warn(&dev->dev, "failed to kzalloc socket.\n");
682 socket[i].io_base = pci_resource_start(dev, 0);
683 socket[i].socket.features |= SS_CAP_PAGE_REGS | SS_CAP_PCCARD;
684 socket[i].socket.map_size = 0x1000;
685 socket[i].socket.irq_mask = mask;
686 socket[i].socket.pci_irq = dev->irq;
687 socket[i].socket.cb_dev = dev;
688 socket[i].socket.owner = THIS_MODULE;
690 socket[i].number = i;
692 socket[i].socket.ops = &pd6729_operations;
693 socket[i].socket.resource_ops = &pccard_nonstatic_ops;
694 socket[i].socket.dev.parent = &dev->dev;
695 socket[i].socket.driver_data = &socket[i];
698 pci_set_drvdata(dev, socket);
702 "pd6729", socket);
710 timer_setup(&socket->poll_timer, pd6729_interrupt_wrapper, 0);
711 mod_timer(&socket->poll_timer, jiffies + HZ);
715 ret = pcmcia_register_socket(&socket[i].socket);
719 pcmcia_unregister_socket(&socket[j].socket);
728 free_irq(dev->irq, socket);
730 timer_shutdown_sync(&socket->poll_timer);
737 kfree(socket);
744 struct pd6729_socket *socket = pci_get_drvdata(dev);
748 indirect_write(&socket[i], I365_CSCINT, 0);
749 indirect_write(&socket[i], I365_INTCTL, 0);
751 pcmcia_unregister_socket(&socket[i].socket);
755 free_irq(dev->irq, socket);
757 timer_shutdown_sync(&socket->poll_timer);
761 kfree(socket);