Lines Matching defs:socket
349 static void pcic_enable_io_intr(pcicdev_t *pcic, int socket, int irq);
350 static void pcic_disable_io_intr(pcicdev_t *pcic, int socket);
357 static int pcic_exca_powerctl(pcicdev_t *pcic, int socket, int powerlevel);
358 static int pcic_cbus_powerctl(pcicdev_t *pcic, int socket);
637 /* poweroff socket */
651 * structure which contains both the dip and socket services entry
1072 /* set flags and socket counts based on chip type */
1179 * basically check each possible socket for
1188 * if a zero is read back, then this socket
1249 * wired things wrong, socket 0 responds for socket 2
1255 /* put pattern into socket 0 */
1259 /* put pattern into socket 2 */
1263 /* read back socket 0 */
1267 /* read back chip 1 socket 0 */
1353 * Init all socket SMI levels to 0 (no SMI)
1783 /* enable each socket */
1786 /* find out the socket capabilities (I/O vs memory) */
1804 /* enable card status change interrupt for socket */
2211 "socket %d value=%x, flags = %x (%s)\n",
2277 /* get the socket's I/O addresses */
2307 "\tchange on socket %d (%x)\n", i,
2343 * Turn off all interrupts for this socket here.
2354 * Put the socket in debouncing state so that
2409 * for any controllers that we can detect whether a socket
2446 * check to see if this socket had a change in state
2450 pcic_change(pcicdev_t *pcic, int socket)
2452 return (pcic_getb(pcic, socket, PCIC_CARD_STATUS_CHANGE));
2474 int cur = pcic->irq_current->socket;
2680 pcic_set_cdtimers(pcicdev_t *pcic, int socket, uint32_t speed, int tset)
2716 pcic_putb(pcic, socket, PCIC_TIME_COMMAND_0 + offset, cmd);
2717 pcic_putb(pcic, socket, PCIC_TIME_SETUP_0 + offset, set);
2718 pcic_putb(pcic, socket, PCIC_TIME_RECOVER_0 + offset, rec);
2724 * We use socket and not adapter since they are identifiable
2736 int socket, pages, which, ret;
2737 pcic_socket_t *sockp = &pcic->pc_sockets[window->socket];
2746 "\twindow=%d, socket=%d, WindowSize=%d, speed=%d\n",
2747 window->window, window->socket, window->WindowSize,
2770 socket = window->socket;
2784 if (tmp != window->socket || win < PCIC_IOWINDOWS) {
2885 (window->socket << 16),
2942 * specified socket. This allows basing everything
2954 pcic_putb(pcic, socket,
2957 pcic_putb(pcic, socket,
2967 pcic_putb(pcic, socket,
2973 clext_reg_write(pcic, socket,
2980 * per socket so all windows get bound to a
2989 pcic_putb(pcic, socket,
3017 pcic_putb(pcic, socket,
3025 pcic_putb(pcic, socket,
3048 pcic_set_cdtimers(pcic, socket,
3067 pcic_putb(pcic, socket, PCIC_SYSMEM_0_STOPLOW + select,
3072 pcic_putb(pcic, socket, PCIC_SYSMEM_0_STOPHI + select,
3081 pcic_putb(pcic, socket,
3085 pcic_putb(pcic, socket,
3094 select = pcic_getb(pcic, socket,
3097 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, select);
3115 select = pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE);
3117 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, select);
3124 xxdmp_all_regs(pcic, window->socket, -1);
3142 if (win >= PCIC_IOWINDOWS || tmp != window->socket) {
3189 * to be generated on the socket by
3265 (window->socket << 16),
3305 * specified socket. This allows basing everything
3310 pcic_putb(pcic, socket,
3313 pcic_putb(pcic, socket,
3317 pcic_putb(pcic, socket,
3321 pcic_putb(pcic, socket,
3330 * at the socket. If this window doesn't have
3345 pcic_putb(pcic, socket,
3349 pcic_putb(pcic, socket,
3385 pcic_set_cdtimers(pcic, socket,
3419 select = pcic_getb(pcic, socket, PCIC_IO_CONTROL);
3422 pcic_putb(pcic, socket, PCIC_IO_CONTROL, select);
3427 select = pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE);
3428 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE,
3439 xxdmp_all_regs(pcic, window->socket * 0x40, 24);
3456 select = pcic_getb(pcic, socket,
3458 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE,
3469 pcic_putb(pcic, socket,
3471 pcic_putb(pcic, socket,
3473 pcic_putb(pcic, socket,
3475 pcic_putb(pcic, socket,
3510 * Lie to socket services if we are not ready.
3559 int which, socket, window;
3563 /* get real socket/window numbers */
3565 socket = page->window / PCIC_NUMWINSOCK;
3570 "pcic_set_page: window=%d, socket=%d, page=%d\n",
3571 window, socket, page->page);
3584 memp = &pcic->pc_sockets[socket].pcs_windows[window].mem;
3640 pcic_putb(pcic, socket, PCIC_CARDMEM_0_LOW + select,
3642 (void) pcic_getb(pcic, socket, PCIC_CARDMEM_0_LOW + select);
3643 pcic_putb(pcic, socket, PCIC_CARDMEM_0_HI + select,
3645 (void) pcic_getb(pcic, socket, PCIC_CARDMEM_0_HI + select);
3651 which = pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE);
3653 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, which);
3654 (void) pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE);
3664 xxdmp_all_regs(pcic, socket, -1);
3673 pcic_mswait(pcic, socket, 2);
3691 pcic_set_vcc_level(pcicdev_t *pcic, set_socket_t *socket)
3699 (void *)pcic, socket->VccLevel);
3708 if (socket->VccLevel == 0) {
3715 if (socket->VccLevel >= pcic->pc_numpower) {
3729 * card type from the adapter socket present state register
3737 "socket present state = 0x%x\n",
3745 socket->VccLevel = PCIC_VCC_3VLEVEL;
3749 socket->VccLevel = PCIC_VCC_5VLEVEL;
3766 switch (socket->VccLevel) {
3782 * sets basic socket configuration
3785 pcic_set_socket(dev_info_t *dip, set_socket_t *socket)
3789 pcic_socket_t *sockp = &pcic->pc_sockets[socket->socket];
3797 "pcic_set_socket(dip=%p, socket=%d)"
3799 socket->socket, socket->VccLevel, socket->Vpp1Level,
3800 socket->Vpp2Level);
3812 if (socket->Vpp1Level != socket->Vpp2Level)
3815 if (socket->VccLevel == 0 || !(sockp->pcs_flags & PCS_CARD_PRESENT)) {
3823 socket->VccLevel, socket->Vpp1Level, socket->Vpp2Level);
3826 if (socket->VccLevel >= pcic->pc_numpower)
3829 switch (pcic_power[socket->VccLevel].PowerLevel) {
3856 sockp->pcs_vcc = socket->VccLevel;
3868 socket->VccLevel, powerlevel);
3872 if ((int)socket->Vpp1Level >= 0 &&
3873 socket->Vpp1Level < pcic->pc_numpower) {
3874 if (!(pcic_power[socket->Vpp1Level].ValidSignals
3878 ind = pcic_power[socket->Vpp1Level].PowerLevel/10;
3880 sockp->pcs_vpp1 = socket->Vpp1Level;
3882 if ((int)socket->Vpp2Level >= 0 &&
3883 socket->Vpp2Level < pcic->pc_numpower) {
3884 if (!(pcic_power[socket->Vpp2Level].ValidSignals
3888 ind = pcic_power[socket->Vpp2Level].PowerLevel/10;
3890 sockp->pcs_vpp2 = socket->Vpp2Level;
3923 /* turn socket->IREQRouting off while programming */
3924 interrupt = pcic_getb(pcic, socket->socket, PCIC_INTERRUPT);
3928 pcic_putb(pcic, socket->socket, PCIC_INTERRUPT, interrupt);
3932 pcic_82092_smiirq_ctl(pcic, socket->socket, PCIC_82092_CTL_IRQ,
3940 mirq = pcic_getb(pcic, socket->socket, PCIC_MANAGEMENT_INT);
3946 socket->SCIntMask, interrupt, mirq);
3949 pcic_putb(pcic, socket->socket, PCIC_MANAGEMENT_INT,
3953 sockp->pcs_intmask = socket->SCIntMask;
3964 if (sockp->pcs_intmask & SBM_BVD1 || socket->IFType == IF_IO)
3984 pcic_mswait(pcic, socket->socket, 10);
4002 irq = pcic_getb(pcic, socket->socket, PCIC_CARD_DETECT);
4009 pcic_putb(pcic, socket->socket, PCIC_CARD_DETECT, irq);
4013 if (socket->IFType == IF_IO) {
4014 pcic_putb(pcic, socket->socket, PCIC_MISC_CTL_2, 0x0);
4015 value = pcic_getb(pcic, socket->socket,
4019 pcic_putb(pcic, socket->socket, PCIC_MISC_CTL_1,
4022 value = pcic_getb(pcic, socket->socket,
4025 pcic_putb(pcic, socket->socket, PCIC_MISC_CTL_1,
4032 value = pcic_getb(pcic, socket->socket, PCIC_MISC_CTL_1);
4033 if ((socket->IFType == IF_IO) && (pcic->pc_flags & PCF_AUDIO)) {
4044 pcic_putb(pcic, socket->socket, PCIC_MISC_CTL_1, value);
4049 if ((socket->IFType == IF_IO) && (pcic->pc_flags & PCF_AUDIO))
4069 if ((socket->IFType == IF_IO) && (pcic->pc_flags & PCF_AUDIO)) {
4093 orig_pwrctl = pcic_getb(pcic, socket->socket, PCIC_POWER_CONTROL);
4096 pcic_putb(pcic, socket->socket,
4098 (void) pcic_getb(pcic, socket->socket, PCIC_POWER_CONTROL);
4102 value = pcic_cbus_powerctl(pcic, socket->socket);
4105 value = pcic_exca_powerctl(pcic, socket->socket, powerlevel);
4117 orig_pwrctl = pcic_getb(pcic, socket->socket,
4120 pcic_putb(pcic, socket->socket,
4122 (void) pcic_getb(pcic, socket->socket, PCIC_POWER_CONTROL);
4129 pcic_putb(pcic, socket->socket, PCIC_MANAGEMENT_INT, mirq);
4134 mirq, pcic_getb(pcic, socket->socket, PCIC_POWER_CONTROL),
4139 if (socket->IFType == IF_IO) {
4141 irq = socket->IREQRouting & PCIC_INTR_MASK;
4142 value = pcic_getb(pcic, socket->socket, PCIC_INTERRUPT);
4158 pcic_putb(pcic, socket->socket, PCIC_INTERRUPT, value);
4159 if (socket->IREQRouting & IRQ_ENABLE) {
4160 pcic_enable_io_intr(pcic, socket->socket, irq);
4163 pcic_disable_io_intr(pcic, socket->socket);
4170 (socket->IREQRouting & IRQ_ENABLE) ?
4172 xxdmp_all_regs(pcic, socket->socket, 20);
4180 value = pcic_getb(pcic, socket->socket, PCIC_INTERRUPT);
4182 pcic_putb(pcic, socket->socket, PCIC_INTERRUPT, value);
4183 pcic_disable_io_intr(pcic, socket->socket);
4187 sockp->pcs_state &= ~socket->State;
4196 * returns basic characteristics of the socket
4200 pcic_inquire_socket(dev_info_t *dip, inquire_socket_t *socket)
4206 socket->SCIntCaps = PCIC_DEFAULT_INT_CAPS;
4207 socket->SCRptCaps = PCIC_DEFAULT_RPT_CAPS;
4208 socket->CtlIndCaps = PCIC_DEFAULT_CTL_CAPS;
4209 value = pcic->pc_sockets[socket->socket].pcs_flags;
4210 socket->SocketCaps = (value & PCS_SOCKET_IO) ? IF_IO : IF_MEMORY;
4211 socket->ActiveHigh = 0;
4213 socket->ActiveLow = 0xfff0;
4227 int type, socket;
4230 socket = window->window / PCIC_NUMWINSOCK;
4235 "pcic_inquire_window: window = %d/%d socket=%d\n",
4236 window->window, type, socket);
4246 /* initialize the socket map - one socket per window */
4248 PR_SET(window->Sockets, socket);
4311 int socket, window;
4314 socket = page->window / PCIC_NUMWINSOCK;
4318 if (window < PCIC_IOWINDOWS || socket >= pcic->pc_numsockets) {
4322 winp = &pcic->pc_sockets[socket].pcs_windows[window].mem;
4343 * returns information about the current socket setting
4347 pcic_get_socket(dev_info_t *dip, get_socket_t *socket)
4354 socknum = socket->socket;
4357 socket->SCIntMask = sockp->pcs_intmask;
4360 socket->state = sockp->pcs_state;
4361 if (socket->state & SBM_CD) {
4362 socket->VccLevel = sockp->pcs_vcc;
4363 socket->Vpp1Level = sockp->pcs_vpp1;
4364 socket->Vpp2Level = sockp->pcs_vpp2;
4367 socket->IRQRouting = sockp->pcs_irq | irq_enabled;
4368 socket->IFType = (sockp->pcs_flags & PCS_CARD_IO) ?
4371 socket->VccLevel = 0;
4372 socket->Vpp1Level = 0;
4373 socket->Vpp2Level = 0;
4374 socket->IRQRouting = 0;
4375 socket->IFType = IF_MEMORY;
4377 socket->CtlInd = 0; /* no indicators */
4386 * the selected socket
4397 socknum = status->socket;
4419 cmn_err(CE_CONT, "pcic_get_status: socket=%d, CardState=%x,"
4463 int socket, win;
4467 socket = window->window / PCIC_NUMWINSOCK;
4471 cmn_err(CE_CONT, "pcic_get_window(socket=%d, window=%d)\n",
4472 socket, win);
4476 if (socket > pcic->pc_numsockets)
4479 sockp = &pcic->pc_sockets[socket];
4482 window->socket = socket;
4524 pcic_ll_reset(pcicdev_t *pcic, int socket)
4530 windowbits = pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE);
4534 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, 0);
4538 "pcic_ll_reset(socket %d) powerlevel=%x cbctl 0x%x cbps 0x%x\n",
4539 socket, pcic_getb(pcic, socket, PCIC_POWER_CONTROL),
4555 pwr = pcic_getb(pcic, socket, PCIC_POWER_CONTROL);
4556 pcic_putb(pcic, socket, PCIC_POWER_CONTROL,
4558 (void) pcic_getb(pcic, socket, PCIC_POWER_CONTROL);
4565 pcic_mswait(pcic, socket, pcic_prereset_time);
4571 iobits = pcic_getb(pcic, socket, PCIC_INTERRUPT);
4573 pcic_putb(pcic, socket, PCIC_INTERRUPT, iobits);
4574 (void) pcic_getb(pcic, socket, PCIC_INTERRUPT);
4578 pcic_82092_smiirq_ctl(pcic, socket, PCIC_82092_CTL_IRQ,
4585 pcic->pc_sockets[socket].pcs_state = 0;
4590 pcic_mswait(pcic, socket, pcic_reset_time);
4596 pcic_putb(pcic, socket, PCIC_INTERRUPT, PCIC_RESET | iobits);
4597 (void) pcic_getb(pcic, socket, PCIC_INTERRUPT);
4607 pcic_mswait(pcic, socket, pcic_postreset_time);
4619 pcic_putb(pcic, socket, PCIC_POWER_CONTROL, pwr);
4620 (void) pcic_getb(pcic, socket, PCIC_POWER_CONTROL);
4632 * puts the PC Card in the socket into the RESET state
4634 * The socket is back to initial state when done
4637 pcic_reset_socket(dev_info_t *dip, int socket, int mode)
4648 (void *)dip, socket, mode,
4655 mint = pcic_getb(pcic, socket, PCIC_MANAGEMENT_INT);
4656 pcic_putb(pcic, socket, PCIC_MANAGEMENT_INT, mint & ~PCIC_CHANGE_MASK);
4658 sockp = &pcic->pc_sockets[socket];
4660 value = pcic_ll_reset(pcic, socket);
4682 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, value);
4684 pcic_mswait(pcic, socket, 10);
4686 pcic_putb(pcic, socket, PCIC_MANAGEMENT_INT, mint);
4750 pcic->irq_current->socket = handler->socket;
4763 intr->socket = handler->socket;
4809 * ISA: there is an interrupt per adapter and per socket and
4817 * multifunction: this requires sharing the interrupts on a per-socket
5028 xxdmp_cl_regs(pcicdev_t *pcic, int socket, uint32_t len)
5040 sval = socket;
5064 i = pcic_getb(pcic, socket, PCIC_TIME_SETUP_0);
5065 j = pcic_getb(pcic, socket, PCIC_TIME_SETUP_1);
5068 i = pcic_getb(pcic, socket, PCIC_TIME_COMMAND_0);
5069 j = pcic_getb(pcic, socket, PCIC_TIME_COMMAND_1);
5072 i = pcic_getb(pcic, socket, PCIC_TIME_RECOVER_0);
5073 j = pcic_getb(pcic, socket, PCIC_TIME_RECOVER_1);
5079 value = clext_reg_read(pcic, socket, cxregs[i].off);
5104 xxdmp_all_regs(pcicdev_t *pcic, int socket, uint32_t len)
5115 "----------- PCIC Registers for socket %d---------\n",
5116 socket);
5121 value = pcic_getb(pcic, socket, iregs[i].off);
5147 (void) xxdmp_cl_regs(pcic, socket, 0xFFFF);
5160 pcic_mswait(pcicdev_t *pcic, int socket, int ms)
5163 pcic->pc_sockets[socket].pcs_flags |= PCS_WAITING;
5167 pcic->pc_sockets[socket].pcs_flags &= ~PCS_WAITING;
5178 pcic_check_ready(pcicdev_t *pcic, int socket)
5182 intstate = pcic_getb(pcic, socket, PCIC_INTERRUPT);
5183 ifstate = pcic_getb(pcic, socket, PCIC_INTERFACE_STATUS);
5195 xxdmp_all_regs(pcic, socket, -1);
5390 pcic_82092_smiirq_ctl(pcicdev_t *pcic, int socket, int intr, int state)
5397 val = PCIC_82092_SMI_CTL(socket,
5400 val = PCIC_82092_SMI_CTL(socket, state);
5403 val = PCIC_82092_IRQ_CTL(socket,
5406 val = PCIC_82092_IRQ_CTL(socket, state);
5476 "pcic%d handle_cd_change: socket %d card status 0x%x"
5574 "pcic%d: Odd card insertion indication on socket %d\n",
5658 "socket %d.%d\n",
5696 pcic_getb(pcicdev_t *pcic, int socket, int reg)
5702 cmn_err(CE_CONT, "pcic_getb0: pcic=%p socket=%d reg=%d\n",
5703 (void *)pcic, socket, reg);
5715 work = (socket * PCIC_SOCKET_1) | reg;
5722 pcic_putb(pcicdev_t *pcic, int socket, int reg, int8_t value)
5729 "pcic_putb0: pcic=%p socket=%d reg=%d value=%x \n",
5730 (void *)pcic, socket, reg, value);
5745 work = (socket * PCIC_SOCKET_1) | reg;
6109 s.socket = sockp->pcs_socket;
6135 g.socket = sockp->pcs_socket;
6140 s.socket = sockp->pcs_socket;
6150 pcmcia_cb_resumed(s.socket);
6178 s.socket = sockp->pcs_socket;
6210 pcic_enable_io_intr(pcicdev_t *pcic, int socket, int irq)
6215 value = pcic_getb(pcic, socket, PCIC_INTERRUPT) & ~PCIC_INTR_MASK;
6216 pcic_putb(pcic, socket, PCIC_INTERRUPT, value | irq);
6220 pcic_82092_smiirq_ctl(pcic, socket, PCIC_82092_CTL_IRQ,
6258 pcic_disable_io_intr(pcicdev_t *pcic, int socket)
6263 value = pcic_getb(pcic, socket, PCIC_INTERRUPT) & ~PCIC_INTR_MASK;
6264 pcic_putb(pcic, socket, PCIC_INTERRUPT, value);
6268 pcic_82092_smiirq_ctl(pcic, socket, PCIC_82092_CTL_IRQ,
6473 "pcic_debounce(0x%p, dip=0x%p) socket %d st 0x%x "
6579 pcic_exca_powerctl(pcicdev_t *pcic, int socket, int powerlevel)
6584 orig_pwrctl = pcic_getb(pcic, socket, PCIC_POWER_CONTROL);
6588 "pcic_exca_powerctl(socket %d) powerlevel=%x orig 0x%x\n",
6589 socket, powerlevel, orig_pwrctl);
6598 * set power to socket
6601 pcic_putb(pcic, socket, PCIC_POWER_CONTROL, powerlevel);
6602 (void) pcic_getb(pcic, socket, PCIC_POWER_CONTROL);
6615 pcic_putb(pcic, socket, PCIC_POWER_CONTROL, powerlevel);
6617 value = pcic_getb(pcic, socket, PCIC_POWER_CONTROL);
6618 pcic_mswait(pcic, socket, pcic_powerdelay);
6622 value, pcic_getb(pcic, socket,
6634 ifs = pcic_getb(pcic, socket,
6639 pcic_putb(pcic, socket,
6641 (void) pcic_getb(pcic, socket,
6643 pcic_mswait(pcic, socket, 40);
6647 pcic_mswait(pcic, socket, 100);
6649 pcic_putb(pcic, socket,
6652 (void) pcic_getb(pcic, socket,
6654 pcic_mswait(pcic, socket,
6656 pcic_putb(pcic, socket,
6658 (void) pcic_getb(pcic, socket,
6660 pcic_mswait(pcic, socket,
6667 "pcic socket %d: Power didn't get turned"
6670 socket, ifs,
6671 pcic_getb(pcic, socket, PCIC_POWER_CONTROL),
6673 pcic_getb(pcic, socket, PCIC_MISC_CTL_1),
6674 pcic_getb(pcic, socket, PCIC_INTERRUPT),
6683 pcic_getb(pcic, socket, PCIC_POWER_CONTROL),
6684 pcic_getb(pcic, socket, PCIC_MISC_CTL_1),
6685 pcic_getb(pcic, socket, PCIC_INTERRUPT));
6689 pcic_putb(pcic, socket, PCIC_POWER_CONTROL, powerlevel);
6690 (void) pcic_getb(pcic, socket, PCIC_POWER_CONTROL);
6698 pcic_cbus_powerctl(pcicdev_t *pcic, int socket)
6702 pcic_socket_t *sockp = &pcic->pc_sockets[socket];
6716 "pcic_cbus_powerctl(socket %d) vcc %d vpp1 %d "
6718 socket, sockp->pcs_vcc, sockp->pcs_vpp1, orig_cbctl, cbctl);
6723 iobits = pcic_getb(pcic, socket, PCIC_INTERRUPT);
6724 pcic_putb(pcic, socket, PCIC_INTERRUPT,
6730 pcic_mswait(pcic, socket, pcic_powerdelay);
6745 pcic_mswait(pcic, socket, 400);
6765 pcic_putb(pcic, socket, PCIC_INTERRUPT, iobits);
6769 pcic_mswait(pcic, socket, 40);
6773 pcic_putb(pcic, socket, PCIC_INTERRUPT, iobits);
6776 "pcic socket %d: Power didn't get turned on/off!\n"
6778 "vcc %d vpp1 %d", socket, cbstev,