diff options
| author | David Woodhouse <dwmw2@infradead.org> | 2008-05-30 08:15:13 -0400 |
|---|---|---|
| committer | David Woodhouse <David.Woodhouse@intel.com> | 2008-07-10 09:49:09 -0400 |
| commit | 3edbf98b863391bdd7ad2bf47b7db1689afac886 (patch) | |
| tree | 14d36c188adb20790f61cb046f7e95b01000bcbe /firmware | |
| parent | 2971c579f93bcff26744672ea98c13bef71ded97 (diff) | |
keyspan_pda: use request_firmware()
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'firmware')
| -rw-r--r-- | firmware/Makefile | 2 | ||||
| -rw-r--r-- | firmware/WHENCE | 14 | ||||
| -rw-r--r-- | firmware/keyspan_pda/keyspan_pda.HEX | 83 | ||||
| -rw-r--r-- | firmware/keyspan_pda/keyspan_pda.S | 1124 | ||||
| -rw-r--r-- | firmware/keyspan_pda/xircom_pgs.HEX | 87 | ||||
| -rw-r--r-- | firmware/keyspan_pda/xircom_pgs.S | 1192 |
6 files changed, 2502 insertions, 0 deletions
diff --git a/firmware/Makefile b/firmware/Makefile index db1b01a7a668..dd76fa5ab3fc 100644 --- a/firmware/Makefile +++ b/firmware/Makefile | |||
| @@ -49,6 +49,8 @@ fw-shipped- := keyspan/mpr.fw keyspan/usa18x.fw keyspan/usa19.fw \ | |||
| 49 | keyspan/usa28.fw keyspan/usa28xa.fw keyspan/usa28xb.fw \ | 49 | keyspan/usa28.fw keyspan/usa28xa.fw keyspan/usa28xb.fw \ |
| 50 | keyspan/usa28x.fw keyspan/usa49w.fw keyspan/usa49wlc.fw | 50 | keyspan/usa28x.fw keyspan/usa49w.fw keyspan/usa49wlc.fw |
| 51 | endif | 51 | endif |
| 52 | fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw | ||
| 53 | fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw | ||
| 52 | 54 | ||
| 53 | fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) | 55 | fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) |
| 54 | 56 | ||
diff --git a/firmware/WHENCE b/firmware/WHENCE index d66291a78f07..b5be4bc88007 100644 --- a/firmware/WHENCE +++ b/firmware/WHENCE | |||
| @@ -119,3 +119,17 @@ Original licence information: | |||
| 119 | part, requires the inclusion of this statement." | 119 | part, requires the inclusion of this statement." |
| 120 | 120 | ||
| 121 | -------------------------------------------------------------------------- | 121 | -------------------------------------------------------------------------- |
| 122 | |||
| 123 | Driver: keyspan_pda -- USB Keyspan PDA single-port serial device | ||
| 124 | |||
| 125 | File: keyspan_pda/keyspan_pda.fw | ||
| 126 | Source: keyspan_pda/keyspan_pda.S | ||
| 127 | |||
| 128 | File: keyspan_pda/xircom_pgs.fw | ||
| 129 | Source: keyspan_pda/xircom_pgs.S | ||
| 130 | |||
| 131 | Licence: GPLv2+ | ||
| 132 | |||
| 133 | Compiled from original 8051 source into Intel HEX, used in our binary ihex form. | ||
| 134 | |||
| 135 | -------------------------------------------------------------------------- | ||
diff --git a/firmware/keyspan_pda/keyspan_pda.HEX b/firmware/keyspan_pda/keyspan_pda.HEX new file mode 100644 index 000000000000..6fcf02bb4b2d --- /dev/null +++ b/firmware/keyspan_pda/keyspan_pda.HEX | |||
| @@ -0,0 +1,83 @@ | |||
| 1 | :03000000020200F9 | ||
| 2 | :0400230002055F0073 | ||
| 3 | :0400430002010000B6 | ||
| 4 | :050030000000000000CB | ||
| 5 | :10010000020296000200000002000000020000004F | ||
| 6 | :1001100002000000020000000200000002000000D7 | ||
| 7 | :1001200002000000020000000204610002048900D5 | ||
| 8 | :1002000075815EE4F532F533F530F531F534C20031 | ||
| 9 | :10021000C201A90074FE901000F0A3D9FC74FD90F7 | ||
| 10 | :100220001100F0A3D9FC7402907F9DF07400907FC0 | ||
| 11 | :1002300097F07486907F9EF0907F957403F0907F86 | ||
| 12 | :10024000AFE0D2E0F07401907FABF0907FAEF09021 | ||
| 13 | :100250007FAC7404F0907FAD7404F0907FC9F074AB | ||
| 14 | :1002600084907F98F07400F59875C8307B059120D4 | ||
| 15 | :10027000D2CA759850D2E8D2AFD2AC7400F586904D | ||
| 16 | :100280007FD67402F0792E7A007B00DBFEDAFAD991 | ||
| 17 | :10029000F67406F080FEC086C082C083C084C0852C | ||
| 18 | :1002A000C0E0E591C2E4F591907FAB7401F0907FDE | ||
| 19 | :1002B000E8E0F9A3E0FAA3E0FBA3E0FCE95460B4B2 | ||
| 20 | :1002C0000003020339B4406EBA000B12042040034D | ||
| 21 | :1002D00002040202040ABA010302040ABA02030277 | ||
| 22 | :1002E000040ABA0303020444BA041EBB000A907F46 | ||
| 23 | :1002F00095E04402F0020402907F98E054FDF090F3 | ||
| 24 | :100300007F95E054FDF0020402BA050302040ABA24 | ||
| 25 | :100310000619BB0008E533D395320203DEBB0108A2 | ||
| 26 | :10032000E532C395330203DE02040ABA07058B34B3 | ||
| 27 | :1003300002040202040A02040ABA0020B9801090E2 | ||
| 28 | :100340007F00E4F0A3F0907FB57402F0020402B9DC | ||
| 29 | :10035000820280EBB9810280E602040ABA010FBB77 | ||
| 30 | :10036000000302040ABB010302040202040ABA03E6 | ||
| 31 | :100370000FBB000302040ABB010302040202040AC9 | ||
| 32 | :10038000BA0656BC010F907FD47406F0907FD574E6 | ||
| 33 | :1003900012F0020402BC0212BB006F907FD47406FC | ||
| 34 | :1003A000F0907FD57424F0020402BC03297404C3C6 | ||
| 35 | :1003B0009B40576055EB2B9006442582F5827400D4 | ||
| 36 | :1003C0003583F583E0F9A3E0FA907FD4E9F0907FDC | ||
| 37 | :1003D000D5EAF002040202040ABA080F7401907F01 | ||
| 38 | :1003E00000F07401907FB5F0020402BA0903020420 | ||
| 39 | :1003F00002BA0A0574000203DEBA0B030204020209 | ||
| 40 | :10040000040A907FB47402F08009907FB4E0440144 | ||
| 41 | :10041000F08000D0E0D085D084D083D082D08632E6 | ||
| 42 | :10042000EB20E71EC3940A5019EB2324FEF58274D7 | ||
| 43 | :10043000053400F583E0F5CBF5CDA3E0F5CAF5CCA6 | ||
| 44 | :10044000C322D322B94111EB64FF5484FB907F98FF | ||
| 45 | :10045000E0547B4BF0020402907F9BE064FF0203B8 | ||
| 46 | :10046000DEC086C082C083C084C085C0E0E591C282 | ||
| 47 | :10047000E4F591907FA97404F01205A0D0E0D08536 | ||
| 48 | :10048000D084D083D082D08632C086C082C083C060 | ||
| 49 | :1004900084C085C0E0E591C2E4F591907FAA740420 | ||
| 50 | :1004A000F0907FC9E0F9E4F586907DC075851085F0 | ||
| 51 | :1004B0003284E005860584F0E584B53302800905C1 | ||
| 52 | :1004C000320586A3D9EC8000907FC9F0B131D0E02D | ||
| 53 | :1004D000D085D084D083D082D08632E4F586907FD8 | ||
| 54 | :1004E000BCE020E14B907D00E532F0A3E533F0A3C2 | ||
| 55 | :1004F000E530F0A3E531F0A3E430000104F0A305FA | ||
| 56 | :10050000869010007910E0A30586F0A30586D9F641 | ||
| 57 | :10051000058674FCF0A305869011007910E0A30510 | ||
| 58 | :1005200086F0A30586D9F6E4F586907FBD7426F0A3 | ||
| 59 | :1005300022200013E532B53301220533758310857F | ||
| 60 | :100540003382E0F599D2007400B5340122E533D34B | ||
| 61 | :100550009532C3953440F5753400D2010205A0C030 | ||
| 62 | :1005600086C082C083C084C085C0E0309907C2992C | ||
| 63 | :10057000C20012053430980512058AC298D0E0D026 | ||
| 64 | :1005800085D084D083D082D0863275831185308225 | ||
| 65 | :100590000582E599F0E582B53101220530B1A0224E | ||
| 66 | :1005A000907FB8E020E138200136E530B5310122F6 | ||
| 67 | :1005B000E4F5867583110586907E00F0A3058679A3 | ||
| 68 | :1005C00001E530B5310280100531853182E00586C4 | ||
| 69 | :1005D000F0A3058609B940E9907FB9E96001F022EE | ||
| 70 | :1005E000C201E4F586907E007401F0A37402F090DD | ||
| 71 | :1005F0007FB9F022C299F5993099FDC29922E55E42 | ||
| 72 | :10060000F63CFD8FFEC8FF64FFB2FFD9FFEDFFF39C | ||
| 73 | :10061000FFFA12010001FFFFFF40CD06040189AB84 | ||
| 74 | :1006200001020301090220000101008032090400D7 | ||
| 75 | :100630000002FFFFFF0007058203400001070502DB | ||
| 76 | :1006400002400000064C0650067206A0040300009B | ||
| 77 | :100650002203410043004D00450020007500730057 | ||
| 78 | :100660006200200077006900640067006500740084 | ||
| 79 | :1006700073002E03410043004D004500200055004B | ||
| 80 | :1006800053004200200073006500720069006100A1 | ||
| 81 | :100690006C0020007700690064006700650074004A | ||
| 82 | :0606A000060334003700E0 | ||
| 83 | :00000001FF | ||
diff --git a/firmware/keyspan_pda/keyspan_pda.S b/firmware/keyspan_pda/keyspan_pda.S new file mode 100644 index 000000000000..418fe69aa5e0 --- /dev/null +++ b/firmware/keyspan_pda/keyspan_pda.S | |||
| @@ -0,0 +1,1124 @@ | |||
| 1 | /* $Id: loop.s,v 1.23 2000/03/20 09:49:06 warner Exp $ | ||
| 2 | * | ||
| 3 | * Firmware for the Keyspan PDA Serial Adapter, a USB serial port based on | ||
| 4 | * the EzUSB microcontroller. | ||
| 5 | * | ||
| 6 | * (C) Copyright 2000 Brian Warner <warner@lothar.com> | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License as published by | ||
| 10 | * the Free Software Foundation; either version 2 of the License, or | ||
| 11 | * (at your option) any later version. | ||
| 12 | * | ||
| 13 | * "Keyspan PDA Serial Adapter" is probably a copyright of Keyspan, the | ||
| 14 | * company. | ||
| 15 | * | ||
| 16 | * This serial adapter is basically an EzUSB chip and an RS-232 line driver | ||
| 17 | * in a little widget that has a DB-9 on one end and a USB plug on the other. | ||
| 18 | * It uses the EzUSB's internal UART0 (using the pins from Port C) and timer2 | ||
| 19 | * as a baud-rate generator. The wiring is: | ||
| 20 | * PC0/RxD0 <- rxd (DB9 pin 2) PC4 <- dsr pin 6 | ||
| 21 | * PC1/TxD0 -> txd pin 3 PC5 <- ri pin 9 | ||
| 22 | * PC2 -> rts pin 7 PC6 <- dcd pin 1 | ||
| 23 | * PC3 <- cts pin 8 PC7 -> dtr pin 4 | ||
| 24 | * PB1 -> line driver standby | ||
| 25 | * | ||
| 26 | * The EzUSB register constants below come from their excellent documentation | ||
| 27 | * and sample code (which used to be available at www.anchorchips.com, but | ||
| 28 | * that has now been absorbed into Cypress' site and the CD-ROM contents | ||
| 29 | * don't appear to be available online anymore). If we get multiple | ||
| 30 | * EzUSB-based drivers into the kernel, it might be useful to pull them out | ||
| 31 | * into a separate .h file. | ||
| 32 | * | ||
| 33 | * THEORY OF OPERATION: | ||
| 34 | * | ||
| 35 | * There are two 256-byte ring buffers, one for tx, one for rx. | ||
| 36 | * | ||
| 37 | * EP2out is pure tx data. When it appears, the data is copied into the tx | ||
| 38 | * ring and serial transmission is started if it wasn't already running. The | ||
| 39 | * "tx buffer empty" interrupt may kick off another character if the ring | ||
| 40 | * still has data. If the host is tx-blocked because the ring filled up, | ||
| 41 | * it will request a "tx unthrottle" interrupt. If sending a serial character | ||
| 42 | * empties the ring below the desired threshold, we set a bit that will send | ||
| 43 | * up the tx unthrottle message as soon as the rx buffer becomes free. | ||
| 44 | * | ||
| 45 | * EP2in (interrupt) is used to send both rx chars and rx status messages | ||
| 46 | * (only "tx unthrottle" at this time) back up to the host. The first byte | ||
| 47 | * of the rx message indicates data (0) or status msg (1). Status messages | ||
| 48 | * are sent before any data. | ||
| 49 | * | ||
| 50 | * Incoming serial characters are put into the rx ring by the serial | ||
| 51 | * interrupt, and the EP2in buffer sent if it wasn't already in transit. | ||
| 52 | * When the EP2in buffer returns, the interrupt prompts us to send more | ||
| 53 | * rx chars (or status messages) if they are pending. | ||
| 54 | * | ||
| 55 | * Device control happens through "vendor specific" control messages on EP0. | ||
| 56 | * All messages are destined for the "Interface" (with the index always 0, | ||
| 57 | * so that if their two-port device might someday use similar firmware, we | ||
| 58 | * can use index=1 to refer to the second port). The messages defined are: | ||
| 59 | * | ||
