unsigned int prodid;
        int multi;              /* 1 = multifunction, > 1 = # ports */
        void (*config)(struct pcmcia_device *);
+       void (*setup)(struct pcmcia_device *, struct uart_port *);
        void (*wakeup)(struct pcmcia_device *);
        int (*post)(struct pcmcia_device *);
 };
        u_char buf[256];
 };
 
+/*
+ * vers_1 5.0, "Brain Boxes", "2-Port RS232 card", "r6"
+ * manfid 0x0160, 0x0104
+ * This card appears to have a 14.7456MHz clock.
+ */
+static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_port *port)
+{
+       port->uartclk = 14745600;
+}
+
 static int quirk_post_ibm(struct pcmcia_device *link)
 {
        conf_reg_t reg = { 0, CS_READ, 0x800, 0 };
 
 static const struct serial_quirk quirks[] = {
        {
+               .manfid = 0x0160,
+               .prodid = 0x0104,
+               .multi  = -1,
+               .setup  = quirk_setup_brainboxes_0104,
+       }, {
                .manfid = MANFID_IBM,
                .prodid = ~0,
                .multi  = -1,
        port.dev = &handle_to_dev(handle);
        if (buggy_uart)
                port.flags |= UPF_BUGGY_UART;
+
+       if (info->quirk && info->quirk->setup)
+               info->quirk->setup(handle, &port);
+
        line = serial8250_register_port(&port);
        if (line < 0) {
                printk(KERN_NOTICE "serial_cs: serial8250_register_port() at "