From 34f24a5ce36b8f9eaada77d84dd03c830035c091 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Wed, 11 Dec 2019 22:10:55 +0100 Subject: [PATCH] usb_cables: add ac3g2 variants --- usb_cables.c | 435 +++++++++++++++++++++++++++++++++++++++++++++++++++ usb_cables.h | 2 +- 2 files changed, 436 insertions(+), 1 deletion(-) diff --git a/usb_cables.c b/usb_cables.c index 89e6133..6765a0f 100644 --- a/usb_cables.c +++ b/usb_cables.c @@ -1767,6 +1767,392 @@ static const uint8_t usb__a_host__c_host_sidea__ac3g2_pins[][2] = { {usb_a_host_pins[5], usb_c_host_sidea_pins[12 + 10]}, // SSTX-, B10 SSRXn1 }; +static const uint8_t usb__a_host__c_host_sideb__ac3g2_pins[][2] = { + // A internal connections + {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_c_host_sideb_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND + {usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND + {usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND + {usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND + {usb_c_host_sideb_pins[1], usb_c_host_sideb_pins[12]}, // A1 GND, A12 GND + {usb_c_host_sideb_pins[1], usb_c_host_sideb_pins[12 + 12]}, // A1 GND, B12 GND + {usb_c_host_sideb_pins[1], usb_c_host_sideb_pins[12 + 1]}, // A1 GND, B1 GND + {usb_c_host_sideb_pins[12], usb_c_host_sideb_pins[12 + 12]}, // A12 GND, B12 GND + {usb_c_host_sideb_pins[12], usb_c_host_sideb_pins[12 + 1]}, // A12 GND, B1 GND + {usb_c_host_sideb_pins[12 + 1], usb_c_host_sideb_pins[12 + 12]}, // B1 GND, B12 GND + {usb_c_host_sideb_pins[4], usb_c_host_sideb_pins[9]}, // A4 VBUS, A9 VBUS + {usb_c_host_sideb_pins[4], usb_c_host_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS + {usb_c_host_sideb_pins[4], usb_c_host_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS + {usb_c_host_sideb_pins[9], usb_c_host_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS + {usb_c_host_sideb_pins[9], usb_c_host_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS + {usb_c_host_sideb_pins[12 + 9], usb_c_host_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS + {usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[4]}, // CC1, A4 VBUS (5.1kO) + {usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[9]}, // CC1, A9 VBUS (5.1kO) + {usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[16]}, // CC1, B9 VBUS (5.1kO) + {usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[21]}, // CC1, B4 VBUS (5.1kO) + // A-C connections, GND and VBUS + {usb_a_host_pins[1], usb_c_host_sideb_pins[4]}, // VBUS, A4 VBUS + {usb_a_host_pins[1], usb_c_host_sideb_pins[9]}, // VBUS, A9 VBUS + {usb_a_host_pins[1], usb_c_host_sideb_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_host_pins[1], usb_c_host_sideb_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_host_pins[0], usb_c_host_sideb_pins[0]}, // shield, shield + {usb_a_host_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND + {usb_a_host_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND + {usb_a_host_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND + {usb_a_host_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND + {usb_a_host_pins[4], usb_c_host_sideb_pins[0]}, // GND, shield + {usb_a_host_pins[4], usb_c_host_sideb_pins[1]}, // GND, A1 GND + {usb_a_host_pins[4], usb_c_host_sideb_pins[12]}, // GND, A12 GND + {usb_a_host_pins[4], usb_c_host_sideb_pins[12 + 12]}, // GND, B12 GND + {usb_a_host_pins[4], usb_c_host_sideb_pins[12 + 1]}, // GND, B1 GND + {usb_a_host_pins[7], usb_c_host_sideb_pins[0]}, // GND_DRAIN, shield + {usb_a_host_pins[7], usb_c_host_sideb_pins[1]}, // GND_DRAIN, A1 GND + {usb_a_host_pins[7], usb_c_host_sideb_pins[12]}, // GND_DARIN, A12 GND + {usb_a_host_pins[7], usb_c_host_sideb_pins[12 + 12]}, // GND_DRAIN, B12 GND + {usb_a_host_pins[7], usb_c_host_sideb_pins[12 + 1]}, // GND_DRAIN, B1 GND + {usb_a_host_pins[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (5.1 kO) + // A-C connections, data + {usb_a_host_pins[2], usb_c_host_sideb_pins[7]}, // D-, A7 Dn1 + {usb_a_host_pins[3], usb_c_host_sideb_pins[6]}, // D+, A6 Dp1 + {usb_a_host_pins[9], usb_c_host_sideb_pins[2]}, // SSRX+, A2 SSTXp1 + {usb_a_host_pins[8], usb_c_host_sideb_pins[3]}, // SSRX-, A3 SSTXn1 + {usb_a_host_pins[6], usb_c_host_sideb_pins[12 + 11]}, // SSTX+, B11 SSRXp1 + {usb_a_host_pins[5], usb_c_host_sideb_pins[12 + 10]}, // SSTX-, B10 SSRXn1 +}; +static const uint8_t usb__a_host__c_device_sidea__ac3g2_pins[][2] = { + // A internal connections + {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_c_device_sidea_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND + {usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND + {usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_c_device_sidea_pins[1], usb_c_device_sidea_pins[12]}, // A1 GND, A12 GND + {usb_c_device_sidea_pins[1], usb_c_device_sidea_pins[12 + 12]}, // A1 GND, B12 GND + {usb_c_device_sidea_pins[1], usb_c_device_sidea_pins[12 + 1]}, // A1 GND, B1 GND + {usb_c_device_sidea_pins[12], usb_c_device_sidea_pins[12 + 12]}, // A12 GND, B12 GND + {usb_c_device_sidea_pins[12], usb_c_device_sidea_pins[12 + 1]}, // A12 GND, B1 GND + {usb_c_device_sidea_pins[12 + 1], usb_c_device_sidea_pins[12 + 12]}, // B1 GND, B12 GND + {usb_c_device_sidea_pins[4], usb_c_device_sidea_pins[9]}, // A4 VBUS, A9 VBUS + {usb_c_device_sidea_pins[4], usb_c_device_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS + {usb_c_device_sidea_pins[4], usb_c_device_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS + {usb_c_device_sidea_pins[9], usb_c_device_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS + {usb_c_device_sidea_pins[9], usb_c_device_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS + {usb_c_device_sidea_pins[12 + 9], usb_c_device_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS + {usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[4]}, // CC1, A4 VBUS (5.1kO) + {usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[9]}, // CC1, A9 VBUS (5.1kO) + {usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[16]}, // CC1, B9 VBUS (5.1kO) + {usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[21]}, // CC1, B4 VBUS (5.1kO) + // A-C connections, GND and VBUS + {usb_a_host_pins[1], usb_c_device_sidea_pins[4]}, // VBUS, A4 VBUS + {usb_a_host_pins[1], usb_c_device_sidea_pins[9]}, // VBUS, A9 VBUS + {usb_a_host_pins[1], usb_c_device_sidea_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_host_pins[1], usb_c_device_sidea_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_host_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield + {usb_a_host_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND + {usb_a_host_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND + {usb_a_host_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_a_host_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_a_host_pins[4], usb_c_device_sidea_pins[0]}, // GND, shield + {usb_a_host_pins[4], usb_c_device_sidea_pins[1]}, // GND, A1 GND + {usb_a_host_pins[4], usb_c_device_sidea_pins[12]}, // GND, A12 GND + {usb_a_host_pins[4], usb_c_device_sidea_pins[12 + 12]}, // GND, B12 GND + {usb_a_host_pins[4], usb_c_device_sidea_pins[12 + 1]}, // GND, B1 GND + {usb_a_host_pins[7], usb_c_device_sidea_pins[0]}, // GND_DRAIN, shield + {usb_a_host_pins[7], usb_c_device_sidea_pins[1]}, // GND_DRAIN, A1 GND + {usb_a_host_pins[7], usb_c_device_sidea_pins[12]}, // GND_DARIN, A12 GND + {usb_a_host_pins[7], usb_c_device_sidea_pins[12 + 12]}, // GND_DRAIN, B12 GND + {usb_a_host_pins[7], usb_c_device_sidea_pins[12 + 1]}, // GND_DRAIN, B1 GND + {usb_a_host_pins[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (5.1 kO) + // A-C connections, data + {usb_a_host_pins[2], usb_c_device_sidea_pins[7]}, // D-, A7 Dn1 + {usb_a_host_pins[3], usb_c_device_sidea_pins[6]}, // D+, A6 Dp1 + {usb_a_host_pins[9], usb_c_device_sidea_pins[2]}, // SSRX+, A2 SSTXp1 + {usb_a_host_pins[8], usb_c_device_sidea_pins[3]}, // SSRX-, A3 SSTXn1 + {usb_a_host_pins[6], usb_c_device_sidea_pins[12 + 11]}, // SSTX+, B11 SSRXp1 + {usb_a_host_pins[5], usb_c_device_sidea_pins[12 + 10]}, // SSTX-, B10 SSRXn1 +}; +static const uint8_t usb__a_host__c_device_sideb__ac3g2_pins[][2] = { + // A internal connections + {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_c_device_sideb_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND + {usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND + {usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND + {usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND + {usb_c_device_sideb_pins[1], usb_c_device_sideb_pins[12]}, // A1 GND, A12 GND + {usb_c_device_sideb_pins[1], usb_c_device_sideb_pins[12 + 12]}, // A1 GND, B12 GND + {usb_c_device_sideb_pins[1], usb_c_device_sideb_pins[12 + 1]}, // A1 GND, B1 GND + {usb_c_device_sideb_pins[12], usb_c_device_sideb_pins[12 + 12]}, // A12 GND, B12 GND + {usb_c_device_sideb_pins[12], usb_c_device_sideb_pins[12 + 1]}, // A12 GND, B1 GND + {usb_c_device_sideb_pins[12 + 1], usb_c_device_sideb_pins[12 + 12]}, // B1 GND, B12 GND + {usb_c_device_sideb_pins[4], usb_c_device_sideb_pins[9]}, // A4 VBUS, A9 VBUS + {usb_c_device_sideb_pins[4], usb_c_device_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS + {usb_c_device_sideb_pins[4], usb_c_device_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS + {usb_c_device_sideb_pins[9], usb_c_device_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS + {usb_c_device_sideb_pins[9], usb_c_device_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS + {usb_c_device_sideb_pins[12 + 9], usb_c_device_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS + {usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[4]}, // CC1, A4 VBUS (5.1kO) + {usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[9]}, // CC1, A9 VBUS (5.1kO) + {usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[16]}, // CC1, B9 VBUS (5.1kO) + {usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[21]}, // CC1, B4 VBUS (5.1kO) + // A-C connections, GND and VBUS + {usb_a_host_pins[1], usb_c_device_sideb_pins[4]}, // VBUS, A4 VBUS + {usb_a_host_pins[1], usb_c_device_sideb_pins[9]}, // VBUS, A9 VBUS + {usb_a_host_pins[1], usb_c_device_sideb_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_host_pins[1], usb_c_device_sideb_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_host_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield + {usb_a_host_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND + {usb_a_host_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND + {usb_a_host_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND + {usb_a_host_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND + {usb_a_host_pins[4], usb_c_device_sideb_pins[0]}, // GND, shield + {usb_a_host_pins[4], usb_c_device_sideb_pins[1]}, // GND, A1 GND + {usb_a_host_pins[4], usb_c_device_sideb_pins[12]}, // GND, A12 GND + {usb_a_host_pins[4], usb_c_device_sideb_pins[12 + 12]}, // GND, B12 GND + {usb_a_host_pins[4], usb_c_device_sideb_pins[12 + 1]}, // GND, B1 GND + {usb_a_host_pins[7], usb_c_device_sideb_pins[0]}, // GND_DRAIN, shield + {usb_a_host_pins[7], usb_c_device_sideb_pins[1]}, // GND_DRAIN, A1 GND + {usb_a_host_pins[7], usb_c_device_sideb_pins[12]}, // GND_DARIN, A12 GND + {usb_a_host_pins[7], usb_c_device_sideb_pins[12 + 12]}, // GND_DRAIN, B12 GND + {usb_a_host_pins[7], usb_c_device_sideb_pins[12 + 1]}, // GND_DRAIN, B1 GND + {usb_a_host_pins[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (5.1 kO) + // A-C connections, data + {usb_a_host_pins[2], usb_c_device_sideb_pins[7]}, // D-, A7 Dn1 + {usb_a_host_pins[3], usb_c_device_sideb_pins[6]}, // D+, A6 Dp1 + {usb_a_host_pins[9], usb_c_device_sideb_pins[2]}, // SSRX+, A2 SSTXp1 + {usb_a_host_pins[8], usb_c_device_sideb_pins[3]}, // SSRX-, A3 SSTXn1 + {usb_a_host_pins[6], usb_c_device_sideb_pins[12 + 11]}, // SSTX+, B11 SSRXp1 + {usb_a_host_pins[5], usb_c_device_sideb_pins[12 + 10]}, // SSTX-, B10 SSRXn1 +}; +static const uint8_t usb__a_device__c_host_sidea__ac3g2_pins[][2] = { + // A internal connections + {usb_a_device_pins[0], usb_a_device_pins[4]}, // shield, GND + {usb_a_device_pins[0], usb_a_device_pins[7]}, // shield, GND_DRAIN + {usb_a_device_pins[4], usb_a_device_pins[7]}, // GND, GND_DRAIN + // C internal connections + {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 (5.1kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[9]}, // CC1, A9 VBUS (5.1kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[16]}, // CC1, B9 VBUS (5.1kO) + {usb_c_host_sidea_pins[5], usb_c_host_sidea_pins[21]}, // CC1, B4 VBUS (5.1kO) + // A-C connections, GND and VBUS + {usb_a_device_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS + {usb_a_device_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS + {usb_a_device_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_device_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_device_pins[0], usb_c_host_sidea_pins[0]}, // shield, shield + {usb_a_device_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND + {usb_a_device_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND + {usb_a_device_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_a_device_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_a_device_pins[4], usb_c_host_sidea_pins[0]}, // GND, shield + {usb_a_device_pins[4], usb_c_host_sidea_pins[1]}, // GND, A1 GND + {usb_a_device_pins[4], usb_c_host_sidea_pins[12]}, // GND, A12 GND + {usb_a_device_pins[4], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND + {usb_a_device_pins[4], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND + {usb_a_device_pins[7], usb_c_host_sidea_pins[0]}, // GND_DRAIN, shield + {usb_a_device_pins[7], usb_c_host_sidea_pins[1]}, // GND_DRAIN, A1 GND + {usb_a_device_pins[7], usb_c_host_sidea_pins[12]}, // GND_DARIN, A12 GND + {usb_a_device_pins[7], usb_c_host_sidea_pins[12 + 12]}, // GND_DRAIN, B12 GND + {usb_a_device_pins[7], usb_c_host_sidea_pins[12 + 1]}, // GND_DRAIN, B1 GND + {usb_a_device_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (5.1 kO) + // A-C connections, data + {usb_a_device_pins[2], usb_c_host_sidea_pins[7]}, // D-, A7 Dn1 + {usb_a_device_pins[3], usb_c_host_sidea_pins[6]}, // D+, A6 Dp1 + {usb_a_device_pins[9], usb_c_host_sidea_pins[2]}, // SSRX+, A2 SSTXp1 + {usb_a_device_pins[8], usb_c_host_sidea_pins[3]}, // SSRX-, A3 SSTXn1 + {usb_a_device_pins[6], usb_c_host_sidea_pins[12 + 11]}, // SSTX+, B11 SSRXp1 + {usb_a_device_pins[5], usb_c_host_sidea_pins[12 + 10]}, // SSTX-, B10 SSRXn1 +}; +static const uint8_t usb__a_device__c_host_sideb__ac3g2_pins[][2] = { + // A internal connections + {usb_a_device_pins[0], usb_a_device_pins[4]}, // shield, GND + {usb_a_device_pins[0], usb_a_device_pins[7]}, // shield, GND_DRAIN + {usb_a_device_pins[4], usb_a_device_pins[7]}, // GND, GND_DRAIN + // C internal connections + {usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND + {usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND + {usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND + {usb_c_host_sideb_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND + {usb_c_host_sideb_pins[1], usb_c_host_sideb_pins[12]}, // A1 GND, A12 GND + {usb_c_host_sideb_pins[1], usb_c_host_sideb_pins[12 + 12]}, // A1 GND, B12 GND + {usb_c_host_sideb_pins[1], usb_c_host_sideb_pins[12 + 1]}, // A1 GND, B1 GND + {usb_c_host_sideb_pins[12], usb_c_host_sideb_pins[12 + 12]}, // A12 GND, B12 GND + {usb_c_host_sideb_pins[12], usb_c_host_sideb_pins[12 + 1]}, // A12 GND, B1 GND + {usb_c_host_sideb_pins[12 + 1], usb_c_host_sideb_pins[12 + 12]}, // B1 GND, B12 GND + {usb_c_host_sideb_pins[4], usb_c_host_sideb_pins[9]}, // A4 VBUS, A9 VBUS + {usb_c_host_sideb_pins[4], usb_c_host_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS + {usb_c_host_sideb_pins[4], usb_c_host_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS + {usb_c_host_sideb_pins[9], usb_c_host_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS + {usb_c_host_sideb_pins[9], usb_c_host_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS + {usb_c_host_sideb_pins[12 + 9], usb_c_host_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS + {usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[4]}, // CC1, A4 VBUS (5.1kO) + {usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[9]}, // CC1, A9 VBUS (5.1kO) + {usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[16]}, // CC1, B9 VBUS (5.1kO) + {usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[21]}, // CC1, B4 VBUS (5.1kO) + // A-C connections, GND and VBUS + {usb_a_device_pins[1], usb_c_host_sideb_pins[4]}, // VBUS, A4 VBUS + {usb_a_device_pins[1], usb_c_host_sideb_pins[9]}, // VBUS, A9 VBUS + {usb_a_device_pins[1], usb_c_host_sideb_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_device_pins[1], usb_c_host_sideb_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_device_pins[0], usb_c_host_sideb_pins[0]}, // shield, shield + {usb_a_device_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND + {usb_a_device_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND + {usb_a_device_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND + {usb_a_device_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND + {usb_a_device_pins[4], usb_c_host_sideb_pins[0]}, // GND, shield + {usb_a_device_pins[4], usb_c_host_sideb_pins[1]}, // GND, A1 GND + {usb_a_device_pins[4], usb_c_host_sideb_pins[12]}, // GND, A12 GND + {usb_a_device_pins[4], usb_c_host_sideb_pins[12 + 12]}, // GND, B12 GND + {usb_a_device_pins[4], usb_c_host_sideb_pins[12 + 1]}, // GND, B1 GND + {usb_a_device_pins[7], usb_c_host_sideb_pins[0]}, // GND_DRAIN, shield + {usb_a_device_pins[7], usb_c_host_sideb_pins[1]}, // GND_DRAIN, A1 GND + {usb_a_device_pins[7], usb_c_host_sideb_pins[12]}, // GND_DARIN, A12 GND + {usb_a_device_pins[7], usb_c_host_sideb_pins[12 + 12]}, // GND_DRAIN, B12 GND + {usb_a_device_pins[7], usb_c_host_sideb_pins[12 + 1]}, // GND_DRAIN, B1 GND + {usb_a_device_pins[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (5.1 kO) + // A-C connections, data + {usb_a_device_pins[2], usb_c_host_sideb_pins[7]}, // D-, A7 Dn1 + {usb_a_device_pins[3], usb_c_host_sideb_pins[6]}, // D+, A6 Dp1 + {usb_a_device_pins[9], usb_c_host_sideb_pins[2]}, // SSRX+, A2 SSTXp1 + {usb_a_device_pins[8], usb_c_host_sideb_pins[3]}, // SSRX-, A3 SSTXn1 + {usb_a_device_pins[6], usb_c_host_sideb_pins[12 + 11]}, // SSTX+, B11 SSRXp1 + {usb_a_device_pins[5], usb_c_host_sideb_pins[12 + 10]}, // SSTX-, B10 SSRXn1 +}; +static const uint8_t usb__a_device__c_device_sidea__ac3g2_pins[][2] = { + // A internal connections + {usb_a_device_pins[0], usb_a_device_pins[4]}, // shield, GND + {usb_a_device_pins[0], usb_a_device_pins[7]}, // shield, GND_DRAIN + {usb_a_device_pins[4], usb_a_device_pins[7]}, // GND, GND_DRAIN + // C internal connections + {usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND + {usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND + {usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_c_device_sidea_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_c_device_sidea_pins[1], usb_c_device_sidea_pins[12]}, // A1 GND, A12 GND + {usb_c_device_sidea_pins[1], usb_c_device_sidea_pins[12 + 12]}, // A1 GND, B12 GND + {usb_c_device_sidea_pins[1], usb_c_device_sidea_pins[12 + 1]}, // A1 GND, B1 GND + {usb_c_device_sidea_pins[12], usb_c_device_sidea_pins[12 + 12]}, // A12 GND, B12 GND + {usb_c_device_sidea_pins[12], usb_c_device_sidea_pins[12 + 1]}, // A12 GND, B1 GND + {usb_c_device_sidea_pins[12 + 1], usb_c_device_sidea_pins[12 + 12]}, // B1 GND, B12 GND + {usb_c_device_sidea_pins[4], usb_c_device_sidea_pins[9]}, // A4 VBUS, A9 VBUS + {usb_c_device_sidea_pins[4], usb_c_device_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS + {usb_c_device_sidea_pins[4], usb_c_device_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS + {usb_c_device_sidea_pins[9], usb_c_device_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS + {usb_c_device_sidea_pins[9], usb_c_device_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS + {usb_c_device_sidea_pins[12 + 9], usb_c_device_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS + {usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[4]}, // CC1, A4 VBUS (5.1kO) + {usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[9]}, // CC1, A9 VBUS (5.1kO) + {usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[16]}, // CC1, B9 VBUS (5.1kO) + {usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[21]}, // CC1, B4 VBUS (5.1kO) + // A-C connections, GND and VBUS + {usb_a_device_pins[1], usb_c_device_sidea_pins[4]}, // VBUS, A4 VBUS + {usb_a_device_pins[1], usb_c_device_sidea_pins[9]}, // VBUS, A9 VBUS + {usb_a_device_pins[1], usb_c_device_sidea_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_device_pins[1], usb_c_device_sidea_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_device_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield + {usb_a_device_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND + {usb_a_device_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND + {usb_a_device_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND + {usb_a_device_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND + {usb_a_device_pins[4], usb_c_device_sidea_pins[0]}, // GND, shield + {usb_a_device_pins[4], usb_c_device_sidea_pins[1]}, // GND, A1 GND + {usb_a_device_pins[4], usb_c_device_sidea_pins[12]}, // GND, A12 GND + {usb_a_device_pins[4], usb_c_device_sidea_pins[12 + 12]}, // GND, B12 GND + {usb_a_device_pins[4], usb_c_device_sidea_pins[12 + 1]}, // GND, B1 GND + {usb_a_device_pins[7], usb_c_device_sidea_pins[0]}, // GND_DRAIN, shield + {usb_a_device_pins[7], usb_c_device_sidea_pins[1]}, // GND_DRAIN, A1 GND + {usb_a_device_pins[7], usb_c_device_sidea_pins[12]}, // GND_DARIN, A12 GND + {usb_a_device_pins[7], usb_c_device_sidea_pins[12 + 12]}, // GND_DRAIN, B12 GND + {usb_a_device_pins[7], usb_c_device_sidea_pins[12 + 1]}, // GND_DRAIN, B1 GND + {usb_a_device_pins[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (5.1 kO) + // A-C connections, data + {usb_a_device_pins[2], usb_c_device_sidea_pins[7]}, // D-, A7 Dn1 + {usb_a_device_pins[3], usb_c_device_sidea_pins[6]}, // D+, A6 Dp1 + {usb_a_device_pins[9], usb_c_device_sidea_pins[2]}, // SSRX+, A2 SSTXp1 + {usb_a_device_pins[8], usb_c_device_sidea_pins[3]}, // SSRX-, A3 SSTXn1 + {usb_a_device_pins[6], usb_c_device_sidea_pins[12 + 11]}, // SSTX+, B11 SSRXp1 + {usb_a_device_pins[5], usb_c_device_sidea_pins[12 + 10]}, // SSTX-, B10 SSRXn1 +}; +static const uint8_t usb__a_device__c_device_sideb__ac3g2_pins[][2] = { + // A internal connections + {usb_a_device_pins[0], usb_a_device_pins[4]}, // shield, GND + {usb_a_device_pins[0], usb_a_device_pins[7]}, // shield, GND_DRAIN + {usb_a_device_pins[4], usb_a_device_pins[7]}, // GND, GND_DRAIN + // C internal connections + {usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND + {usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND + {usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND + {usb_c_device_sideb_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND + {usb_c_device_sideb_pins[1], usb_c_device_sideb_pins[12]}, // A1 GND, A12 GND + {usb_c_device_sideb_pins[1], usb_c_device_sideb_pins[12 + 12]}, // A1 GND, B12 GND + {usb_c_device_sideb_pins[1], usb_c_device_sideb_pins[12 + 1]}, // A1 GND, B1 GND + {usb_c_device_sideb_pins[12], usb_c_device_sideb_pins[12 + 12]}, // A12 GND, B12 GND + {usb_c_device_sideb_pins[12], usb_c_device_sideb_pins[12 + 1]}, // A12 GND, B1 GND + {usb_c_device_sideb_pins[12 + 1], usb_c_device_sideb_pins[12 + 12]}, // B1 GND, B12 GND + {usb_c_device_sideb_pins[4], usb_c_device_sideb_pins[9]}, // A4 VBUS, A9 VBUS + {usb_c_device_sideb_pins[4], usb_c_device_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS + {usb_c_device_sideb_pins[4], usb_c_device_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS + {usb_c_device_sideb_pins[9], usb_c_device_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS + {usb_c_device_sideb_pins[9], usb_c_device_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS + {usb_c_device_sideb_pins[12 + 9], usb_c_device_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS + {usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[4]}, // CC1, A4 VBUS (5.1kO) + {usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[9]}, // CC1, A9 VBUS (5.1kO) + {usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[16]}, // CC1, B9 VBUS (5.1kO) + {usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[21]}, // CC1, B4 VBUS (5.1kO) + // A-C connections, GND and VBUS + {usb_a_device_pins[1], usb_c_device_sideb_pins[4]}, // VBUS, A4 VBUS + {usb_a_device_pins[1], usb_c_device_sideb_pins[9]}, // VBUS, A9 VBUS + {usb_a_device_pins[1], usb_c_device_sideb_pins[12 + 9]}, // VBUS, B9 VBUS + {usb_a_device_pins[1], usb_c_device_sideb_pins[12 + 4]}, // VBUS, B4 VBUS + {usb_a_device_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield + {usb_a_device_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND + {usb_a_device_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND + {usb_a_device_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND + {usb_a_device_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND + {usb_a_device_pins[4], usb_c_device_sideb_pins[0]}, // GND, shield + {usb_a_device_pins[4], usb_c_device_sideb_pins[1]}, // GND, A1 GND + {usb_a_device_pins[4], usb_c_device_sideb_pins[12]}, // GND, A12 GND + {usb_a_device_pins[4], usb_c_device_sideb_pins[12 + 12]}, // GND, B12 GND + {usb_a_device_pins[4], usb_c_device_sideb_pins[12 + 1]}, // GND, B1 GND + {usb_a_device_pins[7], usb_c_device_sideb_pins[0]}, // GND_DRAIN, shield + {usb_a_device_pins[7], usb_c_device_sideb_pins[1]}, // GND_DRAIN, A1 GND + {usb_a_device_pins[7], usb_c_device_sideb_pins[12]}, // GND_DARIN, A12 GND + {usb_a_device_pins[7], usb_c_device_sideb_pins[12 + 12]}, // GND_DRAIN, B12 GND + {usb_a_device_pins[7], usb_c_device_sideb_pins[12 + 1]}, // GND_DRAIN, B1 GND + {usb_a_device_pins[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (5.1 kO) + // A-C connections, data + {usb_a_device_pins[2], usb_c_device_sideb_pins[7]}, // D-, A7 Dn1 + {usb_a_device_pins[3], usb_c_device_sideb_pins[6]}, // D+, A6 Dp1 + {usb_a_device_pins[9], usb_c_device_sideb_pins[2]}, // SSRX+, A2 SSTXp1 + {usb_a_device_pins[8], usb_c_device_sideb_pins[3]}, // SSRX-, A3 SSTXn1 + {usb_a_device_pins[6], usb_c_device_sideb_pins[12 + 11]}, // SSTX+, B11 SSRXp1 + {usb_a_device_pins[5], usb_c_device_sideb_pins[12 + 10]}, // SSTX-, B10 SSRXn1 +}; + const struct usb_cable_t usb_cables[] = { // A-A { @@ -2045,6 +2431,55 @@ const struct usb_cable_t usb_cables[] = { .pin_pairs_nb = LENGTH(usb__a_host__c_host_sidea__ac3g2_pins), .pin_pairs = usb__a_host__c_host_sidea__ac3g2_pins, }, + { + .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_sideb__ac3g2_pins), + .pin_pairs = usb__a_host__c_host_sideb__ac3g2_pins, + }, + { + .name = "A-C 3.1 Gen 2", + .connectors_nb = LENGTH(usb_a_host_c_device_connectors), + .connectors = usb_a_host_c_device_connectors, + .pin_pairs_nb = LENGTH(usb__a_host__c_device_sidea__ac3g2_pins), + .pin_pairs = usb__a_host__c_device_sidea__ac3g2_pins, + }, + { + .name = "A-C 3.1 Gen 2", + .connectors_nb = LENGTH(usb_a_host_c_device_connectors), + .connectors = usb_a_host_c_device_connectors, + .pin_pairs_nb = LENGTH(usb__a_host__c_device_sideb__ac3g2_pins), + .pin_pairs = usb__a_host__c_device_sideb__ac3g2_pins, + }, + { + .name = "A-C 3.1 Gen 2", + .connectors_nb = LENGTH(usb_a_device_c_host_connectors), + .connectors = usb_a_device_c_host_connectors, + .pin_pairs_nb = LENGTH(usb__a_device__c_host_sidea__ac3g2_pins), + .pin_pairs = usb__a_device__c_host_sidea__ac3g2_pins, + }, + { + .name = "A-C 3.1 Gen 2", + .connectors_nb = LENGTH(usb_a_device_c_host_connectors), + .connectors = usb_a_device_c_host_connectors, + .pin_pairs_nb = LENGTH(usb__a_device__c_host_sideb__ac3g2_pins), + .pin_pairs = usb__a_device__c_host_sideb__ac3g2_pins, + }, + { + .name = "A-C 3.1 Gen 2", + .connectors_nb = LENGTH(usb_a_device_c_device_connectors), + .connectors = usb_a_device_c_device_connectors, + .pin_pairs_nb = LENGTH(usb__a_device__c_device_sidea__ac3g2_pins), + .pin_pairs = usb__a_device__c_device_sidea__ac3g2_pins, + }, + { + .name = "A-C 3.1 Gen 2", + .connectors_nb = LENGTH(usb_a_device_c_device_connectors), + .connectors = usb_a_device_c_device_connectors, + .pin_pairs_nb = LENGTH(usb__a_device__c_device_sidea__ac3g2_pins), + .pin_pairs = usb__a_device__c_device_sideb__ac3g2_pins, + }, }; void usb_cables_pins_float(const struct usb_connector_t* connector) diff --git a/usb_cables.h b/usb_cables.h index d89f568..108740e 100644 --- a/usb_cables.h +++ b/usb_cables.h @@ -69,7 +69,7 @@ extern const struct usb_pin_t usb_pins[105]; /** USB connectors definitions */ extern const struct usb_connector_t* usb_connectors[8]; /** USB cables definitions */ -extern const struct usb_cable_t usb_cables[38]; +extern const struct usb_cable_t usb_cables[45]; /** set every pin of connector to input floating * @param[in] connector connector on which to set the pins floating