code style and clean up CDC serial header files
This commit is contained in:
		| @@ -24,8 +24,8 @@ | ||||
|  * This file is part of the TinyUSB stack. | ||||
|  */ | ||||
|  | ||||
| #ifndef _CH34X_H_ | ||||
| #define _CH34X_H_ | ||||
| #ifndef TUSB_CH34X_H | ||||
| #define TUSB_CH34X_H | ||||
|  | ||||
| // There is no official documentation for the CH34x (CH340, CH341) chips. Reference can be found | ||||
| // - https://github.com/WCHSoftGroup/ch341ser_linux | ||||
| @@ -40,45 +40,45 @@ | ||||
| #endif | ||||
|  | ||||
| // USB requests | ||||
| #define CH34X_REQ_READ_VERSION 0x5F // dec  95 | ||||
| #define CH34X_REQ_WRITE_REG    0x9A // dec 154 | ||||
| #define CH34X_REQ_READ_REG     0x95 // dec 149 | ||||
| #define CH34X_REQ_SERIAL_INIT  0xA1 // dec 161 | ||||
| #define CH34X_REQ_MODEM_CTRL   0xA4 // dev 164 | ||||
| #define CH34X_REQ_READ_VERSION        0x5F // dec  95 | ||||
| #define CH34X_REQ_WRITE_REG           0x9A // dec 154 | ||||
| #define CH34X_REQ_READ_REG            0x95 // dec 149 | ||||
| #define CH34X_REQ_SERIAL_INIT         0xA1 // dec 161 | ||||
| #define CH34X_REQ_MODEM_CTRL          0xA4 // dev 164 | ||||
|  | ||||
| // registers | ||||
| #define CH34X_REG_BREAK        0x05 | ||||
| #define CH34X_REG_PRESCALER    0x12 | ||||
| #define CH34X_REG_DIVISOR      0x13 | ||||
| #define CH34X_REG_LCR          0x18 | ||||
| #define CH34X_REG_LCR2         0x25 | ||||
| #define CH34X_REG_MCR_MSR      0x06 | ||||
| #define CH34X_REG_MCR_MSR2     0x07 | ||||
| #define CH34X_NBREAK_BITS      0x01 | ||||
| #define CH34X_REG_BREAK               0x05 | ||||
| #define CH34X_REG_PRESCALER           0x12 | ||||
| #define CH34X_REG_DIVISOR             0x13 | ||||
| #define CH34X_REG_LCR                 0x18 | ||||
| #define CH34X_REG_LCR2                0x25 | ||||
| #define CH34X_REG_MCR_MSR             0x06 | ||||
| #define CH34X_REG_MCR_MSR2            0x07 | ||||
| #define CH34X_NBREAK_BITS             0x01 | ||||
|  | ||||
| #define CH341_REG_0x0F         0x0F // undocumented register | ||||
| #define CH341_REG_0x2C         0x2C // undocumented register | ||||
| #define CH341_REG_0x27         0x27 // hardware flow control (cts/rts) | ||||
| #define CH341_REG_0x0F                0x0F // undocumented register | ||||
| #define CH341_REG_0x2C                0x2C // undocumented register | ||||
| #define CH341_REG_0x27                0x27 // hardware flow control (cts/rts) | ||||
|  | ||||
| #define CH34X_REG16_DIVISOR_PRESCALER  TU_U16(CH34X_REG_DIVISOR, CH34X_REG_PRESCALER) | ||||
| #define CH32X_REG16_LCR2_LCR           TU_U16(CH34X_REG_LCR2, CH34X_REG_LCR) | ||||
| #define CH34X_REG16_DIVISOR_PRESCALER TU_U16(CH34X_REG_DIVISOR, CH34X_REG_PRESCALER) | ||||
| #define CH32X_REG16_LCR2_LCR          TU_U16(CH34X_REG_LCR2, CH34X_REG_LCR) | ||||
|  | ||||
| // modem control bits | ||||
| #define CH34X_BIT_RTS ( 1 << 6 ) | ||||
| #define CH34X_BIT_DTR ( 1 << 5 ) | ||||
| #define CH34X_BIT_RTS                 (1 << 6) | ||||
| #define CH34X_BIT_DTR                 (1 << 5) | ||||
|  | ||||
| // line control bits | ||||
| #define CH34X_LCR_ENABLE_RX    0x80 | ||||
| #define CH34X_LCR_ENABLE_TX    0x40 | ||||
| #define CH34X_LCR_MARK_SPACE   0x20 | ||||
| #define CH34X_LCR_PAR_EVEN     0x10 | ||||
| #define CH34X_LCR_ENABLE_PAR   0x08 | ||||
| #define CH34X_LCR_PAR_MASK     0x38 // all parity bits | ||||
| #define CH34X_LCR_STOP_BITS_2  0x04 | ||||
| #define CH34X_LCR_CS8          0x03 | ||||
| #define CH34X_LCR_CS7          0x02 | ||||
| #define CH34X_LCR_CS6          0x01 | ||||
| #define CH34X_LCR_CS5          0x00 | ||||
| #define CH34X_LCR_CS_MASK      0x03 // all CSx bits | ||||
| #define CH34X_LCR_ENABLE_RX           0x80 | ||||
| #define CH34X_LCR_ENABLE_TX           0x40 | ||||
| #define CH34X_LCR_MARK_SPACE          0x20 | ||||
| #define CH34X_LCR_PAR_EVEN            0x10 | ||||
| #define CH34X_LCR_ENABLE_PAR          0x08 | ||||
| #define CH34X_LCR_PAR_MASK            0x38 // all parity bits | ||||
| #define CH34X_LCR_STOP_BITS_2         0x04 | ||||
| #define CH34X_LCR_CS8                 0x03 | ||||
| #define CH34X_LCR_CS7                 0x02 | ||||
| #define CH34X_LCR_CS6                 0x01 | ||||
| #define CH34X_LCR_CS5                 0x00 | ||||
| #define CH34X_LCR_CS_MASK             0x03 // all CSx bits | ||||
|  | ||||
| #endif /* _CH34X_H_ */ | ||||
| #endif // TUSB_CH34X_H | ||||
|   | ||||
| @@ -31,7 +31,7 @@ | ||||
| // parts are overtaken from vendors driver | ||||
| // https://www.silabs.com/documents/public/software/cp210x-3.1.0.tar.gz | ||||
|  | ||||
| /* Config request codes */ | ||||
| // Config request codes | ||||
| #define CP210X_IFC_ENABLE      0x00 | ||||
| #define CP210X_SET_BAUDDIV     0x01 | ||||
| #define CP210X_GET_BAUDDIV     0x02 | ||||
| @@ -60,56 +60,56 @@ | ||||
| #define CP210X_SET_BAUDRATE    0x1E | ||||
| #define CP210X_VENDOR_SPECIFIC 0xFF // GPIO, Recipient must be Device | ||||
|  | ||||
| /* SILABSER_IFC_ENABLE_REQUEST_CODE */ | ||||
| #define CP210X_UART_ENABLE       0x0001 | ||||
| #define CP210X_UART_DISABLE        0x0000 | ||||
| // SILABSER_IFC_ENABLE_REQUEST_CODE | ||||
| #define CP210X_UART_ENABLE              0x0001 | ||||
| #define CP210X_UART_DISABLE             0x0000 | ||||
|  | ||||
| /* SILABSER_SET_BAUDDIV_REQUEST_CODE */ | ||||
| #define CP210X_BAUD_RATE_GEN_FREQ      0x384000 | ||||
| // SILABSER_SET_BAUDDIV_REQUEST_CODE | ||||
| #define CP210X_BAUD_RATE_GEN_FREQ     0x384000 | ||||
|  | ||||
| /*SILABSER_SET_LINE_CTL_REQUEST_CODE */ | ||||
| #define CP210X_BITS_DATA_MASK        0x0f00 | ||||
| #define CP210X_BITS_DATA_5       0x0500 | ||||
| #define CP210X_BITS_DATA_6       0x0600 | ||||
| #define CP210X_BITS_DATA_7       0x0700 | ||||
| #define CP210X_BITS_DATA_8       0x0800 | ||||
| #define CP210X_BITS_DATA_9       0x0900 | ||||
| // SILABSER_SET_LINE_CTL_REQUEST_CODE | ||||
| #define CP210X_BITS_DATA_MASK           0x0f00 | ||||
| #define CP210X_BITS_DATA_5              0x0500 | ||||
| #define CP210X_BITS_DATA_6              0x0600 | ||||
| #define CP210X_BITS_DATA_7              0x0700 | ||||
| #define CP210X_BITS_DATA_8              0x0800 | ||||
| #define CP210X_BITS_DATA_9              0x0900 | ||||
|  | ||||
| #define CP210X_BITS_PARITY_MASK      0x00f0 | ||||
| #define CP210X_BITS_PARITY_NONE      0x0000 | ||||
| #define CP210X_BITS_PARITY_ODD       0x0010 | ||||
| #define CP210X_BITS_PARITY_EVEN      0x0020 | ||||
| #define CP210X_BITS_PARITY_MARK      0x0030 | ||||
| #define CP210X_BITS_PARITY_SPACE     0x0040 | ||||
| #define CP210X_BITS_PARITY_MASK         0x00f0 | ||||
| #define CP210X_BITS_PARITY_NONE         0x0000 | ||||
| #define CP210X_BITS_PARITY_ODD          0x0010 | ||||
| #define CP210X_BITS_PARITY_EVEN         0x0020 | ||||
| #define CP210X_BITS_PARITY_MARK         0x0030 | ||||
| #define CP210X_BITS_PARITY_SPACE        0x0040 | ||||
|  | ||||
| #define CP210X_BITS_STOP_MASK        0x000f | ||||
| #define CP210X_BITS_STOP_1       0x0000 | ||||
| #define CP210X_BITS_STOP_1_5       0x0001 | ||||
| #define CP210X_BITS_STOP_2       0x0002 | ||||
| #define CP210X_BITS_STOP_MASK           0x000f | ||||
| #define CP210X_BITS_STOP_1              0x0000 | ||||
| #define CP210X_BITS_STOP_1_5            0x0001 | ||||
| #define CP210X_BITS_STOP_2              0x0002 | ||||
|  | ||||
| /* SILABSER_SET_BREAK_REQUEST_CODE */ | ||||
| #define CP210X_BREAK_ON        0x0001 | ||||
| #define CP210X_BREAK_OFF       0x0000 | ||||
| // SILABSER_SET_BREAK_REQUEST_CODE | ||||
| #define CP210X_BREAK_ON                 0x0001 | ||||
| #define CP210X_BREAK_OFF                0x0000 | ||||
|  | ||||
| /* SILABSER_SET_MHS_REQUEST_CODE */ | ||||
| #define CP210X_MCR_DTR         0x0001 | ||||
| #define CP210X_MCR_RTS         0x0002 | ||||
| #define CP210X_MCR_ALL         0x0003 | ||||
| #define CP210X_MSR_CTS         0x0010 | ||||
| #define CP210X_MSR_DSR         0x0020 | ||||
| #define CP210X_MSR_RING        0x0040 | ||||
| #define CP210X_MSR_DCD         0x0080 | ||||
| #define CP210X_MSR_ALL         0x00F0 | ||||
| // SILABSER_SET_MHS_REQUEST_CODE | ||||
| #define CP210X_MCR_DTR                  0x0001 | ||||
| #define CP210X_MCR_RTS                  0x0002 | ||||
| #define CP210X_MCR_ALL                  0x0003 | ||||
| #define CP210X_MSR_CTS                  0x0010 | ||||
| #define CP210X_MSR_DSR                  0x0020 | ||||
| #define CP210X_MSR_RING                 0x0040 | ||||
| #define CP210X_MSR_DCD                  0x0080 | ||||
| #define CP210X_MSR_ALL                  0x00F0 | ||||
|  | ||||
| #define CP210X_CONTROL_WRITE_DTR     0x0100 | ||||
| #define CP210X_CONTROL_WRITE_RTS     0x0200 | ||||
| #define CP210X_CONTROL_WRITE_DTR        0x0100 | ||||
| #define CP210X_CONTROL_WRITE_RTS        0x0200 | ||||
|  | ||||
| #define CP210X_LSR_BREAK       0x0001 | ||||
| #define CP210X_LSR_FRAMING_ERROR     0x0002 | ||||
| #define CP210X_LSR_HW_OVERRUN        0x0004 | ||||
| #define CP210X_LSR_QUEUE_OVERRUN     0x0008 | ||||
| #define CP210X_LSR_PARITY_ERROR      0x0010 | ||||
| #define CP210X_LSR_ALL         0x001F | ||||
| #define CP210X_LSR_BREAK                0x0001 | ||||
| #define CP210X_LSR_FRAMING_ERROR        0x0002 | ||||
| #define CP210X_LSR_HW_OVERRUN           0x0004 | ||||
| #define CP210X_LSR_QUEUE_OVERRUN        0x0008 | ||||
| #define CP210X_LSR_PARITY_ERROR         0x0010 | ||||
| #define CP210X_LSR_ALL                  0x001F | ||||
|  | ||||
| // supported baudrates | ||||
| // reference: datasheets and AN205 "CP210x Baud Rate Support" | ||||
|   | ||||
| @@ -28,43 +28,43 @@ | ||||
| #include <stdint.h> | ||||
|  | ||||
| // Commands | ||||
| #define FTDI_SIO_RESET              0 // Reset the port | ||||
| #define FTDI_SIO_MODEM_CTRL         1 // Set the modem control register | ||||
| #define FTDI_SIO_SET_FLOW_CTRL      2 // Set flow control register | ||||
| #define FTDI_SIO_SET_BAUD_RATE      3 // Set baud rate | ||||
| #define FTDI_SIO_SET_DATA           4 // Set the data characteristics of the port | ||||
| #define FTDI_SIO_GET_MODEM_STATUS   5 // Retrieve current value of modem status register | ||||
| #define FTDI_SIO_SET_EVENT_CHAR     6 // Set the event character | ||||
| #define FTDI_SIO_SET_ERROR_CHAR     7 // Set the error character | ||||
| #define FTDI_SIO_SET_LATENCY_TIMER  9 // Set the latency timer | ||||
| #define FTDI_SIO_GET_LATENCY_TIMER 10 // Get the latency timer | ||||
| #define FTDI_SIO_SET_BITMODE       11 // Set bitbang mode | ||||
| #define FTDI_SIO_READ_PINS         12 // Read immediate value of pins | ||||
| #define FTDI_SIO_READ_EEPROM     0x90 // Read EEPROM | ||||
| #define FTDI_SIO_RESET                0 // Reset the port | ||||
| #define FTDI_SIO_MODEM_CTRL           1 // Set the modem control register | ||||
| #define FTDI_SIO_SET_FLOW_CTRL        2 // Set flow control register | ||||
| #define FTDI_SIO_SET_BAUD_RATE        3 // Set baud rate | ||||
| #define FTDI_SIO_SET_DATA             4 // Set the data characteristics of the port | ||||
| #define FTDI_SIO_GET_MODEM_STATUS     5 // Retrieve current value of modem status register | ||||
| #define FTDI_SIO_SET_EVENT_CHAR       6 // Set the event character | ||||
| #define FTDI_SIO_SET_ERROR_CHAR       7 // Set the error character | ||||
| #define FTDI_SIO_SET_LATENCY_TIMER    9 // Set the latency timer | ||||
| #define FTDI_SIO_GET_LATENCY_TIMER   10 // Get the latency timer | ||||
| #define FTDI_SIO_SET_BITMODE         11 // Set bitbang mode | ||||
| #define FTDI_SIO_READ_PINS           12 // Read immediate value of pins | ||||
| #define FTDI_SIO_READ_EEPROM       0x90 // Read EEPROM | ||||
|  | ||||
| // Channel indices for FT2232, FT2232H and FT4232H devices | ||||
| #define CHANNEL_A   1 | ||||
| #define CHANNEL_B   2 | ||||
| #define CHANNEL_C   3 | ||||
| #define CHANNEL_D   4 | ||||
| #define CHANNEL_A 1 | ||||
| #define CHANNEL_B 2 | ||||
| #define CHANNEL_C 3 | ||||
| #define CHANNEL_D 4 | ||||
|  | ||||
| // Port Identifier Table | ||||
| #define PIT_DEFAULT   0 // SIOA | ||||
| #define PIT_SIOA      1 // SIOA | ||||
| #define PIT_DEFAULT  0 // SIOA | ||||
| #define PIT_SIOA     1 // SIOA | ||||
| // The device this driver is tested with one has only one port | ||||
| #define PIT_SIOB      2 // SIOB | ||||
| #define PIT_PARALLEL  3 // Parallel | ||||
| #define PIT_SIOB     2 // SIOB | ||||
| #define PIT_PARALLEL 3 // Parallel | ||||
|  | ||||
| // FTDI_SIO_RESET | ||||
| #define FTDI_SIO_RESET_REQUEST FTDI_SIO_RESET | ||||
| #define FTDI_SIO_RESET_REQUEST_TYPE 0x40 | ||||
| #define FTDI_SIO_RESET_SIO 0 | ||||
| #define FTDI_SIO_RESET_PURGE_RX 1 | ||||
| #define FTDI_SIO_RESET_PURGE_TX 2 | ||||
| #define FTDI_SIO_RESET_REQUEST                    FTDI_SIO_RESET | ||||
| #define FTDI_SIO_RESET_REQUEST_TYPE               0x40 | ||||
| #define FTDI_SIO_RESET_SIO                        0 | ||||
| #define FTDI_SIO_RESET_PURGE_RX                   1 | ||||
| #define FTDI_SIO_RESET_PURGE_TX                   2 | ||||
|  | ||||
| // FTDI_SIO_SET_BAUDRATE | ||||
| #define FTDI_SIO_SET_BAUDRATE_REQUEST_TYPE 0x40 | ||||
| #define FTDI_SIO_SET_BAUDRATE_REQUEST 3 | ||||
| #define FTDI_SIO_SET_BAUDRATE_REQUEST_TYPE        0x40 | ||||
| #define FTDI_SIO_SET_BAUDRATE_REQUEST             3 | ||||
|  | ||||
| enum ftdi_sio_baudrate { | ||||
|   ftdi_sio_b300 = 0, | ||||
| @@ -80,89 +80,89 @@ enum ftdi_sio_baudrate { | ||||
| }; | ||||
|  | ||||
| // FTDI_SIO_SET_DATA | ||||
| #define FTDI_SIO_SET_DATA_REQUEST FTDI_SIO_SET_DATA | ||||
| #define FTDI_SIO_SET_DATA_REQUEST_TYPE  0x40 | ||||
| #define FTDI_SIO_SET_DATA_PARITY_NONE (0x0 << 8) | ||||
| #define FTDI_SIO_SET_DATA_PARITY_ODD  (0x1 << 8) | ||||
| #define FTDI_SIO_SET_DATA_PARITY_EVEN (0x2 << 8) | ||||
| #define FTDI_SIO_SET_DATA_PARITY_MARK (0x3 << 8) | ||||
| #define FTDI_SIO_SET_DATA_PARITY_SPACE  (0x4 << 8) | ||||
| #define FTDI_SIO_SET_DATA_STOP_BITS_1 (0x0 << 11) | ||||
| #define FTDI_SIO_SET_DATA_STOP_BITS_15  (0x1 << 11) | ||||
| #define FTDI_SIO_SET_DATA_STOP_BITS_2 (0x2 << 11) | ||||
| #define FTDI_SIO_SET_BREAK    (0x1 << 14) | ||||
| #define FTDI_SIO_SET_DATA_REQUEST                 FTDI_SIO_SET_DATA | ||||
| #define FTDI_SIO_SET_DATA_REQUEST_TYPE            0x40 | ||||
| #define FTDI_SIO_SET_DATA_PARITY_NONE             (0x0 << 8) | ||||
| #define FTDI_SIO_SET_DATA_PARITY_ODD              (0x1 << 8) | ||||
| #define FTDI_SIO_SET_DATA_PARITY_EVEN             (0x2 << 8) | ||||
| #define FTDI_SIO_SET_DATA_PARITY_MARK             (0x3 << 8) | ||||
| #define FTDI_SIO_SET_DATA_PARITY_SPACE            (0x4 << 8) | ||||
| #define FTDI_SIO_SET_DATA_STOP_BITS_1             (0x0 << 11) // same coding as ACM | ||||
| #define FTDI_SIO_SET_DATA_STOP_BITS_15            (0x1 << 11) // 1.5 not supported, for future use? | ||||
| #define FTDI_SIO_SET_DATA_STOP_BITS_2             (0x2 << 11) | ||||
| #define FTDI_SIO_SET_BREAK                        (0x1 << 14) | ||||
|  | ||||
| // FTDI_SIO_MODEM_CTRL | ||||
| #define FTDI_SIO_SET_MODEM_CTRL_REQUEST_TYPE 0x40 | ||||
| #define FTDI_SIO_SET_MODEM_CTRL_REQUEST FTDI_SIO_MODEM_CTRL | ||||
| #define FTDI_SIO_SET_MODEM_CTRL_REQUEST_TYPE      0x40 | ||||
| #define FTDI_SIO_SET_MODEM_CTRL_REQUEST           FTDI_SIO_MODEM_CTRL | ||||
|  | ||||
| #define FTDI_SIO_SET_DTR_MASK 0x1 | ||||
| #define FTDI_SIO_SET_DTR_HIGH ((FTDI_SIO_SET_DTR_MASK  << 8) | 1) | ||||
| #define FTDI_SIO_SET_DTR_LOW  ((FTDI_SIO_SET_DTR_MASK  << 8) | 0) | ||||
| #define FTDI_SIO_SET_RTS_MASK 0x2 | ||||
| #define FTDI_SIO_SET_RTS_HIGH ((FTDI_SIO_SET_RTS_MASK << 8) | 2) | ||||
| #define FTDI_SIO_SET_RTS_LOW  ((FTDI_SIO_SET_RTS_MASK << 8) | 0) | ||||
| #define FTDI_SIO_SET_DTR_MASK                     0x1 | ||||
| #define FTDI_SIO_SET_DTR_HIGH                     ((FTDI_SIO_SET_DTR_MASK << 8) | 1) | ||||
| #define FTDI_SIO_SET_DTR_LOW                      ((FTDI_SIO_SET_DTR_MASK << 8) | 0) | ||||
| #define FTDI_SIO_SET_RTS_MASK                     0x2 | ||||
| #define FTDI_SIO_SET_RTS_HIGH                     ((FTDI_SIO_SET_RTS_MASK << 8) | 2) | ||||
| #define FTDI_SIO_SET_RTS_LOW                      ((FTDI_SIO_SET_RTS_MASK << 8) | 0) | ||||
|  | ||||
| // FTDI_SIO_SET_FLOW_CTRL | ||||
| #define FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE 0x40 | ||||
| #define FTDI_SIO_SET_FLOW_CTRL_REQUEST FTDI_SIO_SET_FLOW_CTRL | ||||
| #define FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE       0x40 | ||||
| #define FTDI_SIO_SET_FLOW_CTRL_REQUEST            FTDI_SIO_SET_FLOW_CTRL | ||||
| #define FTDI_SIO_DISABLE_FLOW_CTRL 0x0 | ||||
| #define FTDI_SIO_RTS_CTS_HS (0x1 << 8) | ||||
| #define FTDI_SIO_DTR_DSR_HS (0x2 << 8) | ||||
| #define FTDI_SIO_XON_XOFF_HS (0x4 << 8) | ||||
| #define FTDI_SIO_RTS_CTS_HS                       (0x1 << 8) | ||||
| #define FTDI_SIO_DTR_DSR_HS                       (0x2 << 8) | ||||
| #define FTDI_SIO_XON_XOFF_HS                      (0x4 << 8) | ||||
|  | ||||
| // FTDI_SIO_GET_LATENCY_TIMER | ||||
| #define  FTDI_SIO_GET_LATENCY_TIMER_REQUEST FTDI_SIO_GET_LATENCY_TIMER | ||||
| #define  FTDI_SIO_GET_LATENCY_TIMER_REQUEST_TYPE 0xC0 | ||||
| #define  FTDI_SIO_GET_LATENCY_TIMER_REQUEST       FTDI_SIO_GET_LATENCY_TIMER | ||||
| #define  FTDI_SIO_GET_LATENCY_TIMER_REQUEST_TYPE  0xC0 | ||||
|  | ||||
| // FTDI_SIO_SET_LATENCY_TIMER | ||||
| #define  FTDI_SIO_SET_LATENCY_TIMER_REQUEST FTDI_SIO_SET_LATENCY_TIMER | ||||
| #define  FTDI_SIO_SET_LATENCY_TIMER_REQUEST_TYPE 0x40 | ||||
| #define  FTDI_SIO_SET_LATENCY_TIMER_REQUEST       FTDI_SIO_SET_LATENCY_TIMER | ||||
| #define  FTDI_SIO_SET_LATENCY_TIMER_REQUEST_TYPE  0x40 | ||||
|  | ||||
| // FTDI_SIO_SET_EVENT_CHAR | ||||
| #define  FTDI_SIO_SET_EVENT_CHAR_REQUEST FTDI_SIO_SET_EVENT_CHAR | ||||
| #define  FTDI_SIO_SET_EVENT_CHAR_REQUEST_TYPE 0x40 | ||||
| #define  FTDI_SIO_SET_EVENT_CHAR_REQUEST          FTDI_SIO_SET_EVENT_CHAR | ||||
| #define  FTDI_SIO_SET_EVENT_CHAR_REQUEST_TYPE     0x40 | ||||
|  | ||||
| // FTDI_SIO_GET_MODEM_STATUS | ||||
| #define FTDI_SIO_GET_MODEM_STATUS_REQUEST_TYPE 0xc0 | ||||
| #define FTDI_SIO_GET_MODEM_STATUS_REQUEST FTDI_SIO_GET_MODEM_STATUS | ||||
| #define FTDI_SIO_CTS_MASK 0x10 | ||||
| #define FTDI_SIO_DSR_MASK 0x20 | ||||
| #define FTDI_SIO_RI_MASK  0x40 | ||||
| #define FTDI_SIO_RLSD_MASK 0x80 | ||||
| #define FTDI_SIO_GET_MODEM_STATUS_REQUEST_TYPE    0xc0 | ||||
| #define FTDI_SIO_GET_MODEM_STATUS_REQUEST         FTDI_SIO_GET_MODEM_STATUS | ||||
| #define FTDI_SIO_CTS_MASK                         0x10 | ||||
| #define FTDI_SIO_DSR_MASK                         0x20 | ||||
| #define FTDI_SIO_RI_MASK                          0x40 | ||||
| #define FTDI_SIO_RLSD_MASK                        0x80 | ||||
|  | ||||
| // FTDI_SIO_SET_BITMODE | ||||
| #define FTDI_SIO_SET_BITMODE_REQUEST_TYPE 0x40 | ||||
| #define FTDI_SIO_SET_BITMODE_REQUEST FTDI_SIO_SET_BITMODE | ||||
| #define FTDI_SIO_SET_BITMODE_REQUEST_TYPE         0x40 | ||||
| #define FTDI_SIO_SET_BITMODE_REQUEST              FTDI_SIO_SET_BITMODE | ||||
|  | ||||
| // Possible bitmodes for FTDI_SIO_SET_BITMODE_REQUEST | ||||
| #define FTDI_SIO_BITMODE_RESET    0x00 | ||||
| #define FTDI_SIO_BITMODE_CBUS   0x20 | ||||
| #define FTDI_SIO_BITMODE_RESET                    0x00 | ||||
| #define FTDI_SIO_BITMODE_CBUS                     0x20 | ||||
|  | ||||
| // FTDI_SIO_READ_PINS | ||||
| #define FTDI_SIO_READ_PINS_REQUEST_TYPE 0xc0 | ||||
| #define FTDI_SIO_READ_PINS_REQUEST FTDI_SIO_READ_PINS | ||||
| #define FTDI_SIO_READ_PINS_REQUEST_TYPE           0xc0 | ||||
| #define FTDI_SIO_READ_PINS_REQUEST                FTDI_SIO_READ_PINS | ||||
|  | ||||
| // FTDI_SIO_READ_EEPROM | ||||
| #define FTDI_SIO_READ_EEPROM_REQUEST_TYPE 0xc0 | ||||
| #define FTDI_SIO_READ_EEPROM_REQUEST FTDI_SIO_READ_EEPROM | ||||
| #define FTDI_SIO_READ_EEPROM_REQUEST_TYPE         0xc0 | ||||
| #define FTDI_SIO_READ_EEPROM_REQUEST              FTDI_SIO_READ_EEPROM | ||||
|  | ||||
| #define FTDI_FTX_CBUS_MUX_GPIO    0x8 | ||||
| #define FTDI_FT232R_CBUS_MUX_GPIO 0xa | ||||
|  | ||||
| #define FTDI_RS0_CTS  (1 << 4) | ||||
| #define FTDI_RS0_DSR  (1 << 5) | ||||
| #define FTDI_RS0_RI (1 << 6) | ||||
| #define FTDI_RS0_RI   (1 << 6) | ||||
| #define FTDI_RS0_RLSD (1 << 7) | ||||
|  | ||||
| #define FTDI_RS_DR  1 | ||||
| #define FTDI_RS_OE  (1<<1) | ||||
| #define FTDI_RS_PE  (1<<2) | ||||
| #define FTDI_RS_FE  (1<<3) | ||||
| #define FTDI_RS_BI  (1<<4) | ||||
| #define FTDI_RS_THRE  (1<<5) | ||||
| #define FTDI_RS_TEMT  (1<<6) | ||||
| #define FTDI_RS_FIFO  (1<<7) | ||||
| #define FTDI_RS_DR    1 | ||||
| #define FTDI_RS_OE    (1 << 1) | ||||
| #define FTDI_RS_PE    (1 << 2) | ||||
| #define FTDI_RS_FE    (1 << 3) | ||||
| #define FTDI_RS_BI    (1 << 4) | ||||
| #define FTDI_RS_THRE  (1 << 5) | ||||
| #define FTDI_RS_TEMT  (1 << 6) | ||||
| #define FTDI_RS_FIFO  (1 << 7) | ||||
|  | ||||
| // chip types and names | ||||
| enum ftdi_chip_type { | ||||
| @@ -206,14 +206,14 @@ enum ftdi_chip_type { | ||||
|  | ||||
| // private interface data | ||||
| typedef struct ftdi_private { | ||||
|   enum ftdi_chip_type chip_type; | ||||
|   uint8_t channel; // channel index, or 0 for legacy types | ||||
|   enum    ftdi_chip_type chip_type; | ||||
|   uint8_t channel;                  // channel index, or 0 for legacy types | ||||
| } ftdi_private_t; | ||||
|  | ||||
| #define FTDI_OK true | ||||
| #define FTDI_FAIL false | ||||
| #define FTDI_OK           true | ||||
| #define FTDI_FAIL         false | ||||
| #define FTDI_NOT_POSSIBLE -1 | ||||
| #define FTDI_REQUESTED -2 | ||||
| #define FTDI_REQUESTED    -2 | ||||
|  | ||||
| // division and round function overtaken from math.h | ||||
| #define DIV_ROUND_CLOSEST(x, divisor)(      \ | ||||
|   | ||||
| @@ -24,8 +24,8 @@ | ||||
|  * This file is part of the TinyUSB stack. | ||||
|  */ | ||||
|  | ||||
| #ifndef _PL2303_H_ | ||||
| #define _PL2303_H_ | ||||
| #ifndef TUSB_PL2303_H | ||||
| #define TUSB_PL2303_H | ||||
|  | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
| @@ -36,66 +36,66 @@ | ||||
| //   https://github.com/torvalds/linux/blob/master/drivers/usb/serial/pl2303.c | ||||
| // - https://github.com/freebsd/freebsd-src/blob/main/sys/dev/usb/serial/uplcom.c | ||||
|  | ||||
| /* quirks */ | ||||
| #define PL2303_QUIRK_UART_STATE_IDX0 1 | ||||
| #define PL2303_QUIRK_LEGACY 2 | ||||
| #define PL2303_QUIRK_ENDPOINT_HACK 4 | ||||
| // quirks | ||||
| #define PL2303_QUIRK_UART_STATE_IDX0      1 | ||||
| #define PL2303_QUIRK_LEGACY               2 | ||||
| #define PL2303_QUIRK_ENDPOINT_HACK        4 | ||||
|  | ||||
| /* requests and bits */ | ||||
| #define PL2303_SET_LINE_REQUEST_TYPE 0x21     // class request host to device interface | ||||
| #define PL2303_SET_LINE_REQUEST 0x20          // dec 32 | ||||
| // requests and bits | ||||
| #define PL2303_SET_LINE_REQUEST_TYPE      0x21    // class request host to device interface | ||||
| #define PL2303_SET_LINE_REQUEST           0x20    // dec 32 | ||||
|  | ||||
| #define PL2303_SET_CONTROL_REQUEST_TYPE 0x21  // class request host to device interface | ||||
| #define PL2303_SET_CONTROL_REQUEST 0x22       // dec 34 | ||||
| #define PL2303_CONTROL_DTR 0x01               // dec 1 | ||||
| #define PL2303_CONTROL_RTS 0x02               // dec 2 | ||||
| #define PL2303_SET_CONTROL_REQUEST_TYPE   0x21    // class request host to device interface | ||||
| #define PL2303_SET_CONTROL_REQUEST        0x22    // dec 34 | ||||
| #define PL2303_CONTROL_DTR                0x01    // dec 1 | ||||
| #define PL2303_CONTROL_RTS                0x02    // dec 2 | ||||
|  | ||||
| #define PL2303_BREAK_REQUEST_TYPE 0x21        // class request host to device interface | ||||
| #define PL2303_BREAK_REQUEST 0x23             // dec 35 | ||||
| #define PL2303_BREAK_ON 0xffff | ||||
| #define PL2303_BREAK_OFF 0x0000 | ||||
| #define PL2303_BREAK_REQUEST_TYPE         0x21    // class request host to device interface | ||||
| #define PL2303_BREAK_REQUEST              0x23    // dec 35 | ||||
| #define PL2303_BREAK_ON                   0xffff | ||||
| #define PL2303_BREAK_OFF                  0x0000 | ||||
|  | ||||
| #define PL2303_GET_LINE_REQUEST_TYPE 0xa1     // class request device to host interface | ||||
| #define PL2303_GET_LINE_REQUEST 0x21          // dec 33 | ||||
| #define PL2303_GET_LINE_REQUEST_TYPE      0xa1    // class request device to host interface | ||||
| #define PL2303_GET_LINE_REQUEST           0x21    // dec 33 | ||||
|  | ||||
| #define PL2303_VENDOR_WRITE_REQUEST_TYPE 0x40 // vendor request host to device interface | ||||
| #define PL2303_VENDOR_WRITE_REQUEST 0x01      // dec 1 | ||||
| #define PL2303_VENDOR_WRITE_NREQUEST 0x80     // dec 128 | ||||
| #define PL2303_VENDOR_WRITE_REQUEST_TYPE  0x40    // vendor request host to device interface | ||||
| #define PL2303_VENDOR_WRITE_REQUEST       0x01    // dec 1 | ||||
| #define PL2303_VENDOR_WRITE_NREQUEST      0x80    // dec 128 | ||||
|  | ||||
| #define PL2303_VENDOR_READ_REQUEST_TYPE 0xc0  // vendor request device to host interface | ||||
| #define PL2303_VENDOR_READ_REQUEST 0x01       // dec 1 | ||||
| #define PL2303_VENDOR_READ_NREQUEST 0x81      // dec 129 | ||||
| #define PL2303_VENDOR_READ_REQUEST_TYPE   0xc0    // vendor request device to host interface | ||||
| #define PL2303_VENDOR_READ_REQUEST        0x01    // dec 1 | ||||
| #define PL2303_VENDOR_READ_NREQUEST       0x81    // dec 129 | ||||
|  | ||||
| #define PL2303_UART_STATE_INDEX 8 | ||||
| #define PL2303_UART_STATE_MSR_MASK 0x8b | ||||
| #define PL2303_UART_STATE_TRANSIENT_MASK 0x74 | ||||
| #define PL2303_UART_DCD 0x01 | ||||
| #define PL2303_UART_DSR 0x02 | ||||
| #define PL2303_UART_BREAK_ERROR 0x04 | ||||
| #define PL2303_UART_RING 0x08 | ||||
| #define PL2303_UART_FRAME_ERROR 0x10 | ||||
| #define PL2303_UART_PARITY_ERROR 0x20 | ||||
| #define PL2303_UART_OVERRUN_ERROR 0x40 | ||||
| #define PL2303_UART_CTS 0x80 | ||||
| #define PL2303_UART_STATE_INDEX           8 | ||||
| #define PL2303_UART_STATE_MSR_MASK        0x8b | ||||
| #define PL2303_UART_STATE_TRANSIENT_MASK  0x74 | ||||
| #define PL2303_UART_DCD                   0x01 | ||||
| #define PL2303_UART_DSR                   0x02 | ||||
| #define PL2303_UART_BREAK_ERROR           0x04 | ||||
| #define PL2303_UART_RING                  0x08 | ||||
| #define PL2303_UART_FRAME_ERROR           0x10 | ||||
| #define PL2303_UART_PARITY_ERROR          0x20 | ||||
| #define PL2303_UART_OVERRUN_ERROR         0x40 | ||||
| #define PL2303_UART_CTS                   0x80 | ||||
|  | ||||
| #define PL2303_FLOWCTRL_MASK 0xf0 | ||||
| #define PL2303_FLOWCTRL_MASK              0xf0 | ||||
|  | ||||
| #define PL2303_CLEAR_HALT_REQUEST_TYPE 0x02   // standard request host to device endpoint | ||||
| #define PL2303_CLEAR_HALT_REQUEST_TYPE    0x02    // standard request host to device endpoint | ||||
|  | ||||
| /* registers via vendor read/write requests */ | ||||
| #define PL2303_READ_TYPE_HX_STATUS 0x8080 | ||||
| // registers via vendor read/write requests | ||||
| #define PL2303_READ_TYPE_HX_STATUS        0x8080 | ||||
|  | ||||
| #define PL2303_HXN_RESET_REG 0x07 | ||||
| #define PL2303_HXN_RESET_UPSTREAM_PIPE 0x02 | ||||
| #define PL2303_HXN_RESET_DOWNSTREAM_PIPE 0x01 | ||||
| #define PL2303_HXN_RESET_REG              0x07 | ||||
| #define PL2303_HXN_RESET_UPSTREAM_PIPE    0x02 | ||||
| #define PL2303_HXN_RESET_DOWNSTREAM_PIPE  0x01 | ||||
|  | ||||
| #define PL2303_HXN_FLOWCTRL_REG 0x0a | ||||
| #define PL2303_HXN_FLOWCTRL_MASK 0x1c | ||||
| #define PL2303_HXN_FLOWCTRL_NONE 0x1c | ||||
| #define PL2303_HXN_FLOWCTRL_RTS_CTS 0x18 | ||||
| #define PL2303_HXN_FLOWCTRL_XON_XOFF 0x0c | ||||
| #define PL2303_HXN_FLOWCTRL_REG           0x0a | ||||
| #define PL2303_HXN_FLOWCTRL_MASK          0x1c | ||||
| #define PL2303_HXN_FLOWCTRL_NONE          0x1c | ||||
| #define PL2303_HXN_FLOWCTRL_RTS_CTS       0x18 | ||||
| #define PL2303_HXN_FLOWCTRL_XON_XOFF      0x0c | ||||
|  | ||||
| /* type data */ | ||||
| // type data | ||||
| enum pl2303_type { | ||||
|   TYPE_H, | ||||
|   TYPE_HX, | ||||
| @@ -107,9 +107,9 @@ enum pl2303_type { | ||||
| }; | ||||
|  | ||||
| struct pl2303_type_data { | ||||
|   uint8_t const *name; | ||||
|   uint8_t  const *name; | ||||
|   uint32_t const max_baud_rate; | ||||
|   uint8_t const quirks; | ||||
|   uint8_t  const quirks; | ||||
|   uint16_t const no_autoxonxoff:1; | ||||
|   uint16_t const no_divisors:1; | ||||
|   uint16_t const alt_divisors:1; | ||||
| @@ -146,7 +146,7 @@ struct pl2303_type_data { | ||||
|     .no_divisors = true, \ | ||||
|   } | ||||
|  | ||||
| /* private data types */ | ||||
| // private data types | ||||
| struct pl2303_serial_private { | ||||
|   const struct pl2303_type_data* type; | ||||
|   uint8_t quirks; | ||||
| @@ -157,16 +157,16 @@ typedef struct TU_ATTR_PACKED { | ||||
|   bool supports_hx_status; | ||||
| } pl2303_private_t; | ||||
|  | ||||
| /* buffer sizes for line coding data */ | ||||
| #define PL2303_LINE_CODING_BUFSIZE 7 | ||||
| // buffer sizes for line coding data | ||||
| #define PL2303_LINE_CODING_BUFSIZE          7 | ||||
| #define PL2303_LINE_CODING_BAUDRATE_BUFSIZE 4 | ||||
|  | ||||
| /* bulk endpoints */ | ||||
| #define PL2303_OUT_EP 0x02 | ||||
| #define PL2303_IN_EP 0x83 | ||||
| // bulk endpoints | ||||
| #define PL2303_OUT_EP                       0x02 | ||||
| #define PL2303_IN_EP                        0x83 | ||||
|  | ||||
| /* return values of pl2303_detect_type() */ | ||||
| // return values of pl2303_detect_type() | ||||
| #define PL2303_SUPPORTS_HX_STATUS_TRIGGERED -1 | ||||
| #define PL2303_DETECT_TYPE_FAILED -2 | ||||
| #define PL2303_DETECT_TYPE_FAILED           -2 | ||||
|  | ||||
| #endif /* _PL2303_H_ */ | ||||
| #endif // TUSB_PL2303_H | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 IngHK
					IngHK