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 = timer_container_of(socket, t,
242 pd6729_interrupt(0, (void *)socket);
243 mod_timer(&socket->poll_timer, jiffies + HZ);
248 struct pd6729_socket *socket
249 = container_of(sock, struct pd6729_socket, socket);
255 status = indirect_read(socket, I365_STATUS);
265 if (indirect_read(socket, I365_INTCTL) & I365_PC_IOCARD) {
286 t = (socket->number) ? socket : socket + 1;
289 *value |= (data & PD67_EXD_VS1(socket->number)) ? 0 : SS_3VCARD;
297 struct pd6729_socket *socket
298 = container_of(sock, struct pd6729_socket, socket);
302 indirect_write(socket, I365_GBLCTL, 0x00);
303 indirect_write(socket, I365_GENCTL, 0x00);
306 socket->card_irq = state->io_irq;
316 indirect_write(socket, I365_INTCTL, reg);
336 "setting voltage to Vcc to 3.3V on socket %i\n",
337 socket->number);
339 indirect_setbit(socket, PD67_MISC_CTL_1, PD67_MC1_VCC_3V);
343 "setting voltage to Vcc to 5V on socket %i\n",
344 socket->number);
346 indirect_resetbit(socket, PD67_MISC_CTL_1, PD67_MC1_VCC_3V);
357 dev_dbg(&sock->dev, "not setting Vpp on socket %i\n",
358 socket->number);
362 dev_dbg(&sock->dev, "setting Vpp to Vcc for socket %i\n",
363 socket->number);
377 if (reg != indirect_read(socket, I365_POWER))
378 indirect_write(socket, I365_POWER, reg);
386 indirect_write(socket, PD67_EXT_INDEX, PD67_EXT_CTL_1);
387 indirect_write(socket, PD67_EXT_DATA, data);
408 indirect_write(socket, I365_CSCINT, reg);
410 reg = indirect_read(socket, I365_INTCTL);
414 reg |= socket->card_irq;
415 indirect_write(socket, I365_INTCTL, reg);
418 (void)indirect_read(socket, I365_CSC);
426 struct pd6729_socket *socket
427 = container_of(sock, struct pd6729_socket, socket);
439 if (indirect_read(socket, I365_ADDRWIN) & I365_ENA_IO(map))
440 indirect_resetbit(socket, I365_ADDRWIN, I365_ENA_IO(map));
446 indirect_write16(socket, I365_IO(map)+I365_W_START, io->start);
447 indirect_write16(socket, I365_IO(map)+I365_W_STOP, io->stop);
449 ioctl = indirect_read(socket, I365_IOCTL) & ~I365_IOCTL_MASK(map);
458 indirect_write(socket, I365_IOCTL, ioctl);
462 indirect_setbit(socket, I365_ADDRWIN, I365_ENA_IO(map));
470 struct pd6729_socket *socket
471 = container_of(sock, struct pd6729_socket, socket);
487 if (indirect_read(socket, I365_ADDRWIN) & I365_ENA_MEM(map))
488 indirect_resetbit(socket, I365_ADDRWIN, I365_ENA_MEM(map));
497 indirect_write16(socket, base + I365_W_START, i);
516 indirect_write16(socket, base + I365_W_STOP, i);
519 indirect_write(socket, PD67_EXT_INDEX, PD67_MEM_PAGE(map));
520 indirect_write(socket, PD67_EXT_DATA, mem->res->start >> 24);
529 "socket %i\n", socket->number);*/
533 "socket %i\n", socket->number);*/
535 indirect_write16(socket, base + I365_W_OFF, i);
539 indirect_setbit(socket, I365_ADDRWIN, I365_ENA_MEM(map));
630 struct pd6729_socket *socket;
632 socket = kcalloc(MAX_SOCKETS, sizeof(struct pd6729_socket),
634 if (!socket) {
635 dev_warn(&dev->dev, "failed to kzalloc socket.\n");
683 socket[i].io_base = pci_resource_start(dev, 0);
684 socket[i].socket.features |= SS_CAP_PAGE_REGS | SS_CAP_PCCARD;
685 socket[i].socket.map_size = 0x1000;
686 socket[i].socket.irq_mask = mask;
687 socket[i].socket.pci_irq = dev->irq;
688 socket[i].socket.cb_dev = dev;
689 socket[i].socket.owner = THIS_MODULE;
691 socket[i].number = i;
693 socket[i].socket.ops = &pd6729_operations;
694 socket[i].socket.resource_ops = &pccard_nonstatic_ops;
695 socket[i].socket.dev.parent = &dev->dev;
696 socket[i].socket.driver_data = &socket[i];
699 pci_set_drvdata(dev, socket);
703 "pd6729", socket);
711 timer_setup(&socket->poll_timer, pd6729_interrupt_wrapper, 0);
712 mod_timer(&socket->poll_timer, jiffies + HZ);
716 ret = pcmcia_register_socket(&socket[i].socket);
720 pcmcia_unregister_socket(&socket[j].socket);
729 free_irq(dev->irq, socket);
731 timer_shutdown_sync(&socket->poll_timer);
738 kfree(socket);
745 struct pd6729_socket *socket = pci_get_drvdata(dev);
749 indirect_write(&socket[i], I365_CSCINT, 0);
750 indirect_write(&socket[i], I365_INTCTL, 0);
752 pcmcia_unregister_socket(&socket[i].socket);
756 free_irq(dev->irq, socket);
758 timer_shutdown_sync(&socket->poll_timer);
762 kfree(socket);