summaryrefslogtreecommitdiff
path: root/src/class/cdc/serial
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-06-19 17:05:21 +0700
committerhathach <[email protected]>2025-06-19 17:05:21 +0700
commitec1a26251d0161d5e7c11f4ca552af154cf08dbd (patch)
treef133422d6652829ad69928852f4ca6129b78e0f7 /src/class/cdc/serial
parent2adb305ea71f69b38c6c01cc054d8e323dd25e0e (diff)
clean up pl2303 type data
Diffstat (limited to 'src/class/cdc/serial')
-rw-r--r--src/class/cdc/serial/pl2303.h46
1 files changed, 15 insertions, 31 deletions
diff --git a/src/class/cdc/serial/pl2303.h b/src/class/cdc/serial/pl2303.h
index 40311260d..c01dac0e1 100644
--- a/src/class/cdc/serial/pl2303.h
+++ b/src/class/cdc/serial/pl2303.h
@@ -97,65 +97,53 @@
// type data
typedef enum pl2303_type {
- PL2303_TYPE_H,
- PL2303_TYPE_HX,
- PL2303_TYPE_TA,
- PL2303_TYPE_TB,
- PL2303_TYPE_HXD,
- PL2303_TYPE_HXN,
- // PL2303_TYPE_NEED_SUPPORTS_HX_STATUS,
- // PL2303_TYPE_UNKNOWN,
- PL2303_TYPE_COUNT
+ PL2303_TYPE_H = 0, // 0
+ PL2303_TYPE_HX, // 1
+ PL2303_TYPE_TA, // 2
+ PL2303_TYPE_TB, // 3
+ PL2303_TYPE_HXD, // 4
+ PL2303_TYPE_HXN, // 5
+ PL2303_TYPE_COUNT,
+ PL2303_TYPE_NEED_SUPPORTS_HX_STATUS,
+ PL2303_TYPE_UNKNOWN,
} pl2303_type_t;
typedef struct pl2303_type_data {
- uint8_t const *name;
uint32_t const max_baud_rate;
- uint8_t const quirks;
- uint16_t const no_autoxonxoff:1;
- uint16_t const no_divisors:1;
- uint16_t const alt_divisors:1;
+ uint8_t const quirks;
+ uint8_t const no_autoxonxoff : 1;
+ uint8_t const no_divisors : 1;
+ uint8_t const alt_divisors : 1;
} pl2303_type_data_t;
#define PL2303_TYPE_DATA \
[PL2303_TYPE_H] = { \
- .name = (uint8_t const*)"H", \
.max_baud_rate = 1228800, \
.quirks = PL2303_QUIRK_LEGACY, \
.no_autoxonxoff = true, \
}, \
[PL2303_TYPE_HX] = { \
- .name = (uint8_t const*)"HX", \
.max_baud_rate = 6000000, \
}, \
[PL2303_TYPE_TA] = { \
- .name = (uint8_t const*)"TA", \
.max_baud_rate = 6000000, \
.alt_divisors = true, \
}, \
[PL2303_TYPE_TB] = { \
- .name = (uint8_t const*)"TB", \
.max_baud_rate = 12000000, \
.alt_divisors = true, \
}, \
[PL2303_TYPE_HXD] = { \
- .name = (uint8_t const*)"HXD", \
.max_baud_rate = 12000000, \
}, \
[PL2303_TYPE_HXN] = { \
- .name = (uint8_t const*)"G (HXN)", \
.max_baud_rate = 12000000, \
.no_divisors = true, \
}
-// private data types
-struct pl2303_serial_private {
- const struct pl2303_type_data* type;
- uint8_t quirks;
-};
-
typedef struct TU_ATTR_PACKED {
- struct pl2303_serial_private serial_private;
+ pl2303_type_t type;
+ uint8_t quirks;
bool supports_hx_status;
} pl2303_private_t;
@@ -167,8 +155,4 @@ typedef struct TU_ATTR_PACKED {
#define PL2303_OUT_EP 0x02
#define PL2303_IN_EP 0x83
-// return values of pl2303_detect_type()
-#define PL2303_TYPE_NEED_SUPPORTS_HX_STATUS -1
-#define PL2303_TYPE_UNKNOWN -2
-
#endif // TUSB_PL2303_H