34 #include <linux/module.h>
36 #include <linux/kernel.h>
38 #include <linux/ptrace.h>
39 #include <linux/slab.h>
40 #include <linux/string.h>
42 #include <linux/serial_core.h>
60 static int do_sound = 1;
62 static int buggy_uart;
110 uart->
port.uartclk = 14745600;
113 static int quirk_post_ibm(
struct pcmcia_device *
link)
135 static void quirk_config_nokia(
struct pcmcia_device *link)
143 static void quirk_wakeup_oxsemi(
struct pcmcia_device *link)
157 static void quirk_wakeup_possio_gcc(
struct pcmcia_device *link)
180 static void quirk_config_socket(
struct pcmcia_device *link)
185 link->config_flags |= CONF_ENABLE_ESR;
193 .setup = quirk_setup_brainboxes_0104,
198 .setup = quirk_setup_brainboxes_0104,
203 .post = quirk_post_ibm,
216 .config = quirk_config_nokia,
225 .wakeup = quirk_wakeup_oxsemi,
230 .wakeup = quirk_wakeup_possio_gcc,
251 .config = quirk_config_socket,
256 .config = quirk_config_socket,
261 static int serial_config(
struct pcmcia_device * link);
264 static void serial_remove(
struct pcmcia_device *link)
269 dev_dbg(&link->dev,
"serial_release\n");
274 for (i = 0; i < info->
ndev; i++)
281 static int serial_suspend(
struct pcmcia_device *link)
286 for (i = 0; i < info->
ndev; i++)
292 static int serial_resume(
struct pcmcia_device *link)
297 for (i = 0; i < info->
ndev; i++)
301 info->
quirk->wakeup(link);
306 static int serial_probe(
struct pcmcia_device *link)
310 dev_dbg(&link->dev,
"serial_attach()\n");
319 link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
321 link->config_flags |= CONF_ENABLE_SPKR;
323 return serial_config(link);
326 static void serial_detach(
struct pcmcia_device *link)
330 dev_dbg(&link->dev,
"serial_detach\n");
344 unsigned int iobase,
int irq)
353 uart.port.uartclk = 1843200;
354 uart.port.dev = &handle->dev;
363 pr_err(
"serial_cs: serial8250_register_8250_port() at 0x%04lx, irq %d failed\n",
364 (
unsigned long)iobase, irq);
376 static int pfc_config(
struct pcmcia_device *p_dev)
378 unsigned int port = 0;
381 if ((p_dev->resource[1]->end != 0) &&
382 (resource_size(p_dev->resource[1]) == 8)) {
383 port = p_dev->resource[1]->start;
386 (resource_size(p_dev->resource[0]) == 0x40)) {
387 port = p_dev->resource[0]->start + 0x28;
391 return setup_serial(p_dev, info, port, p_dev->irq);
393 dev_warn(&p_dev->dev,
"no usable port range found, giving up\n");
397 static int simple_config_check(
struct pcmcia_device *p_dev,
void *priv_data)
399 static const int size_table[2] = { 8, 16 };
400 int *
try = priv_data;
402 if (p_dev->resource[0]->start == 0)
405 if ((*
try & 0x1) == 0)
406 p_dev->io_lines = 16;
408 if (p_dev->resource[0]->end != size_table[(*
try >> 1)])
411 p_dev->resource[0]->end = 8;
412 p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
413 p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
418 static int simple_config_check_notpicky(
struct pcmcia_device *p_dev,
421 static const unsigned int base[5] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8, 0x0 };
424 if (p_dev->io_lines > 3)
427 p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
428 p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
429 p_dev->resource[0]->end = 8;
431 for (j = 0; j < 5; j++) {
432 p_dev->resource[0]->start = base[
j];
433 p_dev->io_lines = base[
j] ? 16 : 3;
440 static int simple_config(
struct pcmcia_device *link)
447 link->config_flags |= CONF_AUTO_SET_VPP;
448 for (
try = 0;
try < 4;
try++)
449 if (!pcmcia_loop_config(link, simple_config_check, &
try))
455 if (!pcmcia_loop_config(link, simple_config_check_notpicky,
NULL))
458 dev_warn(&link->dev,
"no usable port range found, giving up\n");
463 link->config_index &= ~(0x08);
469 info->
quirk->config(link);
474 return setup_serial(link, info, link->resource[0]->start, link->irq);
477 static int multi_config_check(
struct pcmcia_device *p_dev,
void *priv_data)
479 int *
multi = priv_data;
481 if (p_dev->resource[1]->end)
486 if (p_dev->resource[0]->end <= 8)
489 p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
490 p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
491 p_dev->resource[0]->end = *multi * 8;
498 static int multi_config_check_notpicky(
struct pcmcia_device *p_dev,
501 int *
base2 = priv_data;
503 if (!p_dev->resource[0]->end || !p_dev->resource[1]->end ||
504 p_dev->resource[0]->start + 8 != p_dev->resource[1]->start)
507 p_dev->resource[0]->end = p_dev->resource[1]->end = 8;
508 p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
509 p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
514 *base2 = p_dev->resource[0]->start + 8;
518 static int multi_config(
struct pcmcia_device *link)
524 if (!pcmcia_loop_config(link, multi_config_check, &info->
multi))
525 base2 = link->resource[0]->start + 8;
529 if (pcmcia_loop_config(link, multi_config_check_notpicky,
531 dev_warn(&link->dev,
"no usable port range "
532 "found, giving up\n");
538 dev_warn(&link->dev,
"no usable IRQ found, continuing...\n");
544 info->
quirk->config(link);
558 if (link->config_index == 1 ||
559 link->config_index == 3) {
560 err = setup_serial(link, info, base2,
562 base2 = link->resource[0]->start;
564 err = setup_serial(link, info, link->resource[0]->start,
574 info->
quirk->wakeup(link);
579 setup_serial(link, info, link->resource[0]->start, link->irq);
580 for (i = 0; i < info->
multi - 1; i++)
581 setup_serial(link, info, base2 + (8 * i),
586 static int serial_check_for_multi(
struct pcmcia_device *p_dev,
void *priv_data)
590 if (!p_dev->resource[0]->end)
593 if ((!p_dev->resource[1]->end) && (p_dev->resource[0]->end % 8 == 0))
594 info->
multi = p_dev->resource[0]->end >> 3;
596 if ((p_dev->resource[1]->end) && (p_dev->resource[0]->end == 8)
597 && (p_dev->resource[1]->end == 8))
604 static int serial_config(
struct pcmcia_device * link)
609 dev_dbg(&link->dev,
"serial_config\n");
612 info->
multi = (link->socket->functions > 1);
615 info->
manfid = link->manf_id;
616 info->
prodid = link->card_id;
619 if ((quirks[i].
manfid == ~0 ||
629 if ((info->
multi == 0) &&
630 (link->has_func_id) &&
631 (link->socket->pcmcia_pfc == 0) &&
634 pcmcia_loop_config(link, serial_check_for_multi, info);
643 "trying to set up [0x%04x:0x%04x] (pfc: %d, multi: %d, quirk: %p)\n",
644 link->manf_id, link->card_id,
645 link->socket->pcmcia_pfc, info->
multi, info->
quirk);
646 if (link->socket->pcmcia_pfc)
647 i = pfc_config(link);
648 else if (info->
multi > 1)
649 i = multi_config(link);
651 i = simple_config(link);
653 if (i || info->
ndev == 0)
661 if (info->
quirk->post(link))
667 dev_warn(&link->dev,
"failed to initialize\n");
673 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0057, 0x0021),
674 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0089, 0x110a),
675 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0104, 0x000a),
676 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0105, 0x0d0a),
677 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0105, 0x0e0a),
678 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0105, 0xea15),
679 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0109, 0x0501),
680 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0138, 0x110a),
681 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0140, 0x000a),
682 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0143, 0x3341),
683 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0143, 0xc0ab),
684 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x016c, 0x0081),
685 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x021b, 0x0101),
686 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x08a1, 0xc0ab),
687 PCMCIA_PFC_DEVICE_PROD_ID123(1,
"MEGAHERTZ",
"CC/XJEM3288",
"DATA/FAX/CELL ETHERNET MODEM", 0xf510db04, 0x04cd2988, 0x46a52d63),
688 PCMCIA_PFC_DEVICE_PROD_ID123(1,
"MEGAHERTZ",
"CC/XJEM3336",
"DATA/FAX/CELL ETHERNET MODEM", 0xf510db04, 0x0143b773, 0x46a52d63),
689 PCMCIA_PFC_DEVICE_PROD_ID123(1,
"MEGAHERTZ",
"EM1144T",
"PCMCIA MODEM", 0xf510db04, 0x856d66c8, 0xbd6c43ef),
690 PCMCIA_PFC_DEVICE_PROD_ID123(1,
"MEGAHERTZ",
"XJEM1144/CCEM1144",
"PCMCIA MODEM", 0xf510db04, 0x52d21e1e, 0xbd6c43ef),
691 PCMCIA_PFC_DEVICE_PROD_ID13(1,
"Xircom",
"CEM28", 0x2e3ee845, 0x0ea978ea),
692 PCMCIA_PFC_DEVICE_PROD_ID13(1,
"Xircom",
"CEM33", 0x2e3ee845, 0x80609023),
693 PCMCIA_PFC_DEVICE_PROD_ID13(1,
"Xircom",
"CEM56", 0x2e3ee845, 0xa650c32a),
694 PCMCIA_PFC_DEVICE_PROD_ID13(1,
"Xircom",
"REM10", 0x2e3ee845, 0x76df1d29),
695 PCMCIA_PFC_DEVICE_PROD_ID13(1,
"Xircom",
"XEM5600", 0x2e3ee845, 0xf1403719),
696 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"AnyCom",
"Fast Ethernet + 56K COMBO", 0x578ba6e7, 0xb0ac62c4),
697 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"ATKK",
"LM33-PCM-T", 0xba9eb7e2, 0x077c174e),
698 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"D-Link",
"DME336T", 0x1a424a1c, 0xb23897ff),
699 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"Gateway 2000",
"XJEM3336", 0xdd9989be, 0x662c394c),
700 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"Grey Cell",
"GCS3000", 0x2a151fac, 0x48b932ae),
701 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"Linksys",
"EtherFast 10&100 + 56K PC Card (PCMLM56)", 0x0733cc81, 0xb3765033),
702 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"LINKSYS",
"PCMLM336", 0xf7cb0b07, 0x7a821b58),
703 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"MEGAHERTZ",
"XJEM1144/CCEM1144", 0xf510db04, 0x52d21e1e),
704 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"MICRO RESEARCH",
"COMBO-L/M-336", 0xb2ced065, 0x3ced0555),
705 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"NEC",
"PK-UG-J001" ,0x18df0ba0 ,0x831b1064),
706 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"Ositech",
"Trumpcard:Jack of Diamonds Modem+Ethernet", 0xc2f80cd, 0x656947b9),
707 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"Ositech",
"Trumpcard:Jack of Hearts Modem+Ethernet", 0xc2f80cd, 0xdc9ba5ed),
708 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"PCMCIAs",
"ComboCard", 0xdcfe12d3, 0xcd8906cc),
709 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"PCMCIAs",
"LanModem", 0xdcfe12d3, 0xc67c648f),
710 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"TDK",
"GlobalNetworker 3410/3412", 0x1eae9475, 0xd9a93bed),
711 PCMCIA_PFC_DEVICE_PROD_ID12(1,
"Xircom",
"CreditCard Ethernet+Modem II", 0x2e3ee845, 0xeca401bf),
712 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0032, 0x0e01),
713 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0032, 0x0a05),
714 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0032, 0x0b05),
715 PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0032, 0x1101),
716 PCMCIA_MFC_DEVICE_MANF_CARD(0, 0x0104, 0x0070),
717 PCMCIA_MFC_DEVICE_MANF_CARD(1, 0x0101, 0x0562),
718 PCMCIA_MFC_DEVICE_MANF_CARD(1, 0x0104, 0x0070),
719 PCMCIA_MFC_DEVICE_MANF_CARD(1, 0x016c, 0x0020),
720 PCMCIA_MFC_DEVICE_PROD_ID123(1,
"APEX DATA",
"MULTICARD",
"ETHERNET-MODEM", 0x11c2da09, 0x7289dc5d, 0xaad95e1f),
721 PCMCIA_MFC_DEVICE_PROD_ID12(1,
"IBM",
"Home and Away 28.8 PC Card ", 0xb569a6e5, 0x5bd4ff2c),
722 PCMCIA_MFC_DEVICE_PROD_ID12(1,
"IBM",
"Home and Away Credit Card Adapter", 0xb569a6e5, 0x4bdf15c3),
723 PCMCIA_MFC_DEVICE_PROD_ID12(1,
"IBM",
"w95 Home and Away Credit Card ", 0xb569a6e5, 0xae911c15),
724 PCMCIA_MFC_DEVICE_PROD_ID1(1,
"Motorola MARQUIS", 0xf03e4e77),
725 PCMCIA_MFC_DEVICE_PROD_ID2(1,
"FAX/Modem/Ethernet Combo Card ", 0x1ed59302),
726 PCMCIA_DEVICE_MANF_CARD(0x0089, 0x0301),
727 PCMCIA_DEVICE_MANF_CARD(0x00a4, 0x0276),
728 PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0039),
729 PCMCIA_DEVICE_MANF_CARD(0x0104, 0x0006),
730 PCMCIA_DEVICE_MANF_CARD(0x0105, 0x0101),
731 PCMCIA_DEVICE_MANF_CARD(0x0105, 0x100a),
732 PCMCIA_DEVICE_MANF_CARD(0x0105, 0x3e0a),
733 PCMCIA_DEVICE_MANF_CARD(0x0105, 0x410a),
734 PCMCIA_DEVICE_MANF_CARD(0x0107, 0x0002),
735 PCMCIA_DEVICE_MANF_CARD(0x010b, 0x0d50),
736 PCMCIA_DEVICE_MANF_CARD(0x010b, 0x0d51),
737 PCMCIA_DEVICE_MANF_CARD(0x010b, 0x0d52),
738 PCMCIA_DEVICE_MANF_CARD(0x010b, 0x0d53),
739 PCMCIA_DEVICE_MANF_CARD(0x010b, 0xd180),
740 PCMCIA_DEVICE_MANF_CARD(0x0115, 0x3330),
741 PCMCIA_DEVICE_MANF_CARD(0x0124, 0x0100),
742 PCMCIA_DEVICE_MANF_CARD(0x0134, 0x5600),
743 PCMCIA_DEVICE_MANF_CARD(0x0137, 0x000e),
744 PCMCIA_DEVICE_MANF_CARD(0x0137, 0x001b),
745 PCMCIA_DEVICE_MANF_CARD(0x0137, 0x0025),
746 PCMCIA_DEVICE_MANF_CARD(0x0137, 0x0045),
747 PCMCIA_DEVICE_MANF_CARD(0x0137, 0x0052),
748 PCMCIA_DEVICE_MANF_CARD(0x016c, 0x0006),
749 PCMCIA_DEVICE_MANF_CARD(0x0200, 0x0001),
750 PCMCIA_DEVICE_PROD_ID134(
"ADV",
"TECH",
"COMpad-32/85", 0x67459937, 0x916d02ba, 0x8fbe92ae),
751 PCMCIA_DEVICE_PROD_ID124(
"GATEWAY2000",
"CC3144",
"PCMCIA MODEM", 0x506bccae, 0xcb3685f1, 0xbd6c43ef),
752 PCMCIA_DEVICE_PROD_ID14(
"MEGAHERTZ",
"PCMCIA MODEM", 0xf510db04, 0xbd6c43ef),
753 PCMCIA_DEVICE_PROD_ID124(
"TOSHIBA",
"T144PF",
"PCMCIA MODEM", 0xb4585a1a, 0x7271409c, 0xbd6c43ef),
754 PCMCIA_DEVICE_PROD_ID123(
"FUJITSU",
"FC14F ",
"MBH10213", 0x6ee5a3d8, 0x30ead12b, 0xb00f05a0),
755 PCMCIA_DEVICE_PROD_ID123(
"Novatel Wireless",
"Merlin UMTS Modem",
"U630", 0x32607776, 0xd9e73b13, 0xe87332e),
756 PCMCIA_DEVICE_PROD_ID13(
"MEGAHERTZ",
"V.34 PCMCIA MODEM", 0xf510db04, 0xbb2cce4a),
757 PCMCIA_DEVICE_PROD_ID12(
"Brain Boxes",
"Bluetooth PC Card", 0xee138382, 0xd4ce9b02),
758 PCMCIA_DEVICE_PROD_ID12(
"CIRRUS LOGIC",
"FAX MODEM", 0xe625f451, 0xcecd6dfa),
759 PCMCIA_DEVICE_PROD_ID12(
"COMPAQ",
"PCMCIA 28800 FAX/DATA MODEM", 0xa3a3062c, 0x8cbd7c76),
760 PCMCIA_DEVICE_PROD_ID12(
"COMPAQ",
"PCMCIA 33600 FAX/DATA MODEM", 0xa3a3062c, 0x5a00ce95),
761 PCMCIA_DEVICE_PROD_ID12(
"Computerboards, Inc.",
"PCM-COM422", 0xd0b78f51, 0x7e2d49ed),
762 PCMCIA_DEVICE_PROD_ID12(
"Dr. Neuhaus",
"FURY CARD 14K4", 0x76942813, 0x8b96ce65),
763 PCMCIA_DEVICE_PROD_ID12(
"IBM",
"ISDN/56K/GSM", 0xb569a6e5, 0xfee5297b),
764 PCMCIA_DEVICE_PROD_ID12(
"Intelligent",
"ANGIA FAX/MODEM", 0xb496e65e, 0xf31602a6),
765 PCMCIA_DEVICE_PROD_ID12(
"Intel",
"MODEM 2400+", 0x816cc815, 0x412729fb),
766 PCMCIA_DEVICE_PROD_ID12(
"Intertex",
"IX34-PCMCIA", 0xf8a097e3, 0x97880447),
767 PCMCIA_DEVICE_PROD_ID12(
"IOTech Inc ",
"PCMCIA Dual RS-232 Serial Port Card", 0x3bd2d898, 0x92abc92f),
768 PCMCIA_DEVICE_PROD_ID12(
"MACRONIX",
"FAX/MODEM", 0x668388b3, 0x3f9bdf2f),
769 PCMCIA_DEVICE_PROD_ID12(
"Multi-Tech",
"MT1432LT", 0x5f73be51, 0x0b3e2383),
770 PCMCIA_DEVICE_PROD_ID12(
"Multi-Tech",
"MT2834LT", 0x5f73be51, 0x4cd7c09e),
771 PCMCIA_DEVICE_PROD_ID12(
"OEM ",
"C288MX ", 0xb572d360, 0xd2385b7a),
772 PCMCIA_DEVICE_PROD_ID12(
"Option International",
"V34bis GSM/PSTN Data/Fax Modem", 0x9d7cd6f5, 0x5cb8bf41),
773 PCMCIA_DEVICE_PROD_ID12(
"PCMCIA ",
"C336MX ", 0x99bcafe9, 0xaa25bcab),
774 PCMCIA_DEVICE_PROD_ID12(
"Quatech Inc",
"PCMCIA Dual RS-232 Serial Port Card", 0xc4420b35, 0x92abc92f),
775 PCMCIA_DEVICE_PROD_ID12(
"Quatech Inc",
"Dual RS-232 Serial Port PC Card", 0xc4420b35, 0x031a380d),
776 PCMCIA_DEVICE_PROD_ID12(
"Telia",
"SurfinBird 560P/A+", 0xe2cdd5e, 0xc9314b38),
777 PCMCIA_DEVICE_PROD_ID1(
"Smart Serial Port", 0x2d8ce292),
778 PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1,
"PCMCIA",
"EN2218-LAN/MODEM", 0x281f1c5d, 0x570f348e,
"cis/PCMLM28.cis"),
779 PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1,
"PCMCIA",
"UE2218-LAN/MODEM", 0x281f1c5d, 0x6fdcacee,
"cis/PCMLM28.cis"),
780 PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1,
"Psion Dacom",
"Gold Card V34 Ethernet", 0xf5f025c2, 0x338e8155,
"cis/PCMLM28.cis"),
781 PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1,
"Psion Dacom",
"Gold Card V34 Ethernet GSM", 0xf5f025c2, 0x4ae85d35,
"cis/PCMLM28.cis"),
782 PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1,
"LINKSYS",
"PCMLM28", 0xf7cb0b07, 0x66881874,
"cis/PCMLM28.cis"),
783 PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1,
"TOSHIBA",
"Modem/LAN Card", 0xb4585a1a, 0x53f922f8,
"cis/PCMLM28.cis"),
784 PCMCIA_MFC_DEVICE_CIS_PROD_ID12(1,
"DAYNA COMMUNICATIONS",
"LAN AND MODEM MULTIFUNCTION", 0x8fdf8f89, 0xdd5ed9e8,
"cis/DP83903.cis"),
785 PCMCIA_MFC_DEVICE_CIS_PROD_ID4(1,
"NSC MF LAN/Modem", 0x58fc6056,
"cis/DP83903.cis"),
786 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0556,
"cis/3CCFEM556.cis"),
787 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0175, 0x0000,
"cis/DP83903.cis"),
788 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0035,
"cis/3CXEM556.cis"),
789 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x003d,
"cis/3CXEM556.cis"),
790 PCMCIA_DEVICE_CIS_PROD_ID12(
"Sierra Wireless",
"AC850", 0xd85f6206, 0x42a2c018,
"cis/SW_8xx_SER.cis"),
791 PCMCIA_DEVICE_CIS_PROD_ID12(
"Sierra Wireless",
"AC860", 0xd85f6206, 0x698f93db,
"cis/SW_8xx_SER.cis"),
792 PCMCIA_DEVICE_CIS_PROD_ID12(
"Sierra Wireless",
"AC710/AC750", 0xd85f6206, 0x761b11e0,
"cis/SW_7xx_SER.cis"),
793 PCMCIA_DEVICE_CIS_MANF_CARD(0x0192, 0xa555,
"cis/SW_555_SER.cis"),
794 PCMCIA_DEVICE_CIS_MANF_CARD(0x013f, 0xa555,
"cis/SW_555_SER.cis"),
795 PCMCIA_DEVICE_CIS_PROD_ID12(
"MultiTech",
"PCMCIA 56K DataFax", 0x842047ee, 0xc2efcf03,
"cis/MT5634ZLX.cis"),
796 PCMCIA_DEVICE_CIS_PROD_ID12(
"ADVANTECH",
"COMpad-32/85B-2", 0x96913a85, 0x27ab5437,
"cis/COMpad2.cis"),
797 PCMCIA_DEVICE_CIS_PROD_ID12(
"ADVANTECH",
"COMpad-32/85B-4", 0x96913a85, 0xcec8f102,
"cis/COMpad4.cis"),
798 PCMCIA_DEVICE_CIS_PROD_ID123(
"ADVANTECH",
"COMpad-32/85",
"1.0", 0x96913a85, 0x8fbe92ae, 0x0877b627,
"cis/COMpad2.cis"),
799 PCMCIA_DEVICE_CIS_PROD_ID2(
"RS-COM 2P", 0xad20b156,
"cis/RS-COM-2P.cis"),
800 PCMCIA_DEVICE_CIS_MANF_CARD(0x0013, 0x0000,
"cis/GLOBETROTTER.cis"),
801 PCMCIA_DEVICE_PROD_ID12(
"ELAN DIGITAL SYSTEMS LTD, c1997.",
"SERIAL CARD: SL100 1.00.",0x19ca78af,0xf964f42b),
802 PCMCIA_DEVICE_PROD_ID12(
"ELAN DIGITAL SYSTEMS LTD, c1997.",
"SERIAL CARD: SL100",0x19ca78af,0x71d98e83),
803 PCMCIA_DEVICE_PROD_ID12(
"ELAN DIGITAL SYSTEMS LTD, c1997.",
"SERIAL CARD: SL232 1.00.",0x19ca78af,0x69fb7490),
804 PCMCIA_DEVICE_PROD_ID12(
"ELAN DIGITAL SYSTEMS LTD, c1997.",
"SERIAL CARD: SL232",0x19ca78af,0xb6bc0235),
805 PCMCIA_DEVICE_PROD_ID12(
"ELAN DIGITAL SYSTEMS LTD, c2000.",
"SERIAL CARD: CF232",0x63f2e0bd,0xb9e175d3),
806 PCMCIA_DEVICE_PROD_ID12(
"ELAN DIGITAL SYSTEMS LTD, c2000.",
"SERIAL CARD: CF232-5",0x63f2e0bd,0xfce33442),
807 PCMCIA_DEVICE_PROD_ID12(
"Elan",
"Serial Port: CF232",0x3beb8cf2,0x171e7190),
808 PCMCIA_DEVICE_PROD_ID12(
"Elan",
"Serial Port: CF232-5",0x3beb8cf2,0x20da4262),
809 PCMCIA_DEVICE_PROD_ID12(
"Elan",
"Serial Port: CF428",0x3beb8cf2,0xea5dd57d),
810 PCMCIA_DEVICE_PROD_ID12(
"Elan",
"Serial Port: CF500",0x3beb8cf2,0xd77255fa),
811 PCMCIA_DEVICE_PROD_ID12(
"Elan",
"Serial Port: IC232",0x3beb8cf2,0x6a709903),
812 PCMCIA_DEVICE_PROD_ID12(
"Elan",
"Serial Port: SL232",0x3beb8cf2,0x18430676),
813 PCMCIA_DEVICE_PROD_ID12(
"Elan",
"Serial Port: XL232",0x3beb8cf2,0x6f933767),
814 PCMCIA_MFC_DEVICE_PROD_ID12(0,
"Elan",
"Serial Port: CF332",0x3beb8cf2,0x16dc1ba7),
815 PCMCIA_MFC_DEVICE_PROD_ID12(0,
"Elan",
"Serial Port: SL332",0x3beb8cf2,0x19816c41),
816 PCMCIA_MFC_DEVICE_PROD_ID12(0,
"Elan",
"Serial Port: SL385",0x3beb8cf2,0x64112029),
817 PCMCIA_MFC_DEVICE_PROD_ID12(0,
"Elan",
"Serial Port: SL432",0x3beb8cf2,0x1cce7ac4),
818 PCMCIA_MFC_DEVICE_PROD_ID12(0,
"Elan",
"Serial+Parallel Port: SP230",0x3beb8cf2,0xdb9e58bc),
819 PCMCIA_MFC_DEVICE_PROD_ID12(1,
"Elan",
"Serial Port: CF332",0x3beb8cf2,0x16dc1ba7),
820 PCMCIA_MFC_DEVICE_PROD_ID12(1,
"Elan",
"Serial Port: SL332",0x3beb8cf2,0x19816c41),
821 PCMCIA_MFC_DEVICE_PROD_ID12(1,
"Elan",
"Serial Port: SL385",0x3beb8cf2,0x64112029),
822 PCMCIA_MFC_DEVICE_PROD_ID12(1,
"Elan",
"Serial Port: SL432",0x3beb8cf2,0x1cce7ac4),
823 PCMCIA_MFC_DEVICE_PROD_ID12(2,
"Elan",
"Serial Port: SL432",0x3beb8cf2,0x1cce7ac4),
824 PCMCIA_MFC_DEVICE_PROD_ID12(3,
"Elan",
"Serial Port: SL432",0x3beb8cf2,0x1cce7ac4),
825 PCMCIA_DEVICE_MANF_CARD(0x0279, 0x950b),
829 PCMCIA_DEVICE_FUNC_ID(2),
846 static struct pcmcia_driver serial_cs_driver = {
849 .probe = serial_probe,
850 .remove = serial_detach,
851 .id_table = serial_ids,
852 .suspend = serial_suspend,
853 .resume = serial_resume,
856 static int __init init_serial_cs(
void)
861 static void __exit exit_serial_cs(
void)