aboutsummaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2008-05-30 08:15:13 -0400
committerDavid Woodhouse <David.Woodhouse@intel.com>2008-07-10 09:49:09 -0400
commit3edbf98b863391bdd7ad2bf47b7db1689afac886 (patch)
tree14d36c188adb20790f61cb046f7e95b01000bcbe /firmware
parent2971c579f93bcff26744672ea98c13bef71ded97 (diff)
keyspan_pda: use request_firmware()
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'firmware')
-rw-r--r--firmware/Makefile2
-rw-r--r--firmware/WHENCE14
-rw-r--r--firmware/keyspan_pda/keyspan_pda.HEX83
-rw-r--r--firmware/keyspan_pda/keyspan_pda.S1124
-rw-r--r--firmware/keyspan_pda/xircom_pgs.HEX87
-rw-r--r--firmware/keyspan_pda/xircom_pgs.S1192
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
51endif 51endif
52fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw
53fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw
52 54
53fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) 55fw-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
123Driver: keyspan_pda -- USB Keyspan PDA single-port serial device
124
125File: keyspan_pda/keyspan_pda.fw
126Source: keyspan_pda/keyspan_pda.S
127
128File: keyspan_pda/xircom_pgs.fw
129Source: keyspan_pda/xircom_pgs.S
130
131Licence: GPLv2+
132
133Compiled 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 *