diff --git a/usb_cables.c b/usb_cables.c index 6c21f54..e517338 100644 --- a/usb_cables.c +++ b/usb_cables.c @@ -675,77 +675,81 @@ const struct usb_pin_t usb_pins[] = { /* USB connectors */ /** USB type A connector pins (host side) */ -static const uint8_t usb_host_a_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; +static const uint8_t usb_a_host_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; /** USB type A connector (host side) */ -static const struct usb_connector_t usb_host_a_connector = { +static const struct usb_connector_t usb_a_host_connector = { .name = "A", .host = true, - .pins_nb = LENGTH(usb_host_a_pins), - .pins = usb_host_a_pins, + .pins_nb = LENGTH(usb_a_host_pins), + .pins = usb_a_host_pins, }; -/** USB-C connector ("host" side) pins */ -static const uint8_t usb_host_c_pins[] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34}; +/** USB-C connector ("host" side, "A" side first) pins */ +static const uint8_t usb_c_host_sidea_pins[] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34}; +/** USB-C connector ("host" side, "B" side first) pins */ +static const uint8_t usb_c_host_sideb_pins[] = {10, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}; /** USB-C connector ("host" side) */ -static const struct usb_connector_t usb_host_c_connector = { +static const struct usb_connector_t usb_c_host_connector = { .name = "C", .host = true, - .pins_nb = LENGTH(usb_host_c_pins), - .pins = usb_host_c_pins, + .pins_nb = LENGTH(usb_c_host_sidea_pins), + .pins = usb_c_host_sidea_pins, }; /** USB type A connector (device) pins */ -static const uint8_t usb_device_a_pins[] = {35, 36, 37, 38, 39, 40, 41, 42, 43, 44}; +static const uint8_t usb_a_device_pins[] = {35, 36, 37, 38, 39, 40, 41, 42, 43, 44}; /** USB type A connector (device) * @note type A should be a host side connector, but it is sometimes used on the device side, or to provide additional power on Y cables */ -static const struct usb_connector_t usb_device_a_connector = { +static const struct usb_connector_t usb_a_device_connector = { .name = "A", .host = false, - .pins_nb = LENGTH(usb_device_a_pins), - .pins = usb_device_a_pins, + .pins_nb = LENGTH(usb_a_device_pins), + .pins = usb_a_device_pins, }; /** USB type B connector (device side) pins */ -static const uint8_t usb_device_b_pins[] = {45, 46, 47, 48, 49, 50, 51, 52, 53, 54}; +static const uint8_t usb_b_device_pins[] = {45, 46, 47, 48, 49, 50, 51, 52, 53, 54}; /** USB type B connector (device side) */ -static const struct usb_connector_t usb_device_b_connector = { +static const struct usb_connector_t usb_b_device_connector = { .name = "B", .host = false, - .pins_nb = LENGTH(usb_device_b_pins), - .pins = usb_device_b_pins, + .pins_nb = LENGTH(usb_b_device_pins), + .pins = usb_b_device_pins, }; /** USB mini-B connector (device side) */ -static const uint8_t usb_device_minib_pins[] = {55, 56, 57, 58, 59, 60}; +static const uint8_t usb_minib_device_pins[] = {55, 56, 57, 58, 59, 60}; /** USB mini-B connector (device side) * @note this connector does not support USB 3.x */ -static const struct usb_connector_t usb_device_minib_connector = { +static const struct usb_connector_t usb_minib_device_connector = { .name = "mini-B", .host = false, - .pins_nb = LENGTH(usb_device_minib_pins), - .pins = usb_device_minib_pins, + .pins_nb = LENGTH(usb_minib_device_pins), + .pins = usb_minib_device_pins, }; /** USB micro-B connector (device side) pins */ -static const uint8_t usb_device_microb_pins[] = {61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71}; +static const uint8_t usb_microb_device_pins[] = {61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71}; /** USB micro-B connector (device side) */ -static const struct usb_connector_t usb_device_microb_connector = { +static const struct usb_connector_t usb_microb_device_connector = { .name = "micro-B", .host = false, - .pins_nb = LENGTH(usb_device_microb_pins), - .pins = usb_device_microb_pins, + .pins_nb = LENGTH(usb_microb_device_pins), + .pins = usb_microb_device_pins, }; -/** USB-C connector ("device" side) pins */ -static const uint8_t usb_device_c_pins[] = {72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96}; +/** USB-C connector ("device" side, "A" side first) pins */ +static const uint8_t usb_c_device_sidea_pins[] = {72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96}; +/** USB-C connector ("device" side, "B" side first) pins */ +//static const uint8_t usb_c_device_sideb_pins[] = {72, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84}; /** USB-C connector ("device" side) */ static const struct usb_connector_t usb_device_c_connector = { .name = "C", .host = false, - .pins_nb = LENGTH(usb_device_c_pins), - .pins = usb_device_c_pins, + .pins_nb = LENGTH(usb_c_device_sidea_pins), + .pins = usb_c_device_sidea_pins, }; /** Apple lightning connector (device side) pins */ @@ -760,518 +764,471 @@ static const struct usb_connector_t lightning_device_connector = { .pins = lighnting_device_pins, }; -/** all USB connectors */ const struct usb_connector_t* usb_connectors[] = { - &usb_host_a_connector, - &usb_host_c_connector, - &usb_device_a_connector, - &usb_device_b_connector, - &usb_device_minib_connector, - &usb_device_microb_connector, + &usb_a_host_connector, + &usb_c_host_connector, + &usb_a_device_connector, + &usb_b_device_connector, + &usb_minib_device_connector, + &usb_microb_device_connector, &usb_device_c_connector, &lightning_device_connector, }; -/** USB cable definitions */ +/* USB cables definitions */ + +/** list of connectors for A-A cables */ static const struct usb_connector_t* usb_a_a_connectors[] = { - &usb_host_a_connector, - &usb_device_a_connector, + &usb_a_host_connector, + &usb_a_device_connector, }; -static const uint8_t usb_a_a_power_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_a_pins[1]}, // VBUS - {usb_host_a_pins[4], usb_device_a_pins[4]}, // GND +/** USB A-A power cable + * @implements this cable is not specified since it does not carry USB data signals + * @note A-A cable are not specified since they use a host connector on both sides + */ +static const uint8_t usb_aapower_pins[][2] = { + {usb_a_host_pins[1], usb_a_device_pins[1]}, // VBUS + {usb_a_host_pins[4], usb_a_device_pins[4]}, // GND }; -static const uint8_t usb_a_a_usb2_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_a_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_a_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_a_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_a_pins[4]}, // GND +/** USB A-A USB 2.0 cable + * @implements this cable is not specified since it does not carry USB data signals + * @note A-A cable are not specified since they use a host connector on both sides, but some cheap devices use it because the connector is cheap + */ +static const uint8_t usb_aausb2_pins[][2] = { + {usb_a_host_pins[0], usb_a_device_pins[0]}, // shield + {usb_a_host_pins[1], usb_a_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_a_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_a_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_a_device_pins[4]}, // GND }; -static const uint8_t usb_a_a_usb2_shielded_pins[][2] = { - {usb_host_a_pins[0], usb_device_a_pins[0]}, // shield - {usb_host_a_pins[1], usb_device_a_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_a_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_a_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_a_pins[4]}, // GND -}; - -static const uint8_t usb_a_a_usb3_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_a_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_a_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_a_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_a_pins[4]}, // GND - {usb_host_a_pins[5], usb_device_a_pins[5]}, // SSRX-, SSTX- - {usb_host_a_pins[6], usb_device_a_pins[6]}, // SSRX+, SSTX+ - {usb_host_a_pins[7], usb_device_a_pins[7]}, // GND_DRAIN - {usb_host_a_pins[8], usb_device_a_pins[8]}, // SSTX-, SSRX- - {usb_host_a_pins[9], usb_device_a_pins[9]}, // SSTX+, SSRX+ -}; - -static const uint8_t usb_a_a_usb3_shielded_pins[][2] = { - {usb_host_a_pins[0], usb_device_a_pins[0]}, // shield - {usb_host_a_pins[1], usb_device_a_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_a_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_a_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_a_pins[4]}, // GND - {usb_host_a_pins[5], usb_device_a_pins[5]}, // SSRX-, SSTX- - {usb_host_a_pins[6], usb_device_a_pins[6]}, // SSRX+, SSTX+ - {usb_host_a_pins[7], usb_device_a_pins[7]}, // GND_DRAIN - {usb_host_a_pins[8], usb_device_a_pins[8]}, // SSTX-, SSRX- - {usb_host_a_pins[9], usb_device_a_pins[9]}, // SSTX+, SSRX+ +/** USB A-A USB 3.x cable + * @implements this cable is not specified since it does not carry USB data signals + * @note A-A cable are not specified since they use a host connector on both sides, but it is often used on PCIe raiser boards + */ +static const uint8_t usb_aausb3_pins[][2] = { + {usb_a_host_pins[0], usb_a_device_pins[0]}, // shield + {usb_a_host_pins[1], usb_a_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_a_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_a_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_a_device_pins[4]}, // GND + {usb_a_host_pins[5], usb_a_device_pins[5]}, // SSRX-, SSTX- + {usb_a_host_pins[6], usb_a_device_pins[6]}, // SSRX+, SSTX+ + {usb_a_host_pins[7], usb_a_device_pins[7]}, // GND_DRAIN + {usb_a_host_pins[8], usb_a_device_pins[8]}, // SSTX-, SSRX- + {usb_a_host_pins[9], usb_a_device_pins[9]}, // SSTX+, SSRX+ }; +/** list of connectors for A-B cables (using A host connector) */ static const struct usb_connector_t* usb_a_host_b_connectors[] = { - &usb_host_a_connector, - &usb_device_b_connector, + &usb_a_host_connector, + &usb_b_device_connector, }; -static const uint8_t usb_a_host_b_power_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_host_a_pins[4], usb_device_b_pins[4]}, // GND +/** USB A-A USB 3.x cable + * @implements this cable is not specified since it does not carry USB data signals + * @note A-A cable are not specified since they use a host connector on both sides, but it is often used on PCIe raiser boards + */ +static const uint8_t usb__a_host__b__abpower_pins[][2] = { + {usb_a_host_pins[1], usb_b_device_pins[1]}, // VBUS + {usb_a_host_pins[4], usb_b_device_pins[4]}, // GND }; -static const uint8_t usb_a_host_b_usb2_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_b_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_b_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_b_pins[4]}, // GND +/** USB A-B USB 2.0 cable + * @implements USB Cables and Connectors Class 2.0 (https://www.usb.org/document-library/cables-and-connectors-class-20) + * @note the shield is mandatory + */ +static const uint8_t usb__a_host__b__abusb2_pins[][2] = { + {usb_a_host_pins[0], usb_b_device_pins[0]}, // shield + {usb_a_host_pins[1], usb_b_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_b_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_b_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_b_device_pins[4]}, // GND }; -static const uint8_t usb_a_host_b_usb2_shielded_pins[][2] = { - {usb_host_a_pins[0], usb_device_b_pins[0]}, // shield - {usb_host_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_b_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_b_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_b_pins[4]}, // GND -}; - -static const uint8_t usb_a_host_b_usb3_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_b_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_b_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_b_pins[4]}, // GND - {usb_host_a_pins[5], usb_device_b_pins[5]}, // SSRX-, SSTX- - {usb_host_a_pins[6], usb_device_b_pins[6]}, // SSRX+, SSTX+ - {usb_host_a_pins[7], usb_device_b_pins[7]}, // GND_DRAIN - {usb_host_a_pins[8], usb_device_b_pins[8]}, // SSTX-, SSRX- - {usb_host_a_pins[9], usb_device_b_pins[9]}, // SSTX+, SSRX+ -}; - -static const uint8_t usb_a_host_b_usb3_shielded_pins[][2] = { - {usb_host_a_pins[0], usb_device_b_pins[0]}, // shield - {usb_host_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_b_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_b_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_b_pins[4]}, // GND - {usb_host_a_pins[5], usb_device_b_pins[5]}, // SSRX-, SSTX- - {usb_host_a_pins[6], usb_device_b_pins[6]}, // SSRX+, SSTX+ - {usb_host_a_pins[7], usb_device_b_pins[7]}, // GND_DRAIN - {usb_host_a_pins[8], usb_device_b_pins[8]}, // SSTX-, SSRX- - {usb_host_a_pins[9], usb_device_b_pins[9]}, // SSTX+, SSRX+ +/** USB A-B USB 3.x cable + * @implements USB Cables and Connectors Class 2.0 (https://www.usb.org/document-library/cables-and-connectors-class-20) + * @note the shield is mandatory + */ +static const uint8_t usb__a_host__b__abusb3_pins[][2] = { + {usb_a_host_pins[0], usb_b_device_pins[0]}, // shield + {usb_a_host_pins[1], usb_b_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_b_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_b_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_b_device_pins[4]}, // GND + {usb_a_host_pins[5], usb_b_device_pins[5]}, // SSRX-, SSTX- + {usb_a_host_pins[6], usb_b_device_pins[6]}, // SSRX+, SSTX+ + {usb_a_host_pins[7], usb_b_device_pins[7]}, // GND_DRAIN + {usb_a_host_pins[8], usb_b_device_pins[8]}, // SSTX-, SSRX- + {usb_a_host_pins[9], usb_b_device_pins[9]}, // SSTX+, SSRX+ }; +/** list of connectors for A-B cables (using A device connector) */ static const struct usb_connector_t* usb_a_device_b_connectors[] = { - &usb_device_a_connector, - &usb_device_b_connector, + &usb_a_device_connector, + &usb_b_device_connector, }; -static const uint8_t usb_a_device_b_power_unshielded_pins[][2] = { - {usb_device_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_device_a_pins[4], usb_device_b_pins[4]}, // GND +static const uint8_t usb__a_device__b__abpower_pins[][2] = { + {usb_a_device_pins[1], usb_b_device_pins[1]}, // VBUS + {usb_a_device_pins[4], usb_b_device_pins[4]}, // GND }; -static const uint8_t usb_a_device_b_usb2_unshielded_pins[][2] = { - {usb_device_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_b_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_b_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_b_pins[4]}, // GND +static const uint8_t usb__a_device__b__abusb2_pins[][2] = { + {usb_a_device_pins[0], usb_b_device_pins[0]}, // shield + {usb_a_device_pins[1], usb_b_device_pins[1]}, // VBUS + {usb_a_device_pins[2], usb_b_device_pins[2]}, // D- + {usb_a_device_pins[3], usb_b_device_pins[3]}, // D+ + {usb_a_device_pins[4], usb_b_device_pins[4]}, // GND }; -static const uint8_t usb_a_device_b_usb2_shielded_pins[][2] = { - {usb_device_a_pins[0], usb_device_b_pins[0]}, // shield - {usb_device_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_b_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_b_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_b_pins[4]}, // GND -}; - -static const uint8_t usb_a_device_b_usb3_unshielded_pins[][2] = { - {usb_device_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_b_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_b_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_b_pins[4]}, // GND - {usb_device_a_pins[5], usb_device_b_pins[5]}, // SSRX-, SSTX- - {usb_device_a_pins[6], usb_device_b_pins[6]}, // SSRX+, SSTX+ - {usb_device_a_pins[7], usb_device_b_pins[7]}, // GND_DRAIN - {usb_device_a_pins[8], usb_device_b_pins[8]}, // SSTX-, SSRX- - {usb_device_a_pins[9], usb_device_b_pins[9]}, // SSTX+, SSRX+ -}; - -static const uint8_t usb_a_device_b_usb3_shielded_pins[][2] = { - {usb_device_a_pins[0], usb_device_b_pins[0]}, // shield - {usb_device_a_pins[1], usb_device_b_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_b_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_b_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_b_pins[4]}, // GND - {usb_device_a_pins[5], usb_device_b_pins[5]}, // SSRX-, SSTX- - {usb_device_a_pins[6], usb_device_b_pins[6]}, // SSRX+, SSTX+ - {usb_device_a_pins[7], usb_device_b_pins[7]}, // GND_DRAIN - {usb_device_a_pins[8], usb_device_b_pins[8]}, // SSTX-, SSRX- - {usb_device_a_pins[9], usb_device_b_pins[9]}, // SSTX+, SSRX+ +static const uint8_t usb__a_device__b__abusb3_pins[][2] = { + {usb_a_device_pins[0], usb_b_device_pins[0]}, // shield + {usb_a_device_pins[1], usb_b_device_pins[1]}, // VBUS + {usb_a_device_pins[2], usb_b_device_pins[2]}, // D- + {usb_a_device_pins[3], usb_b_device_pins[3]}, // D+ + {usb_a_device_pins[4], usb_b_device_pins[4]}, // GND + {usb_a_device_pins[5], usb_b_device_pins[5]}, // SSRX-, SSTX- + {usb_a_device_pins[6], usb_b_device_pins[6]}, // SSRX+, SSTX+ + {usb_a_device_pins[7], usb_b_device_pins[7]}, // GND_DRAIN + {usb_a_device_pins[8], usb_b_device_pins[8]}, // SSTX-, SSRX- + {usb_a_device_pins[9], usb_b_device_pins[9]}, // SSTX+, SSRX+ }; +/** list of connectors for A-miniB cables (using A host connector) */ static const struct usb_connector_t* usb_a_host_minib_connectors[] = { - &usb_host_a_connector, - &usb_device_minib_connector, + &usb_a_host_connector, + &usb_minib_device_connector, }; static const uint8_t usb_a_host_minib_power_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_minib_pins[1]}, // VBUS - {usb_host_a_pins[4], usb_device_minib_pins[5]}, // GND + {usb_a_host_pins[1], usb_minib_device_pins[1]}, // VBUS + {usb_a_host_pins[4], usb_minib_device_pins[5]}, // GND }; static const uint8_t usb_a_host_minib_usb2_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_minib_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_minib_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_minib_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_minib_pins[5]}, // GND + {usb_a_host_pins[1], usb_minib_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_minib_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_minib_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_minib_device_pins[5]}, // GND }; static const uint8_t usb_a_host_minib_usb2_shielded_pins[][2] = { - {usb_host_a_pins[0], usb_device_minib_pins[0]}, // shield - {usb_host_a_pins[1], usb_device_minib_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_minib_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_minib_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_minib_pins[5]}, // GND + {usb_a_host_pins[0], usb_minib_device_pins[0]}, // shield + {usb_a_host_pins[1], usb_minib_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_minib_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_minib_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_minib_device_pins[5]}, // GND }; +/** list of connectors for A-miniB cables (using A device connector) */ static const struct usb_connector_t* usb_a_device_minib_connectors[] = { - &usb_device_a_connector, - &usb_device_minib_connector, + &usb_a_device_connector, + &usb_minib_device_connector, }; static const uint8_t usb_a_device_minib_power_unshielded_pins[][2] = { - {usb_device_a_pins[1], usb_device_minib_pins[1]}, // VBUS - {usb_device_a_pins[4], usb_device_minib_pins[5]}, // GND + {usb_a_device_pins[1], usb_minib_device_pins[1]}, // VBUS + {usb_a_device_pins[4], usb_minib_device_pins[5]}, // GND }; static const uint8_t usb_a_device_minib_usb2_unshielded_pins[][2] = { - {usb_device_a_pins[1], usb_device_minib_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_minib_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_minib_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_minib_pins[5]}, // GND + {usb_a_device_pins[1], usb_minib_device_pins[1]}, // VBUS + {usb_a_device_pins[2], usb_minib_device_pins[2]}, // D- + {usb_a_device_pins[3], usb_minib_device_pins[3]}, // D+ + {usb_a_device_pins[4], usb_minib_device_pins[5]}, // GND }; static const uint8_t usb_a_device_minib_usb2_shielded_pins[][2] = { - {usb_device_a_pins[0], usb_device_minib_pins[0]}, // shield - {usb_device_a_pins[1], usb_device_minib_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_minib_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_minib_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_minib_pins[5]}, // GND + {usb_a_device_pins[0], usb_minib_device_pins[0]}, // shield + {usb_a_device_pins[1], usb_minib_device_pins[1]}, // VBUS + {usb_a_device_pins[2], usb_minib_device_pins[2]}, // D- + {usb_a_device_pins[3], usb_minib_device_pins[3]}, // D+ + {usb_a_device_pins[4], usb_minib_device_pins[5]}, // GND }; +/** list of connectors for A-microB cables (using A host connector) */ static const struct usb_connector_t* usb_a_host_microb_connectors[] = { - &usb_host_a_connector, - &usb_device_microb_connector, + &usb_a_host_connector, + &usb_microb_device_connector, }; static const uint8_t usb_a_host_microb_power_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_host_a_pins[4], usb_device_microb_pins[5]}, // GND + {usb_a_host_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_host_pins[4], usb_microb_device_pins[5]}, // GND }; static const uint8_t usb_a_host_microb_usb2_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_microb_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_microb_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_microb_pins[5]}, // GND + {usb_a_host_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_microb_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_microb_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_microb_device_pins[5]}, // GND }; static const uint8_t usb_a_host_microb_usb2_shielded_pins[][2] = { - {usb_host_a_pins[0], usb_device_microb_pins[0]}, // shield - {usb_host_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_microb_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_microb_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_microb_pins[5]}, // GND + {usb_a_host_pins[0], usb_microb_device_pins[0]}, // shield + {usb_a_host_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_microb_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_microb_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_microb_device_pins[5]}, // GND }; static const uint8_t usb_a_host_microb_usb3_unshielded_pins[][2] = { - {usb_host_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_microb_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_microb_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_microb_pins[5]}, // GND - {usb_host_a_pins[5], usb_device_microb_pins[6]}, // SSRX-, SSTX- - {usb_host_a_pins[6], usb_device_microb_pins[7]}, // SSRX+, SSTX+ - {usb_host_a_pins[7], usb_device_microb_pins[8]}, // GND_DRAIN - {usb_host_a_pins[8], usb_device_microb_pins[9]}, // SSTX-, SSRX- - {usb_host_a_pins[9], usb_device_microb_pins[10]}, // SSTX+, SSRX+ + {usb_a_host_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_microb_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_microb_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_microb_device_pins[5]}, // GND + {usb_a_host_pins[5], usb_microb_device_pins[6]}, // SSRX-, SSTX- + {usb_a_host_pins[6], usb_microb_device_pins[7]}, // SSRX+, SSTX+ + {usb_a_host_pins[7], usb_microb_device_pins[8]}, // GND_DRAIN + {usb_a_host_pins[8], usb_microb_device_pins[9]}, // SSTX-, SSRX- + {usb_a_host_pins[9], usb_microb_device_pins[10]}, // SSTX+, SSRX+ }; static const uint8_t usb_a_host_microb_usb3_shielded_pins[][2] = { - {usb_host_a_pins[0], usb_device_microb_pins[0]}, // shield - {usb_host_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_host_a_pins[2], usb_device_microb_pins[2]}, // D- - {usb_host_a_pins[3], usb_device_microb_pins[3]}, // D+ - {usb_host_a_pins[4], usb_device_microb_pins[5]}, // GND - {usb_host_a_pins[5], usb_device_microb_pins[6]}, // SSRX-, SSTX- - {usb_host_a_pins[6], usb_device_microb_pins[7]}, // SSRX+, SSTX+ - {usb_host_a_pins[7], usb_device_microb_pins[8]}, // GND_DRAIN - {usb_host_a_pins[8], usb_device_microb_pins[9]}, // SSTX-, SSRX- - {usb_host_a_pins[9], usb_device_microb_pins[10]}, // SSTX+, SSRX+ + {usb_a_host_pins[0], usb_microb_device_pins[0]}, // shield + {usb_a_host_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_host_pins[2], usb_microb_device_pins[2]}, // D- + {usb_a_host_pins[3], usb_microb_device_pins[3]}, // D+ + {usb_a_host_pins[4], usb_microb_device_pins[5]}, // GND + {usb_a_host_pins[5], usb_microb_device_pins[6]}, // SSRX-, SSTX- + {usb_a_host_pins[6], usb_microb_device_pins[7]}, // SSRX+, SSTX+ + {usb_a_host_pins[7], usb_microb_device_pins[8]}, // GND_DRAIN + {usb_a_host_pins[8], usb_microb_device_pins[9]}, // SSTX-, SSRX- + {usb_a_host_pins[9], usb_microb_device_pins[10]}, // SSTX+, SSRX+ }; +/** list of connectors for A-microB cables (using A device connector) */ static const struct usb_connector_t* usb_a_device_microb_connectors[] = { - &usb_device_a_connector, - &usb_device_microb_connector, + &usb_a_device_connector, + &usb_microb_device_connector, }; static const uint8_t usb_a_device_microb_power_unshielded_pins[][2] = { - {usb_device_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_device_a_pins[4], usb_device_microb_pins[5]}, // GND + {usb_a_device_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_device_pins[4], usb_microb_device_pins[5]}, // GND }; static const uint8_t usb_a_device_microb_usb2_unshielded_pins[][2] = { - {usb_device_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_microb_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_microb_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_microb_pins[5]}, // GND + {usb_a_device_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_device_pins[2], usb_microb_device_pins[2]}, // D- + {usb_a_device_pins[3], usb_microb_device_pins[3]}, // D+ + {usb_a_device_pins[4], usb_microb_device_pins[5]}, // GND }; static const uint8_t usb_a_device_microb_usb2_shielded_pins[][2] = { - {usb_device_a_pins[0], usb_device_microb_pins[0]}, // shield - {usb_device_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_microb_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_microb_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_microb_pins[5]}, // GND + {usb_a_device_pins[0], usb_microb_device_pins[0]}, // shield + {usb_a_device_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_device_pins[2], usb_microb_device_pins[2]}, // D- + {usb_a_device_pins[3], usb_microb_device_pins[3]}, // D+ + {usb_a_device_pins[4], usb_microb_device_pins[5]}, // GND }; static const uint8_t usb_a_device_microb_usb3_unshielded_pins[][2] = { - {usb_device_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_microb_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_microb_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_microb_pins[5]}, // GND - {usb_device_a_pins[5], usb_device_microb_pins[6]}, // SSRX-, SSTX- - {usb_device_a_pins[6], usb_device_microb_pins[7]}, // SSRX+, SSTX+ - {usb_device_a_pins[7], usb_device_microb_pins[8]}, // GND_DRAIN - {usb_device_a_pins[8], usb_device_microb_pins[9]}, // SSTX-, SSRX- - {usb_device_a_pins[9], usb_device_microb_pins[10]}, // SSTX+, SSRX+ + {usb_a_device_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_device_pins[2], usb_microb_device_pins[2]}, // D- + {usb_a_device_pins[3], usb_microb_device_pins[3]}, // D+ + {usb_a_device_pins[4], usb_microb_device_pins[5]}, // GND + {usb_a_device_pins[5], usb_microb_device_pins[6]}, // SSRX-, SSTX- + {usb_a_device_pins[6], usb_microb_device_pins[7]}, // SSRX+, SSTX+ + {usb_a_device_pins[7], usb_microb_device_pins[8]}, // GND_DRAIN + {usb_a_device_pins[8], usb_microb_device_pins[9]}, // SSTX-, SSRX- + {usb_a_device_pins[9], usb_microb_device_pins[10]}, // SSTX+, SSRX+ }; static const uint8_t usb_a_device_microb_usb3_shielded_pins[][2] = { - {usb_device_a_pins[0], usb_device_microb_pins[0]}, // shield - {usb_device_a_pins[1], usb_device_microb_pins[1]}, // VBUS - {usb_device_a_pins[2], usb_device_microb_pins[2]}, // D- - {usb_device_a_pins[3], usb_device_microb_pins[3]}, // D+ - {usb_device_a_pins[4], usb_device_microb_pins[5]}, // GND - {usb_device_a_pins[5], usb_device_microb_pins[6]}, // SSRX-, SSTX- - {usb_device_a_pins[6], usb_device_microb_pins[7]}, // SSRX+, SSTX+ - {usb_device_a_pins[7], usb_device_microb_pins[8]}, // GND_DRAIN - {usb_device_a_pins[8], usb_device_microb_pins[9]}, // SSTX-, SSRX- - {usb_device_a_pins[9], usb_device_microb_pins[10]}, // SSTX+, SSRX+ + {usb_a_device_pins[0], usb_microb_device_pins[0]}, // shield + {usb_a_device_pins[1], usb_microb_device_pins[1]}, // VBUS + {usb_a_device_pins[2], usb_microb_device_pins[2]}, // D- + {usb_a_device_pins[3], usb_microb_device_pins[3]}, // D+ + {usb_a_device_pins[4], usb_microb_device_pins[5]}, // GND + {usb_a_device_pins[5], usb_microb_device_pins[6]}, // SSRX-, SSTX- + {usb_a_device_pins[6], usb_microb_device_pins[7]}, // SSRX+, SSTX+ + {usb_a_device_pins[7], usb_microb_device_pins[8]}, // GND_DRAIN + {usb_a_device_pins[8], usb_microb_device_pins[9]}, // SSTX-, SSRX- + {usb_a_device_pins[9], usb_microb_device_pins[10]}, // SSTX+, SSRX+ }; +/** list of connectors for C shunts (using C host connector) */ static const struct usb_connector_t* usb_c_host_connectors[] = { - &usb_host_c_connector, + &usb_c_host_connector, }; -static const uint8_t usb_c_host_shunt_pins[][2] = { - {usb_host_c_pins[1], usb_host_c_pins[12 + 12]}, // A1 GND, B12 GND - {usb_host_c_pins[2], usb_host_c_pins[12 + 11]}, // A2 SSTXp1, B11 SSRXp1 - {usb_host_c_pins[3], usb_host_c_pins[12 + 10]}, // A3 SSTXn1, B10 SSRXn1 - {usb_host_c_pins[4], usb_host_c_pins[12 + 9]}, // A4 VBUS, B9 VBUS - {usb_host_c_pins[5], usb_host_c_pins[12 + 8]}, // A5 CC1, B8 SBU2 - {usb_host_c_pins[6], usb_host_c_pins[12 + 7]}, // A6 Dp1, B7 Dn2 - {usb_host_c_pins[7], usb_host_c_pins[12 + 6]}, // A7 Dn1, B6 Dp2 - {usb_host_c_pins[8], usb_host_c_pins[12 + 5]}, // A8 SBU1, B5 CC2 - {usb_host_c_pins[9], usb_host_c_pins[12 + 4]}, // A9 VBUS, B4 VBUS - {usb_host_c_pins[10], usb_host_c_pins[12 + 3]}, // A10 SSRXn2, B3 SSTXn2 - {usb_host_c_pins[11], usb_host_c_pins[12 + 2]}, // A11 SSRXp2, B2 SSTXp2 - {usb_host_c_pins[12], usb_host_c_pins[12 + 1]}, // A12 GND, B1 GND +/** this is not a cable, but a shunt shorting opposite signal to test the connector */ +static const uint8_t usb__c_host__shunt_template_pins[][2] = { + {usb_c_host_sidea_pins[1], usb_c_host_sideb_pins[12]}, // A1 GND, B12 GND + {usb_c_host_sidea_pins[2], usb_c_host_sideb_pins[11]}, // A2 SSTXp1, B11 SSRXp1 + {usb_c_host_sidea_pins[3], usb_c_host_sideb_pins[10]}, // A3 SSTXn1, B10 SSRXn1 + {usb_c_host_sidea_pins[4], usb_c_host_sideb_pins[9]}, // A4 VBUS, B9 VBUS + {usb_c_host_sidea_pins[5], usb_c_host_sideb_pins[8]}, // A5 CC1, B8 SBU2 + {usb_c_host_sidea_pins[6], usb_c_host_sideb_pins[7]}, // A6 Dp1, B7 Dn2 + {usb_c_host_sidea_pins[7], usb_c_host_sideb_pins[6]}, // A7 Dn1, B6 Dp2 + {usb_c_host_sidea_pins[8], usb_c_host_sideb_pins[5]}, // A8 SBU1, B5 CC2 + {usb_c_host_sidea_pins[9], usb_c_host_sideb_pins[4]}, // A9 VBUS, B4 VBUS + {usb_c_host_sidea_pins[10], usb_c_host_sideb_pins[3]}, // A10 SSRXn2, B3 SSTXn2 + {usb_c_host_sidea_pins[11], usb_c_host_sideb_pins[2]}, // A11 SSRXp2, B2 SSTXp2 + {usb_c_host_sidea_pins[12], usb_c_host_sideb_pins[1]}, // A12 GND, B1 GND }; +/** list of connectors for C shunts (using C device connector) */ static const struct usb_connector_t* usb_c_device_connectors[] = { &usb_device_c_connector, }; -static const uint8_t usb_c_device_shunt_pins[][2] = { - {usb_device_c_pins[1], usb_device_c_pins[12 + 12]}, // A1 GND, B12 GND - {usb_device_c_pins[2], usb_device_c_pins[12 + 11]}, // A2 SSTXp1, B11 SSRXp1 - {usb_device_c_pins[3], usb_device_c_pins[12 + 10]}, // A3 SSTXn1, B10 SSRXn1 - {usb_device_c_pins[4], usb_device_c_pins[12 + 9]}, // A4 VBUS, B9 VBUS - {usb_device_c_pins[5], usb_device_c_pins[12 + 8]}, // A5 CC1, B8 SBU2 - {usb_device_c_pins[6], usb_device_c_pins[12 + 7]}, // A6 Dp1, B7 Dn2 - {usb_device_c_pins[7], usb_device_c_pins[12 + 6]}, // A7 Dn1, B6 Dp2 - {usb_device_c_pins[8], usb_device_c_pins[12 + 5]}, // A8 SBU1, B5 CC2 - {usb_device_c_pins[9], usb_device_c_pins[12 + 4]}, // A9 VBUS, B4 VBUS - {usb_device_c_pins[10], usb_device_c_pins[12 + 3]}, // A10 SSRXn2, B3 SSTXn2 - {usb_device_c_pins[11], usb_device_c_pins[12 + 2]}, // A11 SSRXp2, B2 SSTXp2 - {usb_device_c_pins[12], usb_device_c_pins[12 + 1]}, // A12 GND, B1 GND +/** this is not a cable, but a shunt shorting opposite signal to test the connector */ +/* +static const uint8_t usb__c_device__shunt_generated_pins[][2] = { }; +*/ +/** list of connectors for A-C cables (using A device connector and C host connector) */ static const struct usb_connector_t* usb_a_host_c_host_connectors[] = { - &usb_host_a_connector, - &usb_host_c_connector, + &usb_a_host_connector, + &usb_c_host_connector, }; -static const uint8_t usb_a_host_c_host_power_sidea_pins[][2] = { +/** connected pin pairs for A-C power only cable + * @implements this cable is not specified since it does not carry USB signals + * @note for C host connector, side A + */ +static const uint8_t usb__a_host__c_host_sidea__power_pins[][2] = { // C internal connections - {usb_host_c_pins[0], usb_host_c_pins[1]}, // shield, A1 GND - {usb_host_c_pins[0], usb_host_c_pins[12]}, // shield, A12 GND - {usb_host_c_pins[0], usb_host_c_pins[12 + 12]}, // shield, B12 GND - {usb_host_c_pins[0], usb_host_c_pins[12 + 1]}, // shield, B1 GND - {usb_host_c_pins[1], usb_host_c_pins[12]}, // A1 GND, A12 GND - {usb_host_c_pins[1], usb_host_c_pins[12 + 12]}, // A1 GND, B12 GND - {usb_host_c_pins[1], usb_host_c_pins[12 + 1]}, // A1 GND, B1 GND - {usb_host_c_pins[12], usb_host_c_pins[12 + 12]}, // A12 GND, B12 GND - {usb_host_c_pins[12], usb_host_c_pins[12 + 1]}, // A12 GND, B1 GND - {usb_host_c_pins[12 + 1], usb_host_c_pins[12 + 12]}, // B1 GND, B12 GND - {usb_host_c_pins[4], usb_host_c_pins[9]}, // A4 VBUS, A9 VBUS - {usb_host_c_pins[4], usb_host_c_pins[12 + 9]}, // A4 VBUS, B9 VBUS - {usb_host_c_pins[4], usb_host_c_pins[12 + 4]}, // A4 VBUS, B4 VBUS - {usb_host_c_pins[9], usb_host_c_pins[12 + 9]}, // A9 VBUS, B9 VBUS - {usb_host_c_pins[9], usb_host_c_pins[12 + 4]}, // A9 VBUS, B4 VBUS - {usb_host_c_pins[12 + 9], usb_host_c_pins[12 + 4]}, // B9 VBUS, B4 VBUS - {usb_host_c_pins[5], usb_host_c_pins[4]}, // CC1, A4 VBUS (56kO) - {usb_host_c_pins[5], usb_host_c_pins[9]}, // CC1, A9 VBUS (56kO) - {usb_host_c_pins[5], usb_host_c_pins[16]}, // CC1, B9 VBUS (56kO) - {usb_host_c_pins[5], usb_host_c_pins[21]}, // CC1, B4 VBUS (56kO) + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12]}, // A1 GND, A12 GND + {usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12 + 12]}, // A1 GND, B12 GND + {usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12 + 1]}, // A1 GND, B1 GND + {usb_c_host_sidea_pins[12], usb_c_host_sidea_pins[12 + 12]}, // A12 GND, B12 GND + {usb_c_host_sidea_pins[12], usb_c_host_sidea_pins[12 + 1]}, // A12 GND, B1 GND + {usb_c_host_sidea_pins[12 + 1], usb_c_host_sidea_pins[12 + 12]}, // B1 GND, B12 GND + {usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[9]}, // A4 VBUS, A9 VBUS + {usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS + {usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS + {usb_c_host_sidea_pins[9], usb_c_host_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS + {usb_c_host_sidea_pins[9], usb_c_host_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS + {usb_c_host_sidea_pins[12 + 9], usb_c_host_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[4]}, // CC1, A4 VBUS (56kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[9]}, // CC1, A9 VBUS (56kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[16]}, // CC1, B9 VBUS (56kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[21]}, // CC1, B4 VBUS (56kO) // A-C connections - {usb_host_a_pins[1], usb_host_c_pins[4]}, // VBUS, A4 VBUS - {usb_host_a_pins[1], usb_host_c_pins[9]}, // VBUS, A9 VBUS - {usb_host_a_pins[1], usb_host_c_pins[12 + 9]}, // VBUS, B9 VBUS - {usb_host_a_pins[1], usb_host_c_pins[12 + 4]}, // VBUS, B4 VBUS - {usb_host_a_pins[4], usb_host_c_pins[0]}, // GND, shield - {usb_host_a_pins[4], usb_host_c_pins[1]}, // GND, A1 GND - {usb_host_a_pins[4], usb_host_c_pins[12]}, // GND, A12 GND - {usb_host_a_pins[4], usb_host_c_pins[12 + 12]}, // GND, B12 GND - {usb_host_a_pins[4], usb_host_c_pins[12 + 1]}, // GND, B1 GND - {usb_host_a_pins[1], usb_host_c_pins[5]}, // VBUS - A5 CC1 (56kO) + {usb_a_host_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS + {usb_a_host_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS + {usb_a_host_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_host_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_host_pins[4], usb_c_host_sidea_pins[0]}, // GND, shield + {usb_a_host_pins[4], usb_c_host_sidea_pins[1]}, // GND, A1 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[12]}, // GND, A12 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND + {usb_a_host_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (56kO) }; -static const uint8_t usb_a_host_c_host_power_sideb_pins[][2] = { - // C internal connections - {usb_host_c_pins[0], usb_host_c_pins[1]}, // shield, A1 GND - {usb_host_c_pins[0], usb_host_c_pins[12]}, // shield, A12 GND - {usb_host_c_pins[0], usb_host_c_pins[12 + 12]}, // shield, B12 GND - {usb_host_c_pins[0], usb_host_c_pins[12 + 1]}, // shield, B1 GND - {usb_host_c_pins[1], usb_host_c_pins[12]}, // A1 GND, A12 GND - {usb_host_c_pins[1], usb_host_c_pins[12 + 12]}, // A1 GND, B12 GND - {usb_host_c_pins[1], usb_host_c_pins[12 + 1]}, // A1 GND, B1 GND - {usb_host_c_pins[12], usb_host_c_pins[12 + 12]}, // A12 GND, B12 GND - {usb_host_c_pins[12], usb_host_c_pins[12 + 1]}, // A12 GND, B1 GND - {usb_host_c_pins[12 + 1], usb_host_c_pins[12 + 12]}, // B1 GND, B12 GND - {usb_host_c_pins[4], usb_host_c_pins[9]}, // A4 VBUS, A9 VBUS - {usb_host_c_pins[4], usb_host_c_pins[12 + 9]}, // A4 VBUS, B9 VBUS - {usb_host_c_pins[4], usb_host_c_pins[12 + 4]}, // A4 VBUS, B4 VBUS - {usb_host_c_pins[9], usb_host_c_pins[12 + 9]}, // A9 VBUS, B9 VBUS - {usb_host_c_pins[9], usb_host_c_pins[12 + 4]}, // A9 VBUS, B4 VBUS - {usb_host_c_pins[12 + 9], usb_host_c_pins[12 + 4]}, // B9 VBUS, B4 VBUS - {usb_host_c_pins[12 + 5], usb_host_c_pins[4]}, // CC2, A4 VBUS (56kO) - {usb_host_c_pins[12 + 5], usb_host_c_pins[9]}, // CC2, A9 VBUS (56kO) - {usb_host_c_pins[12 + 5], usb_host_c_pins[16]}, // CC2, B9 VBUS (56kO) - {usb_host_c_pins[12 + 5], usb_host_c_pins[21]}, // CC2, B4 VBUS (56kO) - // A-C connections - {usb_host_a_pins[1], usb_host_c_pins[4]}, // VBUS, A4 VBUS - {usb_host_a_pins[1], usb_host_c_pins[9]}, // VBUS, A9 VBUS - {usb_host_a_pins[1], usb_host_c_pins[12 + 9]}, // VBUS, B9 VBUS - {usb_host_a_pins[1], usb_host_c_pins[12 + 4]}, // VBUS, B4 VBUS - {usb_host_a_pins[4], usb_host_c_pins[0]}, // GND, shield - {usb_host_a_pins[4], usb_host_c_pins[1]}, // GND, A1 GND - {usb_host_a_pins[4], usb_host_c_pins[12]}, // GND, A12 GND - {usb_host_a_pins[4], usb_host_c_pins[12 + 12]}, // GND, B12 GND - {usb_host_a_pins[4], usb_host_c_pins[12 + 1]}, // GND, B1 GND - {usb_host_a_pins[1], usb_host_c_pins[12 + 5]}, // VBUS - A5 CC2 (56kO) -}; - -static const uint8_t usb_a_host_c_host_ac23_sidea_pins[][2] = { +/** connected pin pairs for A-C USB 2.0 cable + * @implements AC2-3 from USB Type-C Cable and Connector Specification + * @note for C host connector, side A + */ +static const uint8_t usb__a_host__c_host_sidea__ac2_pins[][2] = { // A internal connections - {usb_host_a_pins[0], usb_host_a_pins[4]}, // shield, GND + {usb_a_host_pins[0], usb_a_host_pins[4]}, // shield, GND // C internal connections - {usb_host_c_pins[0], usb_host_c_pins[1]}, // shield, A1 GND - {usb_host_c_pins[0], usb_host_c_pins[12]}, // shield, A12 GND - {usb_host_c_pins[0], usb_host_c_pins[12 + 12]}, // shield, B12 GND - {usb_host_c_pins[0], usb_host_c_pins[12 + 1]}, // shield, B1 GND - {usb_host_c_pins[1], usb_host_c_pins[12]}, // A1 GND, A12 GND - {usb_host_c_pins[1], usb_host_c_pins[12 + 12]}, // A1 GND, B12 GND - {usb_host_c_pins[1], usb_host_c_pins[12 + 1]}, // A1 GND, B1 GND - {usb_host_c_pins[12], usb_host_c_pins[12 + 12]}, // A12 GND, B12 GND - {usb_host_c_pins[12], usb_host_c_pins[12 + 1]}, // A12 GND, B1 GND - {usb_host_c_pins[12 + 1], usb_host_c_pins[12 + 12]}, // B1 GND, B12 GND - {usb_host_c_pins[4], usb_host_c_pins[9]}, // A4 VBUS, A9 VBUS - {usb_host_c_pins[4], usb_host_c_pins[12 + 9]}, // A4 VBUS, B9 VBUS - {usb_host_c_pins[4], usb_host_c_pins[12 + 4]}, // A4 VBUS, B4 VBUS - {usb_host_c_pins[9], usb_host_c_pins[12 + 9]}, // A9 VBUS, B9 VBUS - {usb_host_c_pins[9], usb_host_c_pins[12 + 4]}, // A9 VBUS, B4 VBUS - {usb_host_c_pins[12 + 9], usb_host_c_pins[12 + 4]}, // B9 VBUS, B4 VBUS - {usb_host_c_pins[5], usb_host_c_pins[4]}, // CC1, A4 VBUS (56kO) - {usb_host_c_pins[5], usb_host_c_pins[9]}, // CC1, A9 VBUS (56kO) - {usb_host_c_pins[5], usb_host_c_pins[16]}, // CC1, B9 VBUS (56kO) - {usb_host_c_pins[5], usb_host_c_pins[21]}, // CC1, B4 VBUS (56kO) + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12]}, // A1 GND, A12 GND + {usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12 + 12]}, // A1 GND, B12 GND + {usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12 + 1]}, // A1 GND, B1 GND + {usb_c_host_sidea_pins[12], usb_c_host_sidea_pins[12 + 12]}, // A12 GND, B12 GND + {usb_c_host_sidea_pins[12], usb_c_host_sidea_pins[12 + 1]}, // A12 GND, B1 GND + {usb_c_host_sidea_pins[12 + 1], usb_c_host_sidea_pins[12 + 12]}, // B1 GND, B12 GND + {usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[9]}, // A4 VBUS, A9 VBUS + {usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS + {usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS + {usb_c_host_sidea_pins[9], usb_c_host_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS + {usb_c_host_sidea_pins[9], usb_c_host_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS + {usb_c_host_sidea_pins[12 + 9], usb_c_host_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[4]}, // CC1, A4 VBUS (56kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[9]}, // CC1, A9 VBUS (56kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[16]}, // CC1, B9 VBUS (56kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[21]}, // CC1, B4 VBUS (56kO) // A-C connections - {usb_host_a_pins[1], usb_host_c_pins[4]}, // VBUS, A4 VBUS - {usb_host_a_pins[1], usb_host_c_pins[9]}, // VBUS, A9 VBUS - {usb_host_a_pins[1], usb_host_c_pins[12 + 9]}, // VBUS, B9 VBUS - {usb_host_a_pins[1], usb_host_c_pins[12 + 4]}, // VBUS, B4 VBUS - {usb_host_a_pins[0], usb_host_c_pins[0]}, // shield, shield - {usb_host_a_pins[0], usb_host_c_pins[1]}, // shield, A1 GND - {usb_host_a_pins[0], usb_host_c_pins[12]}, // shield, A12 GND - {usb_host_a_pins[0], usb_host_c_pins[12 + 12]}, // shield, B12 GND - {usb_host_a_pins[0], usb_host_c_pins[12 + 1]}, // shield, B1 GND - {usb_host_a_pins[4], usb_host_c_pins[0]}, // GND, shield - {usb_host_a_pins[4], usb_host_c_pins[1]}, // GND, A1 GND - {usb_host_a_pins[4], usb_host_c_pins[12]}, // GND, A12 GND - {usb_host_a_pins[4], usb_host_c_pins[12 + 12]}, // GND, B12 GND - {usb_host_a_pins[4], usb_host_c_pins[12 + 1]}, // GND, B1 GND - {usb_host_a_pins[2], usb_host_c_pins[7]}, // D-, A7 Dn1 - {usb_host_a_pins[3], usb_host_c_pins[6]}, // D+, A6 Dp1 - {usb_host_a_pins[1], usb_host_c_pins[5]}, // VBUS - A5 CC1 (56kO) + {usb_a_host_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS + {usb_a_host_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS + {usb_a_host_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_host_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_host_pins[0], usb_c_host_sidea_pins[0]}, // shield, shield + {usb_a_host_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND + {usb_a_host_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND + {usb_a_host_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_a_host_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[0]}, // GND, shield + {usb_a_host_pins[4], usb_c_host_sidea_pins[1]}, // GND, A1 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[12]}, // GND, A12 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND + {usb_a_host_pins[2], usb_c_host_sidea_pins[7]}, // D-, A7 Dn1 + {usb_a_host_pins[3], usb_c_host_sidea_pins[6]}, // D+, A6 Dp1 + {usb_a_host_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (56kO) }; -static const uint8_t usb_a_host_c_host_ac23_sideb_pins[][2] = { +/** connected pin pairs for A-C USB 3.1 Gen 2 cable + * @implements AC3G2-3 from USB Type-C Cable and Connector Specification + * @note for C host connector, side A + */ +static const uint8_t usb__a_host__c_host_sidea__ac3g2_pins[][2] = { // A internal connections - {usb_host_a_pins[0], usb_host_a_pins[4]}, // shield, GND + {usb_a_host_pins[0], usb_a_host_pins[4]}, // shield, GND + {usb_a_host_pins[0], usb_a_host_pins[7]}, // shield, GND_DRAIN + {usb_a_host_pins[4], usb_a_host_pins[7]}, // GND, GND_DRAIN // C internal connections - {usb_host_c_pins[0], usb_host_c_pins[1]}, // shield, A1 GND - {usb_host_c_pins[0], usb_host_c_pins[12]}, // shield, A12 GND - {usb_host_c_pins[0], usb_host_c_pins[12 + 12]}, // shield, B12 GND - {usb_host_c_pins[0], usb_host_c_pins[12 + 1]}, // shield, B1 GND - {usb_host_c_pins[1], usb_host_c_pins[12]}, // A1 GND, A12 GND - {usb_host_c_pins[1], usb_host_c_pins[12 + 12]}, // A1 GND, B12 GND - {usb_host_c_pins[1], usb_host_c_pins[12 + 1]}, // A1 GND, B1 GND - {usb_host_c_pins[12], usb_host_c_pins[12 + 12]}, // A12 GND, B12 GND - {usb_host_c_pins[12], usb_host_c_pins[12 + 1]}, // A12 GND, B1 GND - {usb_host_c_pins[12 + 1], usb_host_c_pins[12 + 12]}, // B1 GND, B12 GND - {usb_host_c_pins[4], usb_host_c_pins[9]}, // A4 VBUS, A9 VBUS - {usb_host_c_pins[4], usb_host_c_pins[12 + 9]}, // A4 VBUS, B9 VBUS - {usb_host_c_pins[4], usb_host_c_pins[12 + 4]}, // A4 VBUS, B4 VBUS - {usb_host_c_pins[9], usb_host_c_pins[12 + 9]}, // A9 VBUS, B9 VBUS - {usb_host_c_pins[9], usb_host_c_pins[12 + 4]}, // A9 VBUS, B4 VBUS - {usb_host_c_pins[12 + 9], usb_host_c_pins[12 + 4]}, // B9 VBUS, B4 VBUS - {usb_host_c_pins[12 + 5], usb_host_c_pins[4]}, // CC2, A4 VBUS (56kO) - {usb_host_c_pins[12 + 5], usb_host_c_pins[9]}, // CC2, A9 VBUS (56kO) - {usb_host_c_pins[12 + 5], usb_host_c_pins[16]}, // CC2, B9 VBUS (56kO) - {usb_host_c_pins[12 + 5], usb_host_c_pins[21]}, // CC2, B4 VBUS (56kO) + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_c_host_sidea_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12]}, // A1 GND, A12 GND + {usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12 + 12]}, // A1 GND, B12 GND + {usb_c_host_sidea_pins[1], usb_c_host_sidea_pins[12 + 1]}, // A1 GND, B1 GND + {usb_c_host_sidea_pins[12], usb_c_host_sidea_pins[12 + 12]}, // A12 GND, B12 GND + {usb_c_host_sidea_pins[12], usb_c_host_sidea_pins[12 + 1]}, // A12 GND, B1 GND + {usb_c_host_sidea_pins[12 + 1], usb_c_host_sidea_pins[12 + 12]}, // B1 GND, B12 GND + {usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[9]}, // A4 VBUS, A9 VBUS + {usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS + {usb_c_host_sidea_pins[4], usb_c_host_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS + {usb_c_host_sidea_pins[9], usb_c_host_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS + {usb_c_host_sidea_pins[9], usb_c_host_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS + {usb_c_host_sidea_pins[12 + 9], usb_c_host_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[4]}, // CC1, A4 VBUS (56kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[9]}, // CC1, A9 VBUS (56kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[16]}, // CC1, B9 VBUS (56kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[21]}, // CC1, B4 VBUS (56kO) // A-C connections - {usb_host_a_pins[1], usb_host_c_pins[4]}, // VBUS, A4 VBUS - {usb_host_a_pins[1], usb_host_c_pins[9]}, // VBUS, A9 VBUS - {usb_host_a_pins[1], usb_host_c_pins[12 + 9]}, // VBUS, B9 VBUS - {usb_host_a_pins[1], usb_host_c_pins[12 + 4]}, // VBUS, B4 VBUS - {usb_host_a_pins[0], usb_host_c_pins[0]}, // shield, shield - {usb_host_a_pins[0], usb_host_c_pins[1]}, // shield, A1 GND - {usb_host_a_pins[0], usb_host_c_pins[12]}, // shield, A12 GND - {usb_host_a_pins[0], usb_host_c_pins[12 + 12]}, // shield, B12 GND - {usb_host_a_pins[0], usb_host_c_pins[12 + 1]}, // shield, B1 GND - {usb_host_a_pins[4], usb_host_c_pins[0]}, // GND, shield - {usb_host_a_pins[4], usb_host_c_pins[1]}, // GND, A1 GND - {usb_host_a_pins[4], usb_host_c_pins[12]}, // GND, A12 GND - {usb_host_a_pins[4], usb_host_c_pins[12 + 12]}, // GND, B12 GND - {usb_host_a_pins[4], usb_host_c_pins[12 + 1]}, // GND, B1 GND - {usb_host_a_pins[2], usb_host_c_pins[12 + 7]}, // D-, B7 Dn2 - {usb_host_a_pins[3], usb_host_c_pins[12 + 6]}, // D+, B6 Dp2 - {usb_host_a_pins[1], usb_host_c_pins[12 + 5]}, // VBUS - B5 CC2 (56kO) + {usb_a_host_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS + {usb_a_host_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS + {usb_a_host_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_host_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_host_pins[0], usb_c_host_sidea_pins[0]}, // shield, shield + {usb_a_host_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND + {usb_a_host_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND + {usb_a_host_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_a_host_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[0]}, // GND, shield + {usb_a_host_pins[4], usb_c_host_sidea_pins[1]}, // GND, A1 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[12]}, // GND, A12 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND + {usb_a_host_pins[4], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND + {usb_a_host_pins[7], usb_c_host_sidea_pins[0]}, // GND_DRAIN, shield + {usb_a_host_pins[7], usb_c_host_sidea_pins[1]}, // GND_DRAIN, A1 GND + {usb_a_host_pins[7], usb_c_host_sidea_pins[12]}, // GND_DARIN, A12 GND + {usb_a_host_pins[7], usb_c_host_sidea_pins[12 + 12]}, // GND_DRAIN, B12 GND + {usb_a_host_pins[7], usb_c_host_sidea_pins[12 + 1]}, // GND_DRAIN, B1 GND + {usb_a_host_pins[2], usb_c_host_sidea_pins[7]}, // D-, A7 Dn1 + {usb_a_host_pins[3], usb_c_host_sidea_pins[6]}, // D+, A6 Dp1 + {usb_a_host_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (56kO) }; const struct usb_cable_t usb_cables[] = { @@ -1279,106 +1236,64 @@ const struct usb_cable_t usb_cables[] = { .name = "A-A power only", .connectors_nb = LENGTH(usb_a_a_connectors), .connectors = usb_a_a_connectors, - .pin_pairs_nb = LENGTH(usb_a_a_power_unshielded_pins), - .pin_pairs = usb_a_a_power_unshielded_pins, + .pin_pairs_nb = LENGTH(usb_aapower_pins), + .pin_pairs = usb_aapower_pins, }, { - .name = "A-A 2.0 unshielded", + .name = "A-A USB 2.0", .connectors_nb = LENGTH(usb_a_a_connectors), .connectors = usb_a_a_connectors, - .pin_pairs_nb = LENGTH(usb_a_a_usb2_unshielded_pins), - .pin_pairs = usb_a_a_usb2_unshielded_pins, + .pin_pairs_nb = LENGTH(usb_aausb2_pins), + .pin_pairs = usb_aausb2_pins, }, { - .name = "A-A 2.0 shielded", + .name = "A-A USB 3.x", .connectors_nb = LENGTH(usb_a_a_connectors), .connectors = usb_a_a_connectors, - .pin_pairs_nb = LENGTH(usb_a_a_usb2_shielded_pins), - .pin_pairs = usb_a_a_usb2_shielded_pins, - }, - { - .name = "A-A 3.0 unshielded", - .connectors_nb = LENGTH(usb_a_a_connectors), - .connectors = usb_a_a_connectors, - .pin_pairs_nb = LENGTH(usb_a_a_usb3_unshielded_pins), - .pin_pairs = usb_a_a_usb3_unshielded_pins, - }, - { - .name = "A-A 3.0 shielded", - .connectors_nb = LENGTH(usb_a_a_connectors), - .connectors = usb_a_a_connectors, - .pin_pairs_nb = LENGTH(usb_a_a_usb3_shielded_pins), - .pin_pairs = usb_a_a_usb3_shielded_pins, + .pin_pairs_nb = LENGTH(usb_aausb3_pins), + .pin_pairs = usb_aausb3_pins, }, { .name = "A-B power only", .connectors_nb = LENGTH(usb_a_host_b_connectors), .connectors = usb_a_host_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_host_b_power_unshielded_pins), - .pin_pairs = usb_a_host_b_power_unshielded_pins, + .pin_pairs_nb = LENGTH(usb__a_host__b__abpower_pins), + .pin_pairs = usb__a_host__b__abpower_pins, }, { - .name = "A-B 2.0 unshielded", + .name = "A-B USB 2.0", .connectors_nb = LENGTH(usb_a_host_b_connectors), .connectors = usb_a_host_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_host_b_usb2_unshielded_pins), - .pin_pairs = usb_a_host_b_usb2_unshielded_pins, + .pin_pairs_nb = LENGTH(usb__a_host__b__abusb2_pins), + .pin_pairs = usb__a_host__b__abusb2_pins, }, { - .name = "A-B 2.0 shielded", + .name = "A-B USB 3.x", .connectors_nb = LENGTH(usb_a_host_b_connectors), .connectors = usb_a_host_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_host_b_usb2_shielded_pins), - .pin_pairs = usb_a_host_b_usb2_shielded_pins, - }, - { - .name = "A-B 3.0 unshielded", - .connectors_nb = LENGTH(usb_a_host_b_connectors), - .connectors = usb_a_host_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_host_b_usb3_unshielded_pins), - .pin_pairs = usb_a_host_b_usb3_unshielded_pins, - }, - { - .name = "A-B 3.0 shielded", - .connectors_nb = LENGTH(usb_a_host_b_connectors), - .connectors = usb_a_host_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_host_b_usb3_shielded_pins), - .pin_pairs = usb_a_host_b_usb3_shielded_pins, + .pin_pairs_nb = LENGTH(usb__a_host__b__abusb3_pins), + .pin_pairs = usb__a_host__b__abusb3_pins, }, { .name = "A-B power only", - .connectors_nb = LENGTH(usb_a_device_b_connectors), + .connectors_nb = LENGTH(usb_a_host_b_connectors), .connectors = usb_a_device_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_device_b_power_unshielded_pins), - .pin_pairs = usb_a_device_b_power_unshielded_pins, + .pin_pairs_nb = LENGTH(usb__a_device__b__abpower_pins), + .pin_pairs = usb__a_device__b__abpower_pins, }, { - .name = "A-B 2.0 unshielded", - .connectors_nb = LENGTH(usb_a_device_b_connectors), + .name = "A-B USB 2.0", + .connectors_nb = LENGTH(usb_a_host_b_connectors), .connectors = usb_a_device_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_device_b_usb2_unshielded_pins), - .pin_pairs = usb_a_device_b_usb2_unshielded_pins, + .pin_pairs_nb = LENGTH(usb__a_device__b__abusb2_pins), + .pin_pairs = usb__a_device__b__abusb2_pins, }, { - .name = "A-B 2.0 shielded", - .connectors_nb = LENGTH(usb_a_device_b_connectors), + .name = "A-B USB 3.x", + .connectors_nb = LENGTH(usb_a_host_b_connectors), .connectors = usb_a_device_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_device_b_usb2_shielded_pins), - .pin_pairs = usb_a_device_b_usb2_shielded_pins, - }, - { - .name = "A-B 3.0 unshielded", - .connectors_nb = LENGTH(usb_a_device_b_connectors), - .connectors = usb_a_device_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_device_b_usb3_unshielded_pins), - .pin_pairs = usb_a_device_b_usb3_unshielded_pins, - }, - { - .name = "A-B 3.0 shielded", - .connectors_nb = LENGTH(usb_a_device_b_connectors), - .connectors = usb_a_device_b_connectors, - .pin_pairs_nb = LENGTH(usb_a_device_b_usb3_shielded_pins), - .pin_pairs = usb_a_device_b_usb3_shielded_pins, + .pin_pairs_nb = LENGTH(usb__a_device__b__abusb3_pins), + .pin_pairs = usb__a_device__b__abusb3_pins, }, { .name = "A-miniB power only", @@ -1496,9 +1411,10 @@ const struct usb_cable_t usb_cables[] = { .name = "C shunt", .connectors_nb = LENGTH(usb_c_host_connectors), .connectors = usb_c_host_connectors, - .pin_pairs_nb = LENGTH(usb_c_host_shunt_pins), - .pin_pairs = usb_c_host_shunt_pins, + .pin_pairs_nb = LENGTH(usb__c_host__shunt_template_pins), + .pin_pairs = usb__c_host__shunt_template_pins, }, +/* { .name = "C shunt", .connectors_nb = LENGTH(usb_c_device_connectors), @@ -1506,33 +1422,27 @@ const struct usb_cable_t usb_cables[] = { .pin_pairs_nb = LENGTH(usb_c_device_shunt_pins), .pin_pairs = usb_c_device_shunt_pins, }, +*/ { .name = "C power only", .connectors_nb = LENGTH(usb_c_device_connectors), .connectors = usb_c_device_connectors, - .pin_pairs_nb = LENGTH(usb_a_host_c_host_power_sidea_pins), - .pin_pairs = usb_a_host_c_host_power_sidea_pins, - }, - { - .name = "C power only", - .connectors_nb = LENGTH(usb_c_device_connectors), - .connectors = usb_c_device_connectors, - .pin_pairs_nb = LENGTH(usb_a_host_c_host_power_sideb_pins), - .pin_pairs = usb_a_host_c_host_power_sideb_pins, + .pin_pairs_nb = LENGTH(usb__a_host__c_host_sidea__power_pins), + .pin_pairs = usb__a_host__c_host_sidea__power_pins, }, { .name = "A-C 2.0", .connectors_nb = LENGTH(usb_a_host_c_host_connectors), .connectors = usb_a_host_c_host_connectors, - .pin_pairs_nb = LENGTH(usb_a_host_c_host_ac23_sidea_pins), - .pin_pairs = usb_a_host_c_host_ac23_sidea_pins, + .pin_pairs_nb = LENGTH(usb__a_host__c_host_sidea__ac2_pins), + .pin_pairs = usb__a_host__c_host_sidea__ac2_pins, }, { - .name = "A-C 2.0", + .name = "A-C 3.1 Gen 2", .connectors_nb = LENGTH(usb_a_host_c_host_connectors), .connectors = usb_a_host_c_host_connectors, - .pin_pairs_nb = LENGTH(usb_a_host_c_host_ac23_sideb_pins), - .pin_pairs = usb_a_host_c_host_ac23_sideb_pins, + .pin_pairs_nb = LENGTH(usb__a_host__c_host_sidea__ac3g2_pins), + .pin_pairs = usb__a_host__c_host_sidea__ac3g2_pins, }, };