Commit 6f4567c8 authored by Timur Maximov's avatar Timur Maximov Committed by Dominik Brodowski

serial_cs: MD55x support (PCMCIA GPRS/EDGE modem) (kernel 2.6.33)

Many PCMCIA GPRS modems like: Onda Edge N100E, Novaway PC98 (OEM SPC98Z),
Rovermate Edgus Adaptmate-039 and others have same construction and
identification:

lspcmcia -vvv
Product Name:   Generic Modem: MD55x 1.00 Serial number: xxxxx-xxx
Identification: manf_id: 0x015d card_id: 0x4c45
                function: 2 (serial)
                prod_id(1): "Generic" (0xc49e4731)
                prod_id(2): "Modem: MD55x" (0x8913b110)
                prod_id(3): "1.00" (0x83dbf271)
                prod_id(4): "Serial number: xxxxx-xxx" (0x73ee9514)

Serial connection to GSM module based on Elan VPU16551 PCMCIA UART with
datasheet recommeded 14.7456MHz crystal oscillator.

By default serial_cs set UART clock == 1843200 Hz
For correct work need set clock 14745600 Hz.
This quirk already present in driver, only need add device in quirk list.
Signed-off-by: default avatarTimur Maximov <xcom.org@gmail.com>
Acked-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
parent a8408c17
...@@ -105,6 +105,10 @@ struct serial_cfg_mem { ...@@ -105,6 +105,10 @@ struct serial_cfg_mem {
* manfid 0x0160, 0x0104 * manfid 0x0160, 0x0104
* This card appears to have a 14.7456MHz clock. * This card appears to have a 14.7456MHz clock.
*/ */
/* Generic Modem: MD55x (GPRS/EDGE) have
* Elan VPU16551 UART with 14.7456MHz oscillator
* manfid 0x015D, 0x4C45
*/
static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_port *port) static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_port *port)
{ {
port->uartclk = 14745600; port->uartclk = 14745600;
...@@ -195,6 +199,11 @@ static const struct serial_quirk quirks[] = { ...@@ -195,6 +199,11 @@ static const struct serial_quirk quirks[] = {
.prodid = 0x0104, .prodid = 0x0104,
.multi = -1, .multi = -1,
.setup = quirk_setup_brainboxes_0104, .setup = quirk_setup_brainboxes_0104,
}, {
.manfid = 0x015D,
.prodid = 0x4C45,
.multi = -1,
.setup = quirk_setup_brainboxes_0104,
}, { }, {
.manfid = MANFID_IBM, .manfid = MANFID_IBM,
.prodid = ~0, .prodid = ~0,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment