123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645 |
- /*
- * This file is part of the UCB release of Plan 9. It is subject to the license
- * terms in the LICENSE file found in the top-level directory of this
- * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
- * part of the UCB release of Plan 9, including this file, may be copied,
- * modified, propagated, or distributed except according to the terms contained
- * in the LICENSE file.
- */
- enum {
- /* used by devices which don't provide their own Vid */
- FTVid = 0x0403,
- FTSheevaVid = 0x9E88,
- FTSheevaDid = 0x9E8F,
- FTOpenRDUltDid = 0x9E90,
- FTSIODid = 0x8372, /* Product Id SIO appl'n of 8U100AX */
- FT8U232AMDid = 0x6001, /* Similar device to SIO above */
- FT8U232AMALTDid = 0x6006, /* FT's alternate Did for above*/
- FT8U2232CDid = 0x6010, /* Dual channel device */
- FTRELAISDid = 0xFA10, /* Relais device */
- /* NF reader */
- FTNFRICVid = 0x0DCD,
- FTNFRICDid = 0x0001,
- FTACTZWAVEDid = 0xF2D0, /* www.irtrans.de device */
- /*
- * ACT Solutions HomePro ZWave interface
- * http://www.act-solutions.com/HomePro.htm)
- */
- FTIRTRANSDid = 0xFC60,
- /*
- * www.thoughttechnology.com/ TT-USB
- */
- FTTTUSBDid = 0xFF20,
- /* iPlus device */
- FTIPLUSDid = 0xD070,
- /* www.crystalfontz.com devices */
- FTXF632Did = 0xFC08, /* 632: 16x2 Character Display */
- FTXF634Did = 0xFC09, /* 634: 20x4 Character Display */
- FTXF547Did = 0xFC0A, /* 547: Two line Display */
- FTXF633Did = 0xFC0B, /* 633: 16x2 Character Display with Keys */
- FTXF631Did = 0xFC0C, /* 631: 20x2 Character Display */
- FTXF635Did = 0xFC0D, /* 635: 20x4 Character Display */
- FTXF640Did = 0xFC0E, /* 640: Two line Display */
- FTXF642Did = 0xFC0F, /* 642: Two line Display */
- /*
- * Video Networks Limited / Homechoice in the UK
- * use an ftdi-based device for their 1Mb broadband
- */
- FTVNHCPCUSBDDid = 0xfe38,
- /*
- * PCDJ use ftdi based dj-controllers
- * DAC-2 device http://www.pcdjhardware.com/DAC2.asp
- */
- FTPCDJDAC2Did = 0xFA88,
- /*
- * Matrix Orbital LCD displays,
- * which are the FT232BM (similar to the 8U232AM)
- */
- FTMTXORB0Did = 0xFA00,
- FTMTXORB1Did = 0xFA01,
- FTMTXORB2Did = 0xFA02,
- FTMTXORB3Did = 0xFA03,
- FTMTXORB4Did = 0xFA04,
- FTMTXORB5Did = 0xFA05,
- FTMTXORB6Did = 0xFA06,
- /* Interbiometrics USB I/O Board */
- INTERBIOMVid = 0x1209,
- INTERBIOMIOBRDDid = 0x1002,
- INTERBIOMMINIIOBRDDid = 0x1006,
- /*
- * The following are the values for the Perle Systems
- * UltraPort USB serial converters
- */
- FTPERLEULTRAPORTDid = 0xF0C0,
- /*
- * Sealevel SeaLINK+ adapters.
- */
- SEALEVELVid = 0x0c52,
- SEALEVEL2101Did = 0x2101, /* SeaLINK+232 (2101/2105) */
- SEALEVEL2102Did = 0x2102, /* SeaLINK+485 (2102) */
- SEALEVEL2103Did = 0x2103, /* SeaLINK+232I (2103) */
- SEALEVEL2104Did = 0x2104, /* SeaLINK+485I (2104) */
- SEALEVEL22011Did = 0x2211, /* SeaPORT+2/232 (2201) Port 1 */
- SEALEVEL22012Did = 0x2221, /* SeaPORT+2/232 (2201) Port 2 */
- SEALEVEL22021Did = 0x2212, /* SeaPORT+2/485 (2202) Port 1 */
- SEALEVEL22022Did = 0x2222, /* SeaPORT+2/485 (2202) Port 2 */
- SEALEVEL22031Did = 0x2213, /* SeaPORT+2 (2203) Port 1 */
- SEALEVEL22032Did = 0x2223, /* SeaPORT+2 (2203) Port 2 */
- SEALEVEL24011Did = 0x2411, /* SeaPORT+4/232 (2401) Port 1 */
- SEALEVEL24012Did = 0x2421, /* SeaPORT+4/232 (2401) Port 2 */
- SEALEVEL24013Did = 0x2431, /* SeaPORT+4/232 (2401) Port 3 */
- SEALEVEL24014Did = 0x2441, /* SeaPORT+4/232 (2401) Port 4 */
- SEALEVEL24021Did = 0x2412, /* SeaPORT+4/485 (2402) Port 1 */
- SEALEVEL24022Did = 0x2422, /* SeaPORT+4/485 (2402) Port 2 */
- SEALEVEL24023Did = 0x2432, /* SeaPORT+4/485 (2402) Port 3 */
- SEALEVEL24024Did = 0x2442, /* SeaPORT+4/485 (2402) Port 4 */
- SEALEVEL24031Did = 0x2413, /* SeaPORT+4 (2403) Port 1 */
- SEALEVEL24032Did = 0x2423, /* SeaPORT+4 (2403) Port 2 */
- SEALEVEL24033Did = 0x2433, /* SeaPORT+4 (2403) Port 3 */
- SEALEVEL24034Did = 0x2443, /* SeaPORT+4 (2403) Port 4 */
- SEALEVEL28011Did = 0x2811, /* SeaLINK+8/232 (2801) Port 1 */
- SEALEVEL28012Did = 0x2821, /* SeaLINK+8/232 (2801) Port 2 */
- SEALEVEL28013Did = 0x2831, /* SeaLINK+8/232 (2801) Port 3 */
- SEALEVEL28014Did = 0x2841, /* SeaLINK+8/232 (2801) Port 4 */
- SEALEVEL28015Did = 0x2851, /* SeaLINK+8/232 (2801) Port 5 */
- SEALEVEL28016Did = 0x2861, /* SeaLINK+8/232 (2801) Port 6 */
- SEALEVEL28017Did = 0x2871, /* SeaLINK+8/232 (2801) Port 7 */
- SEALEVEL28018Did = 0x2881, /* SeaLINK+8/232 (2801) Port 8 */
- SEALEVEL28021Did = 0x2812, /* SeaLINK+8/485 (2802) Port 1 */
- SEALEVEL28022Did = 0x2822, /* SeaLINK+8/485 (2802) Port 2 */
- SEALEVEL28023Did = 0x2832, /* SeaLINK+8/485 (2802) Port 3 */
- SEALEVEL28024Did = 0x2842, /* SeaLINK+8/485 (2802) Port 4 */
- SEALEVEL28025Did = 0x2852, /* SeaLINK+8/485 (2802) Port 5 */
- SEALEVEL28026Did = 0x2862, /* SeaLINK+8/485 (2802) Port 6 */
- SEALEVEL28027Did = 0x2872, /* SeaLINK+8/485 (2802) Port 7 */
- SEALEVEL28028Did = 0x2882, /* SeaLINK+8/485 (2802) Port 8 */
- SEALEVEL28031Did = 0x2813, /* SeaLINK+8 (2803) Port 1 */
- SEALEVEL28032Did = 0x2823, /* SeaLINK+8 (2803) Port 2 */
- SEALEVEL28033Did = 0x2833, /* SeaLINK+8 (2803) Port 3 */
- SEALEVEL28034Did = 0x2843, /* SeaLINK+8 (2803) Port 4 */
- SEALEVEL28035Did = 0x2853, /* SeaLINK+8 (2803) Port 5 */
- SEALEVEL28036Did = 0x2863, /* SeaLINK+8 (2803) Port 6 */
- SEALEVEL28037Did = 0x2873, /* SeaLINK+8 (2803) Port 7 */
- SEALEVEL28038Did = 0x2883, /* SeaLINK+8 (2803) Port 8 */
- /* KOBIL Vendor ID chipcard terminals */
- KOBILVid = 0x0d46,
- KOBILCONVB1Did = 0x2020, /* KOBIL Konverter for B1 */
- KOBILCONVKAANDid = 0x2021, /* KOBILKonverter for KAAN */
- /* Icom ID-1 digital transceiver */
- ICOMID1Vid = 0x0C26,
- ICOMID1Did = 0x0004,
- FTASKRDR400Did = 0xC991, /* ASK RDR 400 series card reader */
- FTDSS20Did = 0xFC82, /* DSS-20 Sync Station for Sony Ericsson P800 */
- /*
- * Home Electronics (www.home-electro.com) USB gadgets
- */
- FTHETIRA1Did = 0xFA78, /* Tira-1 IR transceiver */
- /*
- * An infrared receiver and transmitter using the 8U232AM chip
- * http://www.usbuirt.com
- */
- FTUSBUIRTDid = 0xF850,
- FTELVUR100Did = 0xFB58, /* USB-RS232-Umsetzer (UR 100) */
- FTELVUM100Did = 0xFB5A, /* USB-Modul UM 100 */
- FTELVUO100Did = 0xFB5B, /* USB-Modul UO 100 */
- FTELVALC8500Did = 0xF06E, /* ALC 8500 Expert */
- FTELVCLI7000Did = 0xFB59, /* Computer-Light-Interface */
- FTELVPPS7330Did = 0xFB5C, /* Processor-Power-Supply (PPS 7330) */
- FTELVTFM100Did = 0xFB5D, /* Temperartur-Feuchte Messgeraet (TFM 100) */
- FTELVUDF77Did = 0xFB5E, /* USB DCF Funkurh (UDF 77) */
- FTELVUIO88Did = 0xFB5F, /* USB-I/O Interface (UIO 88) */
- FTELVUAD8Did = 0xF068, /* USB-AD-Wandler (UAD 8) */
- FTELVUDA7Did = 0xF069, /* USB-DA-Wandler (UDA 7) */
- FTELVUSI2Did = 0xF06A, /* USB-Schrittmotoren-Interface (USI 2) */
- FTELVT1100Did = 0xF06B, /* Thermometer (T 1100) */
- FTELVPCD200Did = 0xF06C, /* PC-Datenlogger (PCD 200) */
- FTELVULA200Did = 0xF06D, /* USB-LCD-Ansteuerung (ULA 200) */
- FTELVFHZ1000PCDid= 0xF06F, /* FHZ 1000 PC */
- FTELVCSI8Did = 0xE0F0, /* Computer-Schalt-Interface (CSI 8) */
- FTELVEM1000DLDid= 0xE0F1, /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */
- FTELVPCK100Did = 0xE0F2, /* PC-Kabeltester (PCK 100) */
- FTELVRFP500Did = 0xE0F3, /* HF-Leistungsmesser (RFP 500) */
- FTELVFS20SIGDid = 0xE0F4, /* Signalgeber (FS 20 SIG) */
- FTELVWS300PCDid = 0xE0F6, /* PC-Wetterstation (WS 300 PC) */
- FTELVFHZ1300PCDid= 0xE0E8, /* FHZ 1300 PC */
- FTELVWS500Did = 0xE0E9, /* PC-Wetterstation (WS 500) */
- /*
- * Definitions for ID TECH (http://www.idt-net.com) devices
- */
- IDTECHVid = 0x0ACD, /* ID TECH Vendor ID */
- IDTECHIDT1221UDid= 0x0300, /* IDT1221U USB to RS-232 */
- /*
- * Definitions for Omnidirectional Control Technology, Inc. devices
- */
- OCTVid = 0x0B39, /* OCT vendor ID */
- /*
- * Note: OCT US101 is also rebadged as Dick Smith Electronics
- * (NZ) XH6381, Dick Smith Electronics (Aus) XH6451, and SIIG
- * Inc. model US2308 hardware version 1.
- */
- OCTUS101Did = 0x0421, /* OCT US101 USB to RS-232 */
- /*
- * infrared receiver for access control with IR tags
- */
- FTPIEGROUPDid = 0xF208,
- /*
- * Definitions for Artemis astronomical USB based cameras
- * http://www.artemisccd.co.uk/
- */
- FTARTEMISDid = 0xDF28, /* All Artemis Cameras */
- FTATIKATK16Did = 0xDF30, /* ATIK ATK-16 Grayscale Camera */
- FTATIKATK16CDid = 0xDF32, /* ATIK ATK-16C Colour Camera */
- FTATIKATK16HRDid= 0xDF31, /* ATIK ATK-16HR Grayscale */
- FTATIKATK16HRCDid= 0xDF33, /* ATIK ATK-16HRC Colour Camera */
- /*
- * Protego products
- */
- PROTEGOSPECIAL1 = 0xFC70, /* special/unknown device */
- PROTEGOR2X0 = 0xFC71, /* R200-USB TRNG unit (R210, R220, and R230) */
- PROTEGOSPECIAL3 = 0xFC72, /* special/unknown device */
- PROTEGOSPECIAL4 = 0xFC73, /* special/unknown device */
- /*
- * Gude Analog- und Digitalsysteme GmbH
- */
- FTGUDEADSE808Did = 0xE808,
- FTGUDEADSE809Did = 0xE809,
- FTGUDEADSE80ADid = 0xE80A,
- FTGUDEADSE80BDid = 0xE80B,
- FTGUDEADSE80CDid = 0xE80C,
- FTGUDEADSE80DDid = 0xE80D,
- FTGUDEADSE80EDid = 0xE80E,
- FTGUDEADSE80FDid = 0xE80F,
- FTGUDEADSE888Did = 0xE888, /* Expert ISDN Control USB */
- FTGUDEADSE889Did = 0xE889, /* USB RS-232 OptoBridge */
- FTGUDEADSE88ADid = 0xE88A,
- FTGUDEADSE88BDid = 0xE88B,
- FTGUDEADSE88CDid = 0xE88C,
- FTGUDEADSE88DDid = 0xE88D,
- FTGUDEADSE88EDid = 0xE88E,
- FTGUDEADSE88FDid = 0xE88F,
- /*
- * Linx Technologies
- */
- LINXSDMUSBQSSDid= 0xF448, /* Linx SDM-USB-QS-S */
- LINXMASTERDEVEL2Did= 0xF449, /* Linx Master Development.0 */
- LINXFUTURE0Did = 0xF44A, /* Linx future device */
- LINXFUTURE1Did = 0xF44B, /* Linx future device */
- LINXFUTURE2Did = 0xF44C, /* Linx future device */
- /*
- * CCS Inc. ICDU/ICDU40 - the FT232BM used in a in-circuit-debugger
- * unit for PIC16's/PIC18's
- */
- FTCCSICDU200Did = 0xF9D0,
- FTCCSICDU401Did = 0xF9D1,
- /* Inside Accesso contactless reader (http://www.insidefr.com) */
- INSIDEACCESSO = 0xFAD0,
- /*
- * Intrepid Control Systems (http://www.intrepidcs.com/)
- * ValueCAN and NeoVI
- */
- INTREDidVid = 0x093C,
- INTREDidVALUECANDid= 0x0601,
- INTREDidNEOVIDid= 0x0701,
- /*
- * Falcom Wireless Communications GmbH
- */
- FALCOMVid = 0x0F94,
- FALCOMTWISTDid = 0x0001, /* Falcom Twist USB GPRS modem */
- FALCOMSAMBADid = 0x0005, /* Falcom Samba USB GPRS modem */
- /*
- * SUUNTO
- */
- FTSUUNTOSPORTSDid= 0xF680, /* Suunto Sports instrument */
- /*
- * B&B Electronics
- */
- BANDBVid = 0x0856, /* B&B Electronics Vendor ID */
- BANDBUSOTL4Did = 0xAC01, /* USOTL4 Isolated RS-485 */
- BANDBUSTL4Did = 0xAC02, /* USTL4 RS-485 Converter */
- BANDBUSO9ML2Did = 0xAC03, /* USO9ML2 Isolated RS-232 */
- /*
- * RM Michaelides CANview USB (http://www.rmcan.com)
- * CAN fieldbus interface adapter
- */
- FTRMCANVIEWDid = 0xfd60,
- /*
- * EVER Eco Pro UPS (http://www.ever.com.pl/)
- */
- EVERECOPROCDSDid = 0xe520, /* RS-232 converter */
- /*
- * 4N-GALAXY.DE PIDs for CAN-USB, USB-RS232, USB-RS422, USB-RS485,
- * USB-TTY activ, USB-TTY passiv. Some PIDs are used by several devices
- */
- FT4NGALAXYDE0Did = 0x8372,
- FT4NGALAXYDE1Did = 0xF3C0,
- FT4NGALAXYDE2Did = 0xF3C1,
- /*
- * Mobility Electronics products.
- */
- MOBILITYVid = 0x1342,
- MOBILITYUSBSERIALDid= 0x0202, /* EasiDock USB 200 serial */
- /*
- * microHAM product IDs (http://www.microham.com)
- */
- FTMHAMKWDid = 0xEEE8, /* USB-KW interface */
- FTMHAMYSDid = 0xEEE9, /* USB-YS interface */
- FTMHAMY6Did = 0xEEEA, /* USB-Y6 interface */
- FTMHAMY8Did = 0xEEEB, /* USB-Y8 interface */
- FTMHAMICDid = 0xEEEC, /* USB-IC interface */
- FTMHAMDB9Did = 0xEEED, /* USB-DB9 interface */
- FTMHAMRS232Did = 0xEEEE, /* USB-RS232 interface */
- FTMHAMY9Did = 0xEEEF, /* USB-Y9 interface */
- /*
- * Active Robots product ids.
- */
- FTACTIVEROBOTSDid = 0xE548, /* USB comms board */
- XSENSCONVERTER0Did = 0xD388,
- XSENSCONVERTER1Did = 0xD389,
- XSENSCONVERTER2Did = 0xD38A,
- XSENSCONVERTER3Did = 0xD38B,
- XSENSCONVERTER4Did = 0xD38C,
- XSENSCONVERTER5Did = 0xD38D,
- XSENSCONVERTER6Did = 0xD38E,
- XSENSCONVERTER7Did = 0xD38F,
- /*
- * Xsens Technologies BV products (http://www.xsens.com).
- */
- FTTERATRONIKVCPDid = 0xEC88, /* Teratronik device */
- FTTERATRONIKD2XXDid = 0xEC89, /* Teratronik device */
- /*
- * Evolution Robotics products (http://www.evolution.com/).
- */
- EVOLUTIONVid = 0xDEEE,
- EVOLUTIONER1Did = 0x0300, /* ER1 Control Module */
- /* Pyramid Computer GmbH */
- FTPYRAMIDDid = 0xE6C8, /* Pyramid Appliance Display */
- /*
- * Posiflex inc retail equipment (http://www.posiflex.com.tw)
- */
- POSIFLEXVid = 0x0d3a,
- POSIFLEXPP7000Did= 0x0300, /* PP-7000II thermal printer */
- /*
- * Westrex International devices
- */
- FTWESTREXMODEL777Did = 0xDC00, /* Model 777 */
- FTWESTREXMODEL8900FDid = 0xDC01, /* Model 8900F */
- /*
- * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com)
- */
- FTRRCIRKITSLOCOBUFFERDid= 0xc7d0, /* LocoBuffer USB */
- FTECLOCOM1WIREDid = 0xEA90, /* COM to 1-Wire USB */
- /*
- * Papouch products (http://www.papouch.com/)
- */
- PAPOUCHVid = 0x5050,
- PAPOUCHTMUDid = 0x0400, /* TMU USB Thermometer */
- /*
- * ACG Identification Technologies GmbH products http://www.acg.de/
- */
- FTACGHFDUALDid = 0xDD20, /* HF Dual ISO Reader (RFID) */
- /*
- * new high speed devices
- */
- FT4232HDid = 0x6011, /* FTDI FT4232H based device */
- /*
- * Amontec JTAGkey (http://www.amontec.com/)
- */
- AMONKEYDid = 0xCFF8,
- };
- /* Commands */
- enum {
- FTRESET = 0, /* Reset the port */
- FTSETMODEMCTRL, /* Set the modem control register */
- FTSETFLOWCTRL, /* Set flow control register */
- FTSETBAUDRATE, /* Set baud rate */
- FTSETDATA, /* Set the parameters, parity */
- FTGETMODEMSTATUS, /* Retrieve current value of modem ctl */
- FTSETEVENTCHAR, /* Set the event character */
- FTSETERRORCHAR, /* Set the error character */
- FTUNKNOWN,
- FTSETLATENCYTIMER, /* Set the latency timer */
- FTGETLATENCYTIMER, /* Get the latency timer */
- FTSETBITMODE, /* Set bit mode */
- FTGETPINS, /* Read pins state */
- FTGETE2READ = 0x90, /* Read address from 128-byte I2C EEPROM */
- FTSETE2WRITE, /* Write to address on 128-byte I2C EEPROM */
- FTSETE2ERASE, /* Erase address on 128-byte I2C EEPROM */
- };
- /* Port Identifier Table, index for interfaces */
- enum {
- PITDEFAULT = 0, /* SIOA */
- PITA, /* SIOA jtag if there is one */
- };
- enum {
- Rftdireq = 1<<6, /* bit for type of request */
- };
- /*
- * Commands Data size
- * Sets have wLength = 0
- * Gets have wValue = 0
- */
- enum {
- FTMODEMSTATUSSZ = 1,
- FTLATENCYTIMERSZ= 1,
- FTPINSSZ = 1,
- FTE2READSZ = 2,
- };
- /*
- * bRequest: FTGETE2READ
- * wIndex: Address of word to read
- * Data: Will return a word (2 bytes) of data from E2Address
- * Results put in the I2C 128 byte EEPROM string eeprom+(2*index)
- */
- /*
- * bRequest: FTSETE2WRITE
- * wIndex: Address of word to read
- * wValue: Value of the word
- * Data: Will return a word (2 bytes) of data from E2Address
- */
- /*
- * bRequest: FTSETE2ERASE
- * Erases the EEPROM
- * wIndex: 0
- */
- /*
- * bRequest: FTRESET
- * wValue: Ctl Val
- * wIndex: Port
- */
- enum {
- FTRESETCTLVAL = 0,
- FTRESETCTLVALPURGERX = 1,
- FTRESETCTLVALPURGETX = 2,
- };
- /*
- * BmRequestType: SET
- * bRequest: FTSETBAUDRATE
- * wValue: BaudDivisor value - see below
- * Bits 15 to 0 of the 17-bit divisor are placed in the request value.
- * Bit 16 is placed in bit 0 of the request index.
- */
- /* chip type */
- enum {
- SIO = 1,
- FT8U232AM = 2,
- FT232BM = 3,
- FT2232C = 4,
- FTKINDR = 5,
- FT2232H = 6,
- FT4232H = 7,
- };
- enum {
- FTb300 = 0,
- FTb600 = 1,
- FTb1200 = 2,
- FTb2400 = 3,
- FTb4800 = 4,
- FTb9600 = 5,
- FTb19200 = 6,
- FTb38400 = 7,
- FTb57600 = 8,
- FTb115200 = 9,
- };
- /*
- * bRequest: FTSETDATA
- * wValue: Data characteristics
- * bits 0-7 number of data bits
- * wIndex: Port
- */
- enum {
- FTSETDATAParNONE = 0 << 8,
- FTSETDATAParODD = 1 << 8,
- FTSETDATAParEVEN = 2 << 8,
- FTSETDATAParMARK = 3 << 8,
- FTSETDATAParSPACE = 4 << 8,
- FTSETDATASTOPBITS1 = 0 << 11,
- FTSETDATASTOPBITS15 = 1 << 11,
- FTSETDATASTOPBITS2 = 2 << 11,
- FTSETBREAK = 1 << 14,
- };
- /*
- * bRequest: FTSETMODEMCTRL
- * wValue: ControlValue (see below)
- * wIndex: Port
- */
- /*
- * bRequest: FTSETFLOWCTRL
- * wValue: Xoff/Xon
- * wIndex: Protocol/Port - hIndex is protocol; lIndex is port
- */
- enum {
- FTDISABLEFLOWCTRL= 0,
- FTRTSCTSHS = 1 << 8,
- FTDTRDSRHS = 2 << 8,
- FTXONXOFFHS = 4 << 8,
- };
- /*
- * bRequest: FTGETLATENCYTIMER
- * wIndex: Port
- * wLength: 0
- * Data: latency (on return)
- */
- /*
- * bRequest: FTSETBITMODE
- * wIndex: Port
- * either it is big bang mode, in which case
- * wValue: 1 byte L is the big bang mode BIG*
- * or BM is
- * wValue: 1 byte bitbang mode H, 1 byte bitmask for lines L
- */
- enum {
- BMSERIAL = 0, /* reset, turn off bit-bang mode */
- BIGBMNORMAL = 1, /* normal bit-bang mode */
- BIGBMSPI = 2, /* spi bit-bang mode */
- BMABM = 1<<8, /* async mode */
- BMMPSSE = 2<<8,
- BMSYNCBB = 4<<8, /* sync bit-bang -- 2232x and R-type */
- BMMCU = 8<<8, /* MCU Host Bus -- 2232x */
- BMOPTO = 0x10<<8, /* opto-isolated<<8, 2232x */
- BMCBUS = 0x20<<8, /* CBUS pins of R-type chips */
- BMSYNCFF = 0x40<<8, /* Single Channel Sync FIFO, 2232H only */
- };
- /*
- * bRequest: FTSETLATENCYTIMER
- * wValue: Latency (milliseconds 1-255)
- * wIndex: Port
- */
- enum {
- FTLATENCYDEFAULT = 2,
- };
- /*
- * BmRequestType: SET
- * bRequest: FTSETEVENTCHAR
- * wValue: EventChar
- * wIndex: Port
- * 0-7 lower bits event char
- * 8 enable
- */
- enum {
- FTEVCHARENAB = 1<<8,
- };
- /*
- * BmRequestType: SET
- * bRequest: FTSETERRORCHAR
- * wValue: Error Char
- * wIndex: Port
- * 0-7 lower bits event char
- * 8 enable
- */
- enum {
- FTERRCHARENAB = 1<<8,
- };
- /*
- * BmRequestType: GET
- * bRequest: FTGETMODEMSTATUS
- * wIndex: Port
- * wLength: 1
- * Data: Status
- */
- enum {
- FTCTSMASK = 0x10,
- FTDSRMASK = 0x20,
- FTRIMASK = 0x40,
- FTRLSDMASK = 0x80,
- };
- enum {
- /* byte 0 of in data hdr */
- FTICTS = 1 << 4,
- FTIDSR = 1 << 5,
- FTIRI = 1 << 6,
- FTIRLSD = 1 << 7, /* receive line signal detect */
- /* byte 1 of in data hdr */
- FTIDR = 1<<0, /* data ready */
- FTIOE = 1<<1, /* overrun error */
- FTIPE = 1<<2, /* parity error */
- FTIFE = 1<<3, /* framing error */
- FTIBI = 1<<4, /* break interrupt */
- FTITHRE = 1<<5, /* xmitter holding register */
- FTITEMT = 1<<6, /* xmitter empty */
- FTIFIFO = 1<<7, /* error in rcv fifo */
- /* byte 0 of out data hdr len does not include byte 0 */
- FTOLENMSK= 0x3F,
- FTOPORT = 0x80, /* must be set */
- };
- extern Serialops ftops;
- int ftmatch(Serial *ser, char *info);
|