4890 lines
264 KiB
C
4890 lines
264 KiB
C
/* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
/** USB cable definitions and utilities
|
|
* @file
|
|
* @author King Kévin <kingkevin@cuvoodoo.info>
|
|
* @date 2019
|
|
*/
|
|
/* standard libraries */
|
|
#include <stdint.h> // standard integer types
|
|
#include <string.h> // string utilities
|
|
|
|
/* STM32 (including CM3) libraries */
|
|
#include <libopencmsis/core_cm3.h> // Cortex M3 utilities
|
|
#include <libopencm3/cm3/assert.h> // assert definitions
|
|
#include <libopencm3/stm32/gpio.h> // general purpose input output library
|
|
|
|
/* own libraries */
|
|
#include "global.h" // board definitions
|
|
#include "print.h" // printing utilities
|
|
#include "usb_cables.h" // own definitions
|
|
|
|
const struct usb_pin_t usb_pins[] = {
|
|
// A host
|
|
{
|
|
.name = "shield",
|
|
.port = GPIOD,
|
|
.pin = GPIO0,
|
|
.type = USB_PIN_TYPE_SHIELD,
|
|
},
|
|
{
|
|
.name = "VBUS",
|
|
.port = GPIOC,
|
|
.pin = GPIO12,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "D-",
|
|
.port = GPIOA,
|
|
.pin = GPIO15,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "D+",
|
|
.port = GPIOG,
|
|
.pin = GPIO6,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND",
|
|
.port = GPIOG,
|
|
.pin = GPIO2,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "RX-",
|
|
.port = GPIOD,
|
|
.pin = GPIO14,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "RX+",
|
|
.port = GPIOG,
|
|
.pin = GPIO4,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND_DRAIN",
|
|
.port = GPIOG,
|
|
.pin = GPIO8,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "TX-",
|
|
.port = GPIOC,
|
|
.pin = GPIO10,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "TX+",
|
|
.port = GPIOC,
|
|
.pin = GPIO11,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
// C host
|
|
{
|
|
.name = "shield",
|
|
.port = GPIOG,
|
|
.pin = GPIO13,
|
|
.type = USB_PIN_TYPE_SHIELD,
|
|
},
|
|
{
|
|
.name = "GND-A1",
|
|
.port = GPIOD,
|
|
.pin = GPIO15,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "TXp1",
|
|
.port = GPIOG,
|
|
.pin = GPIO3,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "TXn1",
|
|
.port = GPIOG,
|
|
.pin = GPIO5,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "VBUS-A4",
|
|
.port = GPIOG,
|
|
.pin = GPIO7,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "CC1",
|
|
.port = GPIOC,
|
|
.pin = GPIO6,
|
|
.type = USB_PIN_TYPE_IDENTIFICATION,
|
|
},
|
|
{
|
|
.name = "Dp1",
|
|
.port = GPIOC,
|
|
.pin = GPIO8,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "Dn1",
|
|
.port = GPIOA,
|
|
.pin = GPIO8,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "SBU1",
|
|
.port = GPIOA,
|
|
.pin = GPIO10,
|
|
.type = USB_PIN_TYPE_OTHER,
|
|
},
|
|
{
|
|
.name = "VBUS-A9",
|
|
.port = GPIOG,
|
|
.pin = GPIO11,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "RXn2",
|
|
.port = GPIOA,
|
|
.pin = GPIO9,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "RXp2",
|
|
.port = GPIOC,
|
|
.pin = GPIO9,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND-A12",
|
|
.port = GPIOC,
|
|
.pin = GPIO7,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "GND-B1",
|
|
.port = GPIOD,
|
|
.pin = GPIO3,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "TXp2",
|
|
.port = GPIOD,
|
|
.pin = GPIO2,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "TXn2",
|
|
.port = GPIOD,
|
|
.pin = GPIO4,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "VBUS-B4",
|
|
.port = GPIOD,
|
|
.pin = GPIO5,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "CC2",
|
|
.port = GPIOD,
|
|
.pin = GPIO1,
|
|
.type = USB_PIN_TYPE_IDENTIFICATION,
|
|
},
|
|
{
|
|
.name = "Dp2",
|
|
.port = GPIOD,
|
|
.pin = GPIO6,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "Dn2",
|
|
.port = GPIOD,
|
|
.pin = GPIO7,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "SBU2",
|
|
.port = GPIOG,
|
|
.pin = GPIO15,
|
|
.type = USB_PIN_TYPE_OTHER,
|
|
},
|
|
{
|
|
.name = "VBUS-B9",
|
|
.port = GPIOG,
|
|
.pin = GPIO9,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "RXn1",
|
|
.port = GPIOG,
|
|
.pin = GPIO10,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "RXp1",
|
|
.port = GPIOG,
|
|
.pin = GPIO14,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND-B12",
|
|
.port = GPIOG,
|
|
.pin = GPIO12,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
// A device
|
|
{
|
|
.name = "shield",
|
|
.port = GPIOB,
|
|
.pin = GPIO3,
|
|
.type = USB_PIN_TYPE_SHIELD,
|
|
},
|
|
{
|
|
.name = "VBUS",
|
|
.port = GPIOE,
|
|
.pin = GPIO3,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "D-",
|
|
.port = GPIOE,
|
|
.pin = GPIO1,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "D+",
|
|
.port = GPIOB,
|
|
.pin = GPIO9,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND",
|
|
.port = GPIOB,
|
|
.pin = GPIO5,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "RX-",
|
|
.port = GPIOB,
|
|
.pin = GPIO4,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "RX+",
|
|
.port = GPIOB,
|
|
.pin = GPIO8,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND_DRAIN",
|
|
.port = GPIOE,
|
|
.pin = GPIO0,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "TX-",
|
|
.port = GPIOC,
|
|
.pin = GPIO13,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "TX+",
|
|
.port = GPIOE,
|
|
.pin = GPIO2,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
// B
|
|
{
|
|
.name = "shield",
|
|
.port = GPIOF,
|
|
.pin = GPIO1,
|
|
.type = USB_PIN_TYPE_SHIELD,
|
|
},
|
|
{
|
|
.name = "VBUS",
|
|
.port = GPIOC,
|
|
.pin = GPIO3,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "D-",
|
|
.port = GPIOA,
|
|
.pin = GPIO0,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "D+",
|
|
.port = GPIOA,
|
|
.pin = GPIO4,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND",
|
|
.port = GPIOC,
|
|
.pin = GPIO0,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "TX-",
|
|
.port = GPIOA,
|
|
.pin = GPIO2,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "TX+",
|
|
.port = GPIOA,
|
|
.pin = GPIO1,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND_DRAIN",
|
|
.port = GPIOF,
|
|
.pin = GPIO6,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "RX-",
|
|
.port = GPIOC,
|
|
.pin = GPIO2,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "RX+",
|
|
.port = GPIOC,
|
|
.pin = GPIO1,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
// mini-B
|
|
{
|
|
.name = "shield",
|
|
.port = GPIOC,
|
|
.pin = GPIO14,
|
|
.type = USB_PIN_TYPE_SHIELD,
|
|
},
|
|
{
|
|
.name = "VBUS",
|
|
.port = GPIOE,
|
|
.pin = GPIO4,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "D-",
|
|
.port = GPIOE,
|
|
.pin = GPIO5,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "D+",
|
|
.port = GPIOE,
|
|
.pin = GPIO6,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "ID",
|
|
.port = GPIOF,
|
|
.pin = GPIO0,
|
|
.type = USB_PIN_TYPE_IDENTIFICATION,
|
|
},
|
|
{
|
|
.name = "GND",
|
|
.port = GPIOC,
|
|
.pin = GPIO15,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
// micro-B
|
|
{
|
|
.name = "shield",
|
|
.port = GPIOD,
|
|
.pin = GPIO12,
|
|
.type = USB_PIN_TYPE_SHIELD,
|
|
},
|
|
{
|
|
.name = "VBUS",
|
|
.port = GPIOD,
|
|
.pin = GPIO11,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "D-",
|
|
.port = GPIOD,
|
|
.pin = GPIO10,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "D+",
|
|
.port = GPIOD,
|
|
.pin = GPIO9,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "ID",
|
|
.port = GPIOD,
|
|
.pin = GPIO8,
|
|
.type = USB_PIN_TYPE_IDENTIFICATION,
|
|
},
|
|
{
|
|
.name = "GND",
|
|
.port = GPIOB,
|
|
.pin = GPIO15,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "TX-",
|
|
.port = GPIOB,
|
|
.pin = GPIO14,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "TX+",
|
|
.port = GPIOB,
|
|
.pin = GPIO13,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND_DRAIN",
|
|
.port = GPIOB,
|
|
.pin = GPIO11,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "RX-",
|
|
.port = GPIOB,
|
|
.pin = GPIO10,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "RX+",
|
|
.port = GPIOB,
|
|
.pin = GPIO12,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
// C device
|
|
{
|
|
.name = "shield",
|
|
.port = GPIOE,
|
|
.pin = GPIO11,
|
|
.type = USB_PIN_TYPE_SHIELD,
|
|
},
|
|
{
|
|
.name = "GND-A1",
|
|
.port = GPIOF,
|
|
.pin = GPIO13,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "TXp1",
|
|
.port = GPIOF,
|
|
.pin = GPIO12,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "TXn1",
|
|
.port = GPIOF,
|
|
.pin = GPIO11,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "VBUS-A4",
|
|
.port = GPIOB,
|
|
.pin = GPIO2,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "CC1",
|
|
.port = GPIOB,
|
|
.pin = GPIO1,
|
|
.type = USB_PIN_TYPE_IDENTIFICATION,
|
|
},
|
|
{
|
|
.name = "Dp1",
|
|
.port = GPIOB,
|
|
.pin = GPIO0,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "Dn1",
|
|
.port = GPIOC,
|
|
.pin = GPIO5,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "SBU1",
|
|
.port = GPIOC,
|
|
.pin = GPIO4,
|
|
.type = USB_PIN_TYPE_OTHER,
|
|
},
|
|
{
|
|
.name = "VBUS-A9",
|
|
.port = GPIOA,
|
|
.pin = GPIO7,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "RXn2",
|
|
.port = GPIOA,
|
|
.pin = GPIO6,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "RXp2",
|
|
.port = GPIOA,
|
|
.pin = GPIO5,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND-A12",
|
|
.port = GPIOA,
|
|
.pin = GPIO3,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "GND-B1",
|
|
.port = GPIOF,
|
|
.pin = GPIO14,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "TXp2",
|
|
.port = GPIOE,
|
|
.pin = GPIO15,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "TXn2",
|
|
.port = GPIOF,
|
|
.pin = GPIO15,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "VBUS-B4",
|
|
.port = GPIOG,
|
|
.pin = GPIO0,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "CC2",
|
|
.port = GPIOE,
|
|
.pin = GPIO14,
|
|
.type = USB_PIN_TYPE_IDENTIFICATION,
|
|
},
|
|
{
|
|
.name = "Dp2",
|
|
.port = GPIOG,
|
|
.pin = GPIO1,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "Dn2",
|
|
.port = GPIOE,
|
|
.pin = GPIO7,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "SBU2",
|
|
.port = GPIOE,
|
|
.pin = GPIO13,
|
|
.type = USB_PIN_TYPE_OTHER,
|
|
},
|
|
{
|
|
.name = "VBUS-B9",
|
|
.port = GPIOE,
|
|
.pin = GPIO8,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "RXn1",
|
|
.port = GPIOE,
|
|
.pin = GPIO9,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "RXp1",
|
|
.port = GPIOE,
|
|
.pin = GPIO12,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "GND-B12",
|
|
.port = GPIOE,
|
|
.pin = GPIO10,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
// lightning
|
|
{
|
|
.name = "GND",
|
|
.port = GPIOF,
|
|
.pin = GPIO10,
|
|
.type = USB_PIN_TYPE_GROUND,
|
|
},
|
|
{
|
|
.name = "L0p",
|
|
.port = GPIOF,
|
|
.pin = GPIO9,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "L0n",
|
|
.port = GPIOF,
|
|
.pin = GPIO8,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "ID0",
|
|
.port = GPIOF,
|
|
.pin = GPIO7,
|
|
.type = USB_PIN_TYPE_IDENTIFICATION,
|
|
},
|
|
{
|
|
.name = "PWR",
|
|
.port = GPIOF,
|
|
.pin = GPIO5,
|
|
.type = USB_PIN_TYPE_POWER,
|
|
},
|
|
{
|
|
.name = "L1n",
|
|
.port = GPIOF,
|
|
.pin = GPIO2,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "L1p",
|
|
.port = GPIOF,
|
|
.pin = GPIO3,
|
|
.type = USB_PIN_TYPE_DIFFERENTIAL,
|
|
},
|
|
{
|
|
.name = "ID1",
|
|
.port = GPIOF,
|
|
.pin = GPIO4,
|
|
.type = USB_PIN_TYPE_IDENTIFICATION,
|
|
},
|
|
};
|
|
|
|
/* USB connectors */
|
|
|
|
/** USB type A connector pins (host side) */
|
|
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_a_host_connector = {
|
|
.name = "A",
|
|
.host = true,
|
|
.pins_nb = LENGTH(usb_a_host_pins),
|
|
.pins = usb_a_host_pins,
|
|
};
|
|
|
|
/** 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_c_host_connector = {
|
|
.name = "C",
|
|
.host = true,
|
|
.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_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_a_device_connector = {
|
|
.name = "A",
|
|
.host = false,
|
|
.pins_nb = LENGTH(usb_a_device_pins),
|
|
.pins = usb_a_device_pins,
|
|
};
|
|
|
|
/** USB type B connector (device side) pins */
|
|
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_b_device_connector = {
|
|
.name = "B",
|
|
.host = false,
|
|
.pins_nb = LENGTH(usb_b_device_pins),
|
|
.pins = usb_b_device_pins,
|
|
};
|
|
|
|
/** USB mini-B connector (device side) */
|
|
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_minib_device_connector = {
|
|
.name = "mini-B",
|
|
.host = false,
|
|
.pins_nb = LENGTH(usb_minib_device_pins),
|
|
.pins = usb_minib_device_pins,
|
|
};
|
|
|
|
/** USB micro-B connector (device side) pins */
|
|
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_microb_device_connector = {
|
|
.name = "micro-B",
|
|
.host = false,
|
|
.pins_nb = LENGTH(usb_microb_device_pins),
|
|
.pins = usb_microb_device_pins,
|
|
};
|
|
|
|
/** 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_c_device_connector = {
|
|
.name = "C",
|
|
.host = false,
|
|
.pins_nb = LENGTH(usb_c_device_sidea_pins),
|
|
.pins = usb_c_device_sidea_pins,
|
|
};
|
|
|
|
/** Apple lightning connector (device side) pins */
|
|
static const uint8_t lighnting_device_pins[] = {97, 98, 99, 100, 101, 102, 103, 104};
|
|
/** Apple lightning connector (device side)
|
|
* @note this is not strictly a USB connector
|
|
*/
|
|
static const struct usb_connector_t lightning_device_connector = {
|
|
.name = "lightning",
|
|
.host = false,
|
|
.pins_nb = LENGTH(lighnting_device_pins),
|
|
.pins = lighnting_device_pins,
|
|
};
|
|
|
|
const struct usb_connector_t* usb_connectors[] = {
|
|
&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_c_device_connector,
|
|
&lightning_device_connector,
|
|
};
|
|
|
|
/* USB cables definitions */
|
|
|
|
/** list of connectors for A-A cables */
|
|
static const struct usb_connector_t* usb_a_a_connectors[] = {
|
|
&usb_a_host_connector,
|
|
&usb_a_device_connector,
|
|
};
|
|
|
|
/** USB type A to type A power cable pin pairs
|
|
* @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_aa0_pins[][2] = {
|
|
{usb_a_host_pins[1], usb_a_device_pins[1]}, // VBUS
|
|
{usb_a_host_pins[4], usb_a_device_pins[4]}, // GND
|
|
};
|
|
|
|
/** USB type A to type A USB 2.0 cable pin pairs
|
|
* @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_aa2_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 type A to type A USB 3.x cable pin pairs
|
|
* @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_aa3_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]}, // RX-, TX-
|
|
{usb_a_host_pins[6], usb_a_device_pins[6]}, // RX+, TX+
|
|
{usb_a_host_pins[7], usb_a_device_pins[7]}, // GND_DRAIN
|
|
{usb_a_host_pins[8], usb_a_device_pins[8]}, // TX-, RX-
|
|
{usb_a_host_pins[9], usb_a_device_pins[9]}, // TX+, RX+
|
|
};
|
|
|
|
/** list of connectors for A-B cables (using A host connector) */
|
|
static const struct usb_connector_t* usb_a_host_b_connectors[] = {
|
|
&usb_a_host_connector,
|
|
&usb_b_device_connector,
|
|
};
|
|
|
|
/** USB type A to type B power only cable pin pairs
|
|
* @implements this cable is not specified since it does not carry USB data signals
|
|
*/
|
|
static const uint8_t usb__a_host__b__ab0_pins[][2] = {
|
|
{usb_a_host_pins[1], usb_b_device_pins[1]}, // VBUS
|
|
{usb_a_host_pins[4], usb_b_device_pins[4]}, // GND
|
|
};
|
|
|
|
/** USB type A to type B USB 2.0 cable pin pairs
|
|
* @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__ab2_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 type A to type B USB 3.x cable pin pairs
|
|
* @implements USB 3.1 Legacy Cable and Connector (https://www.usb.org/document-library/usb-31-legacy-cable-and-connector-revision-10)
|
|
* @note the shield is mandatory
|
|
*/
|
|
static const uint8_t usb__a_host__b__ab3_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]}, // RX-, TX-
|
|
{usb_a_host_pins[6], usb_b_device_pins[6]}, // RX+, TX+
|
|
{usb_a_host_pins[7], usb_b_device_pins[7]}, // GND_DRAIN
|
|
{usb_a_host_pins[8], usb_b_device_pins[8]}, // TX-, RX-
|
|
{usb_a_host_pins[9], usb_b_device_pins[9]}, // TX+, RX+
|
|
};
|
|
|
|
/** list of connectors for A-B cables (using A device connector) */
|
|
static const struct usb_connector_t* usb_a_device_b_connectors[] = {
|
|
&usb_a_device_connector,
|
|
&usb_b_device_connector,
|
|
};
|
|
|
|
static const uint8_t usb__a_device__b__ab0_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__ab2_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__ab3_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]}, // RX-, TX-
|
|
{usb_a_device_pins[6], usb_b_device_pins[6]}, // RX+, TX+
|
|
{usb_a_device_pins[7], usb_b_device_pins[7]}, // GND_DRAIN
|
|
{usb_a_device_pins[8], usb_b_device_pins[8]}, // TX-, RX-
|
|
{usb_a_device_pins[9], usb_b_device_pins[9]}, // TX+, RX+
|
|
};
|
|
|
|
/** list of connectors for A+A-B cables */
|
|
static const struct usb_connector_t* usb_a_a_b_connectors[] = {
|
|
&usb_a_host_connector,
|
|
&usb_a_device_connector,
|
|
&usb_b_device_connector,
|
|
};
|
|
|
|
/** USB type A to type B USB 2.0, with additional A for power cable pin pairs,
|
|
* @implements this cable is not specified
|
|
*/
|
|
static const uint8_t usb_a_host_a_device_b_aab2_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[1], usb_a_device_pins[1]}, // VBUS
|
|
{usb_a_host_pins[4], usb_a_device_pins[4]}, // GND
|
|
{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_a_host_b_aab2_pins[][2] = {
|
|
{usb_a_device_pins[0], usb_b_device_pins[0]}, // shield
|
|
{usb_a_host_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_host_pins[4], usb_b_device_pins[4]}, // GND
|
|
{usb_a_host_pins[1], usb_a_device_pins[1]}, // VBUS
|
|
{usb_a_host_pins[4], usb_a_device_pins[4]}, // GND
|
|
{usb_a_device_pins[1], usb_b_device_pins[1]}, // VBUS
|
|
{usb_a_device_pins[4], usb_b_device_pins[4]}, // GND
|
|
};
|
|
|
|
/** list of connectors for A-miniB cables (using A host connector) */
|
|
static const struct usb_connector_t* usb_a_host_minib_connectors[] = {
|
|
&usb_a_host_connector,
|
|
&usb_minib_device_connector,
|
|
};
|
|
|
|
/** USB type A to type mini-B power only cable pin pairs
|
|
* @implements this cable is not specified since it does not carry USB data signals
|
|
*/
|
|
static const uint8_t usb__a_host__minib__amb0_pins[][2] = {
|
|
{usb_a_host_pins[1], usb_minib_device_pins[1]}, // VBUS
|
|
{usb_a_host_pins[4], usb_minib_device_pins[5]}, // GND
|
|
};
|
|
|
|
/** USB type A to type mini-B USB 2.0 cable pin pairs
|
|
* @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__minib__amb2_pins[][2] = {
|
|
{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_a_device_connector,
|
|
&usb_minib_device_connector,
|
|
};
|
|
|
|
static const uint8_t usb__a_device__minib__amb0_pins[][2] = {
|
|
{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__amb2_pins[][2] = {
|
|
{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+A-B cables */
|
|
static const struct usb_connector_t* usb_a_a_minib_connectors[] = {
|
|
&usb_a_host_connector,
|
|
&usb_a_device_connector,
|
|
&usb_minib_device_connector,
|
|
};
|
|
|
|
/** USB type A to type B USB 2.0, with additional A for power cable pin pairs,
|
|
* @implements this cable is not specified
|
|
*/
|
|
static const uint8_t usb_a_host_a_device_minib_aamb2_pins[][2] = {
|
|
{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[4]}, // GND
|
|
{usb_a_host_pins[1], usb_a_device_pins[1]}, // VBUS
|
|
{usb_a_host_pins[4], usb_a_device_pins[4]}, // GND
|
|
{usb_a_device_pins[1], usb_minib_device_pins[1]}, // VBUS
|
|
{usb_a_device_pins[4], usb_minib_device_pins[4]}, // GND
|
|
};
|
|
static const uint8_t usb_a_device_a_host_minib_aamb2_pins[][2] = {
|
|
{usb_a_device_pins[0], usb_minib_device_pins[0]}, // shield
|
|
{usb_a_host_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_host_pins[4], usb_minib_device_pins[4]}, // GND
|
|
{usb_a_host_pins[1], usb_a_device_pins[1]}, // VBUS
|
|
{usb_a_host_pins[4], usb_a_device_pins[4]}, // GND
|
|
{usb_a_device_pins[1], usb_minib_device_pins[1]}, // VBUS
|
|
{usb_a_device_pins[4], usb_minib_device_pins[4]}, // GND
|
|
};
|
|
|
|
/** list of connectors for A-microB cables (using A host connector) */
|
|
static const struct usb_connector_t* usb_a_host_microb_connectors[] = {
|
|
&usb_a_host_connector,
|
|
&usb_microb_device_connector,
|
|
};
|
|
|
|
/** USB type A to type micro-B power only cable pin pairs
|
|
* @implements this cable is not specified since it does not carry USB data signals
|
|
*/
|
|
static const uint8_t usb__a_host__microb__aub0_pins[][2] = {
|
|
{usb_a_host_pins[1], usb_microb_device_pins[1]}, // VBUS
|
|
{usb_a_host_pins[4], usb_microb_device_pins[5]}, // GND
|
|
};
|
|
|
|
/** USB type A to type micro-B USB 2.0 cable pin pairs
|
|
* @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__microb__aub2_pins[][2] = {
|
|
{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 type A to type micro-B USB 3.x cable pin pairs
|
|
* @implements USB 3.1 Legacy Cable and Connector (https://www.usb.org/document-library/usb-31-legacy-cable-and-connector-revision-10)
|
|
* @note the shield is mandatory
|
|
*/
|
|
static const uint8_t usb__a_host__microb__aub3_pins[][2] = {
|
|
{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]}, // RX-, TX-
|
|
{usb_a_host_pins[6], usb_microb_device_pins[7]}, // RX+, TX+
|
|
{usb_a_host_pins[7], usb_microb_device_pins[8]}, // GND_DRAIN
|
|
{usb_a_host_pins[8], usb_microb_device_pins[9]}, // TX-, RX-
|
|
{usb_a_host_pins[9], usb_microb_device_pins[10]}, // TX+, RX+
|
|
};
|
|
|
|
/** list of connectors for A-microB cables (using A device connector) */
|
|
static const struct usb_connector_t* usb_a_device_microb_connectors[] = {
|
|
&usb_a_device_connector,
|
|
&usb_microb_device_connector,
|
|
};
|
|
|
|
static const uint8_t usb__a_device__microb__aub0_pins[][2] = {
|
|
{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__aub2_pins[][2] = {
|
|
{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__aub3_pins[][2] = {
|
|
{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]}, // RX-, TX-
|
|
{usb_a_device_pins[6], usb_microb_device_pins[7]}, // RX+, TX+
|
|
{usb_a_device_pins[7], usb_microb_device_pins[8]}, // GND_DRAIN
|
|
{usb_a_device_pins[8], usb_microb_device_pins[9]}, // TX-, RX-
|
|
{usb_a_device_pins[9], usb_microb_device_pins[10]}, // TX+, RX+
|
|
};
|
|
|
|
/** list of connectors for C shunts (using C host connector) */
|
|
static const struct usb_connector_t* usb_c_host_connectors[] = {
|
|
&usb_c_host_connector,
|
|
};
|
|
|
|
/** this is not a cable, but a shunt shorting opposite signal the type C connector so to test it */
|
|
static const uint8_t usb__c_host__c_host__cshunt_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 TXp1, B11 RXp1
|
|
{usb_c_host_sidea_pins[3], usb_c_host_sideb_pins[10]}, // A3 TXn1, B10 RXn1
|
|
{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 RXn2, B3 TXn2
|
|
{usb_c_host_sidea_pins[11], usb_c_host_sideb_pins[2]}, // A11 RXp2, B2 TXp2
|
|
{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_c_device_connector,
|
|
};
|
|
|
|
static const uint8_t usb__c_device__c_device__cshunt_pins[][2] = {
|
|
{usb_c_device_sidea_pins[1], usb_c_device_sideb_pins[12]}, // A1 GND, B12 GND
|
|
{usb_c_device_sidea_pins[2], usb_c_device_sideb_pins[11]}, // A2 TXp1, B11 RXp1
|
|
{usb_c_device_sidea_pins[3], usb_c_device_sideb_pins[10]}, // A3 TXn1, B10 RXn1
|
|
{usb_c_device_sidea_pins[4], usb_c_device_sideb_pins[9]}, // A4 VBUS, B9 VBUS
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sideb_pins[8]}, // A5 CC1, B8 SBU2
|
|
{usb_c_device_sidea_pins[6], usb_c_device_sideb_pins[7]}, // A6 Dp1, B7 Dn2
|
|
{usb_c_device_sidea_pins[7], usb_c_device_sideb_pins[6]}, // A7 Dn1, B6 Dp2
|
|
{usb_c_device_sidea_pins[8], usb_c_device_sideb_pins[5]}, // A8 SBU1, B5 CC2
|
|
{usb_c_device_sidea_pins[9], usb_c_device_sideb_pins[4]}, // A9 VBUS, B4 VBUS
|
|
{usb_c_device_sidea_pins[10], usb_c_device_sideb_pins[3]}, // A10 RXn2, B3 TXn2
|
|
{usb_c_device_sidea_pins[11], usb_c_device_sideb_pins[2]}, // A11 RXp2, B2 TXp2
|
|
{usb_c_device_sidea_pins[12], usb_c_device_sideb_pins[1]}, // A12 GND, B1 GND
|
|
};
|
|
|
|
/** list of connectors for A-C cables (using A host connector and C host connector) */
|
|
static const struct usb_connector_t* usb_a_host_c_host_connectors[] = {
|
|
&usb_a_host_connector,
|
|
&usb_c_host_connector,
|
|
};
|
|
|
|
/** list of connectors for A-C cables (using A host connector and C device connector) */
|
|
static const struct usb_connector_t* usb_a_host_c_device_connectors[] = {
|
|
&usb_a_host_connector,
|
|
&usb_c_device_connector,
|
|
};
|
|
|
|
/** list of connectors for A-C cables (using A device connector and C host connector) */
|
|
static const struct usb_connector_t* usb_a_device_c_host_connectors[] = {
|
|
&usb_a_device_connector,
|
|
&usb_c_host_connector,
|
|
};
|
|
|
|
/** list of connectors for A-C cables (using A device connector and C device connector) */
|
|
static const struct usb_connector_t* usb_a_device_c_device_connectors[] = {
|
|
&usb_a_device_connector,
|
|
&usb_c_device_connector,
|
|
};
|
|
|
|
/** USB type A to type C power only cable pin pairs
|
|
* @implements this cable is not specified since it does not carry USB signals
|
|
*/
|
|
static const uint8_t usb__a_host__c_host_sidea__ac0_pins[][2] = {
|
|
// 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 (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_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_sideb__ac0_pins[][2] = {
|
|
// 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 (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_host__c_device_sidea__ac0_pins[][2] = {
|
|
// 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 (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_host__c_device_sideb__ac0_pins[][2] = {
|
|
// 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 (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
|
|
static const uint8_t usb__a_device__c_host_sidea__ac0_pins[][2] = {
|
|
// 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 (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_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[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[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_device__c_host_sideb__ac0_pins[][2] = {
|
|
// 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 (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_device__c_device_sidea__ac0_pins[][2] = {
|
|
// 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 (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_device__c_device_sideb__ac0_pins[][2] = {
|
|
// 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 (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
|
|
/** USB type A to type C USB 2.0 cable pin pairs
|
|
* @implements AC2-3 from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
|
|
*/
|
|
static const uint8_t usb__a_host__c_host_sidea__ac2_pins[][2] = {
|
|
// A internal connections
|
|
{usb_a_host_pins[0], usb_a_host_pins[4]}, // shield, GND
|
|
// 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 (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_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_sideb__ac2_pins[][2] = {
|
|
// A internal connections
|
|
{usb_a_host_pins[0], usb_a_host_pins[4]}, // shield, GND
|
|
// 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 (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_host__c_device_sidea__ac2_pins[][2] = {
|
|
// A internal connections
|
|
{usb_a_host_pins[0], usb_a_host_pins[4]}, // shield, GND
|
|
// 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 (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_host__c_device_sideb__ac2_pins[][2] = {
|
|
// A internal connections
|
|
{usb_a_host_pins[0], usb_a_host_pins[4]}, // shield, GND
|
|
// 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 (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_device__c_host_sidea__ac2_pins[][2] = {
|
|
// A internal connections
|
|
{usb_a_device_pins[0], usb_a_device_pins[4]}, // shield, GND
|
|
// 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 (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_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[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[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_device__c_host_sideb__ac2_pins[][2] = {
|
|
// A internal connections
|
|
{usb_a_device_pins[0], usb_a_device_pins[4]}, // shield, GND
|
|
// 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 (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_host_sideb_pins[5], usb_c_host_sideb_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_device__c_device_sidea__ac2_pins[][2] = {
|
|
// A internal connections
|
|
{usb_a_device_pins[0], usb_a_device_pins[4]}, // shield, GND
|
|
// 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 (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_device_sidea_pins[5], usb_c_device_sidea_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
static const uint8_t usb__a_device__c_device_sideb__ac2_pins[][2] = {
|
|
// A internal connections
|
|
{usb_a_device_pins[0], usb_a_device_pins[4]}, // shield, GND
|
|
// 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 (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[9]}, // CC1, A9 VBUS (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[16]}, // CC1, B9 VBUS (56kO)
|
|
{usb_c_device_sideb_pins[5], usb_c_device_sideb_pins[21]}, // CC1, B4 VBUS (56kO)
|
|
// A-C connections
|
|
{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[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[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (56kO)
|
|
};
|
|
|
|
/** USB type A to type C USB 3.1 cable pin pairs
|
|
* @implements AC3G2-3 from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
|
|
*/
|
|
static const uint8_t usb__a_host__c_host_sidea__ac3_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_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_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[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (5.1 kO)
|
|
// A-C connections, data
|
|
{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[9], usb_c_host_sidea_pins[2]}, // RX+, A2 TXp1
|
|
{usb_a_host_pins[8], usb_c_host_sidea_pins[3]}, // RX-, A3 TXn1
|
|
{usb_a_host_pins[6], usb_c_host_sidea_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_a_host_pins[5], usb_c_host_sidea_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__a_host__c_host_sideb__ac3_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]}, // RX+, A2 TXp1
|
|
{usb_a_host_pins[8], usb_c_host_sideb_pins[3]}, // RX-, A3 TXn1
|
|
{usb_a_host_pins[6], usb_c_host_sideb_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_a_host_pins[5], usb_c_host_sideb_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__a_host__c_device_sidea__ac3_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]}, // RX+, A2 TXp1
|
|
{usb_a_host_pins[8], usb_c_device_sidea_pins[3]}, // RX-, A3 TXn1
|
|
{usb_a_host_pins[6], usb_c_device_sidea_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_a_host_pins[5], usb_c_device_sidea_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__a_host__c_device_sideb__ac3_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]}, // RX+, A2 TXp1
|
|
{usb_a_host_pins[8], usb_c_device_sideb_pins[3]}, // RX-, A3 TXn1
|
|
{usb_a_host_pins[6], usb_c_device_sideb_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_a_host_pins[5], usb_c_device_sideb_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__a_device__c_host_sidea__ac3_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]}, // RX+, A2 TXp1
|
|
{usb_a_device_pins[8], usb_c_host_sidea_pins[3]}, // RX-, A3 TXn1
|
|
{usb_a_device_pins[6], usb_c_host_sidea_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_a_device_pins[5], usb_c_host_sidea_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__a_device__c_host_sideb__ac3_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]}, // RX+, A2 TXp1
|
|
{usb_a_device_pins[8], usb_c_host_sideb_pins[3]}, // RX-, A3 TXn1
|
|
{usb_a_device_pins[6], usb_c_host_sideb_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_a_device_pins[5], usb_c_host_sideb_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__a_device__c_device_sidea__ac3_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]}, // RX+, A2 TXp1
|
|
{usb_a_device_pins[8], usb_c_device_sidea_pins[3]}, // RX-, A3 TXn1
|
|
{usb_a_device_pins[6], usb_c_device_sidea_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_a_device_pins[5], usb_c_device_sidea_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__a_device__c_device_sideb__ac3_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]}, // RX+, A2 TXp1
|
|
{usb_a_device_pins[8], usb_c_device_sideb_pins[3]}, // RX-, A3 TXn1
|
|
{usb_a_device_pins[6], usb_c_device_sideb_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_a_device_pins[5], usb_c_device_sideb_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
|
|
/** list of connectors for C-B cables (using C host connector) */
|
|
static const struct usb_connector_t* usb_c_host_b_device_connectors[] = {
|
|
&usb_c_host_connector,
|
|
&usb_b_device_connector,
|
|
};
|
|
|
|
/** list of connectors for C-B cables (using C device connector) */
|
|
static const struct usb_connector_t* usb_c_device_b_device_connectors[] = {
|
|
&usb_c_device_connector,
|
|
&usb_b_device_connector,
|
|
};
|
|
|
|
/** USB type C to type B USB 2.0 cable pin pairs
|
|
* @implements CB2-3 from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
|
|
*/
|
|
static const uint8_t usb__c_host_sidea__b_device__cb2_pins[][2] = {
|
|
// B internal connections
|
|
{usb_b_device_pins[0], usb_b_device_pins[4]}, // shield, GND
|
|
// 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)
|
|
// B-C connections
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[0]}, // shield, shield
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[0]}, // GND, shield
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_b_device_pins[2], usb_c_host_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_b_device_pins[3], usb_c_host_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
static const uint8_t usb__c_host_sideb__b_device__cb2_pins[][2] = {
|
|
// B internal connections
|
|
{usb_b_device_pins[0], usb_b_device_pins[4]}, // shield, GND
|
|
// 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)
|
|
// B-C connections
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[0]}, // shield, shield
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[0]}, // GND, shield
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_b_device_pins[2], usb_c_host_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_b_device_pins[3], usb_c_host_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
static const uint8_t usb__c_device_sidea__b_device__cb2_pins[][2] = {
|
|
// B internal connections
|
|
{usb_b_device_pins[0], usb_b_device_pins[4]}, // shield, GND
|
|
// 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)
|
|
// B-C connections
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[0]}, // GND, shield
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_b_device_pins[2], usb_c_device_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_b_device_pins[3], usb_c_device_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
static const uint8_t usb__c_device_sideb__b_device__cb2_pins[][2] = {
|
|
// B internal connections
|
|
{usb_b_device_pins[0], usb_b_device_pins[4]}, // shield, GND
|
|
// 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)
|
|
// B-C connections
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[0]}, // GND, shield
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_b_device_pins[2], usb_c_device_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_b_device_pins[3], usb_c_device_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
|
|
/** USB type C to type B USB 3.1 cable pin pairs
|
|
* @implements CB3G2-3 from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
|
|
*/
|
|
static const uint8_t usb__c_host_sidea__b_device__cb3_pins[][2] = {
|
|
// B internal connections
|
|
{usb_b_device_pins[0], usb_b_device_pins[4]}, // shield, GND
|
|
{usb_b_device_pins[0], usb_b_device_pins[7]}, // shield, GND_DRAIN
|
|
{usb_b_device_pins[4], usb_b_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)
|
|
// B-C connections, GND and VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[0]}, // shield, shield
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_b_device_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[0]}, // GND, shield
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_b_device_pins[4], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_b_device_pins[7], usb_c_host_sidea_pins[0]}, // GND_DRAIN, shield
|
|
{usb_b_device_pins[7], usb_c_host_sidea_pins[1]}, // GND_DRAIN, A1 GND
|
|
{usb_b_device_pins[7], usb_c_host_sidea_pins[12]}, // GND_DARIN, A12 GND
|
|
{usb_b_device_pins[7], usb_c_host_sidea_pins[12 + 12]}, // GND_DRAIN, B12 GND
|
|
{usb_b_device_pins[7], usb_c_host_sidea_pins[12 + 1]}, // GND_DRAIN, B1 GND
|
|
{usb_b_device_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (5.1 kO)
|
|
// B-C connections, data
|
|
{usb_b_device_pins[2], usb_c_host_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_b_device_pins[3], usb_c_host_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_b_device_pins[9], usb_c_host_sidea_pins[2]}, // RX+, A2 TXp1
|
|
{usb_b_device_pins[8], usb_c_host_sidea_pins[3]}, // RX-, A3 TXn1
|
|
{usb_b_device_pins[6], usb_c_host_sidea_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_b_device_pins[5], usb_c_host_sidea_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__c_host_sideb__b_device__cb3_pins[][2] = {
|
|
// B internal connections
|
|
{usb_b_device_pins[0], usb_b_device_pins[4]}, // shield, GND
|
|
{usb_b_device_pins[0], usb_b_device_pins[7]}, // shield, GND_DRAIN
|
|
{usb_b_device_pins[4], usb_b_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)
|
|
// B-C connections, GND and VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[0]}, // shield, shield
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_b_device_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[0]}, // GND, shield
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_b_device_pins[4], usb_c_host_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_b_device_pins[7], usb_c_host_sideb_pins[0]}, // GND_DRAIN, shield
|
|
{usb_b_device_pins[7], usb_c_host_sideb_pins[1]}, // GND_DRAIN, A1 GND
|
|
{usb_b_device_pins[7], usb_c_host_sideb_pins[12]}, // GND_DARIN, A12 GND
|
|
{usb_b_device_pins[7], usb_c_host_sideb_pins[12 + 12]}, // GND_DRAIN, B12 GND
|
|
{usb_b_device_pins[7], usb_c_host_sideb_pins[12 + 1]}, // GND_DRAIN, B1 GND
|
|
{usb_b_device_pins[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (5.1 kO)
|
|
// B-C connections, data
|
|
{usb_b_device_pins[2], usb_c_host_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_b_device_pins[3], usb_c_host_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_b_device_pins[9], usb_c_host_sideb_pins[2]}, // RX+, A2 TXp1
|
|
{usb_b_device_pins[8], usb_c_host_sideb_pins[3]}, // RX-, A3 TXn1
|
|
{usb_b_device_pins[6], usb_c_host_sideb_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_b_device_pins[5], usb_c_host_sideb_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__c_device_sidea__b_device__cb3_pins[][2] = {
|
|
// B internal connections
|
|
{usb_b_device_pins[0], usb_b_device_pins[4]}, // shield, GND
|
|
{usb_b_device_pins[0], usb_b_device_pins[7]}, // shield, GND_DRAIN
|
|
{usb_b_device_pins[4], usb_b_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)
|
|
// B-C connections, GND and VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_b_device_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[0]}, // GND, shield
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_b_device_pins[4], usb_c_device_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_b_device_pins[7], usb_c_device_sidea_pins[0]}, // GND_DRAIN, shield
|
|
{usb_b_device_pins[7], usb_c_device_sidea_pins[1]}, // GND_DRAIN, A1 GND
|
|
{usb_b_device_pins[7], usb_c_device_sidea_pins[12]}, // GND_DARIN, A12 GND
|
|
{usb_b_device_pins[7], usb_c_device_sidea_pins[12 + 12]}, // GND_DRAIN, B12 GND
|
|
{usb_b_device_pins[7], usb_c_device_sidea_pins[12 + 1]}, // GND_DRAIN, B1 GND
|
|
{usb_b_device_pins[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (5.1 kO)
|
|
// B-C connections, data
|
|
{usb_b_device_pins[2], usb_c_device_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_b_device_pins[3], usb_c_device_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_b_device_pins[9], usb_c_device_sidea_pins[2]}, // RX+, A2 TXp1
|
|
{usb_b_device_pins[8], usb_c_device_sidea_pins[3]}, // RX-, A3 TXn1
|
|
{usb_b_device_pins[6], usb_c_device_sidea_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_b_device_pins[5], usb_c_device_sidea_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__c_device_sideb__b_device__cb3_pins[][2] = {
|
|
// B internal connections
|
|
{usb_b_device_pins[0], usb_b_device_pins[4]}, // shield, GND
|
|
{usb_b_device_pins[0], usb_b_device_pins[7]}, // shield, GND_DRAIN
|
|
{usb_b_device_pins[4], usb_b_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)
|
|
// B-C connections, GND and VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_b_device_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[0]}, // GND, shield
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_b_device_pins[4], usb_c_device_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_b_device_pins[7], usb_c_device_sideb_pins[0]}, // GND_DRAIN, shield
|
|
{usb_b_device_pins[7], usb_c_device_sideb_pins[1]}, // GND_DRAIN, A1 GND
|
|
{usb_b_device_pins[7], usb_c_device_sideb_pins[12]}, // GND_DARIN, A12 GND
|
|
{usb_b_device_pins[7], usb_c_device_sideb_pins[12 + 12]}, // GND_DRAIN, B12 GND
|
|
{usb_b_device_pins[7], usb_c_device_sideb_pins[12 + 1]}, // GND_DRAIN, B1 GND
|
|
{usb_b_device_pins[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (5.1 kO)
|
|
// B-C connections, data
|
|
{usb_b_device_pins[2], usb_c_device_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_b_device_pins[3], usb_c_device_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_b_device_pins[9], usb_c_device_sideb_pins[2]}, // RX+, A2 TXp1
|
|
{usb_b_device_pins[8], usb_c_device_sideb_pins[3]}, // RX-, A3 TXn1
|
|
{usb_b_device_pins[6], usb_c_device_sideb_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_b_device_pins[5], usb_c_device_sideb_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
|
|
/** list of connectors for C-miniB cables (using C host connector) */
|
|
static const struct usb_connector_t* usb_c_host_minib_device_connectors[] = {
|
|
&usb_c_host_connector,
|
|
&usb_minib_device_connector,
|
|
};
|
|
|
|
/** list of connectors for C-miniB cables (using C device connector) */
|
|
static const struct usb_connector_t* usb_c_device_minib_device_connectors[] = {
|
|
&usb_c_device_connector,
|
|
&usb_minib_device_connector,
|
|
};
|
|
|
|
/** USB type C to type mini-B USB 2.0 cable pin pairs
|
|
* @implements CmB2 from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
|
|
*/
|
|
static const uint8_t usb__c_host_sidea__minib_device__cminib2_pins[][2] = {
|
|
// mini-B internal connections
|
|
{usb_minib_device_pins[0], usb_minib_device_pins[5]}, // shield, GND
|
|
// 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)
|
|
// mini-B-C connections
|
|
{usb_minib_device_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_minib_device_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_minib_device_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_minib_device_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_minib_device_pins[0], usb_c_host_sidea_pins[0]}, // shield, shield
|
|
{usb_minib_device_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_minib_device_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_minib_device_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_minib_device_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_minib_device_pins[5], usb_c_host_sidea_pins[0]}, // GND, shield
|
|
{usb_minib_device_pins[5], usb_c_host_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_minib_device_pins[5], usb_c_host_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_minib_device_pins[5], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_minib_device_pins[5], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_minib_device_pins[2], usb_c_host_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_minib_device_pins[3], usb_c_host_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_minib_device_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
static const uint8_t usb__c_host_sideb__minib_device__cminib2_pins[][2] = {
|
|
// mini-B internal connections
|
|
{usb_minib_device_pins[0], usb_minib_device_pins[5]}, // shield, GND
|
|
// 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)
|
|
// mini-B-C connections
|
|
{usb_minib_device_pins[1], usb_c_host_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_minib_device_pins[1], usb_c_host_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_minib_device_pins[1], usb_c_host_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_minib_device_pins[1], usb_c_host_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_minib_device_pins[0], usb_c_host_sideb_pins[0]}, // shield, shield
|
|
{usb_minib_device_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_minib_device_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_minib_device_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_minib_device_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_minib_device_pins[5], usb_c_host_sideb_pins[0]}, // GND, shield
|
|
{usb_minib_device_pins[5], usb_c_host_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_minib_device_pins[5], usb_c_host_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_minib_device_pins[5], usb_c_host_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_minib_device_pins[5], usb_c_host_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_minib_device_pins[2], usb_c_host_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_minib_device_pins[3], usb_c_host_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_minib_device_pins[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
static const uint8_t usb__c_device_sidea__minib_device__cminib2_pins[][2] = {
|
|
// mini-B internal connections
|
|
{usb_minib_device_pins[0], usb_minib_device_pins[5]}, // shield, GND
|
|
// 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)
|
|
// mini-B-C connections
|
|
{usb_minib_device_pins[1], usb_c_device_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_minib_device_pins[1], usb_c_device_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_minib_device_pins[1], usb_c_device_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_minib_device_pins[1], usb_c_device_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_minib_device_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
|
|
{usb_minib_device_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_minib_device_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_minib_device_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_minib_device_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_minib_device_pins[5], usb_c_device_sidea_pins[0]}, // GND, shield
|
|
{usb_minib_device_pins[5], usb_c_device_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_minib_device_pins[5], usb_c_device_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_minib_device_pins[5], usb_c_device_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_minib_device_pins[5], usb_c_device_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_minib_device_pins[2], usb_c_device_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_minib_device_pins[3], usb_c_device_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_minib_device_pins[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
static const uint8_t usb__c_device_sideb__minib_device__cminib2_pins[][2] = {
|
|
// mini-B internal connections
|
|
{usb_minib_device_pins[0], usb_minib_device_pins[5]}, // shield, GND
|
|
// 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)
|
|
// mini-B-C connections
|
|
{usb_minib_device_pins[1], usb_c_device_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_minib_device_pins[1], usb_c_device_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_minib_device_pins[1], usb_c_device_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_minib_device_pins[1], usb_c_device_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_minib_device_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
|
|
{usb_minib_device_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_minib_device_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_minib_device_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_minib_device_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_minib_device_pins[5], usb_c_device_sideb_pins[0]}, // GND, shield
|
|
{usb_minib_device_pins[5], usb_c_device_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_minib_device_pins[5], usb_c_device_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_minib_device_pins[5], usb_c_device_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_minib_device_pins[5], usb_c_device_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_minib_device_pins[2], usb_c_device_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_minib_device_pins[3], usb_c_device_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_minib_device_pins[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
|
|
/** list of connectors for C-miniB cables (using C host connector) */
|
|
static const struct usb_connector_t* usb_c_host_microb_device_connectors[] = {
|
|
&usb_c_host_connector,
|
|
&usb_microb_device_connector,
|
|
};
|
|
|
|
/** list of connectors for C-miniB cables (using C device connector) */
|
|
static const struct usb_connector_t* usb_c_device_microb_device_connectors[] = {
|
|
&usb_c_device_connector,
|
|
&usb_microb_device_connector,
|
|
};
|
|
|
|
/** USB type C to type micro-B USB 2.0 cable pin pairs
|
|
* @implements CµB2-3 from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
|
|
*/
|
|
static const uint8_t usb__c_host_sidea__microb_device__cmicrob2_pins[][2] = {
|
|
// mini-B internal connections
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
|
|
// 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)
|
|
// mini-B-C connections
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[0]}, // shield, shield
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[0]}, // GND, shield
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_microb_device_pins[2], usb_c_host_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_microb_device_pins[3], usb_c_host_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
static const uint8_t usb__c_host_sideb__microb_device__cmicrob2_pins[][2] = {
|
|
// mini-B internal connections
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
|
|
// 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)
|
|
// mini-B-C connections
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[0]}, // shield, shield
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[0]}, // GND, shield
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_microb_device_pins[2], usb_c_host_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_microb_device_pins[3], usb_c_host_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
static const uint8_t usb__c_device_sidea__microb_device__cmicrob2_pins[][2] = {
|
|
// mini-B internal connections
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
|
|
// 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)
|
|
// mini-B-C connections
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[0]}, // GND, shield
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_microb_device_pins[2], usb_c_device_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_microb_device_pins[3], usb_c_device_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
static const uint8_t usb__c_device_sideb__microb_device__cmicrob2_pins[][2] = {
|
|
// mini-B internal connections
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
|
|
// 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)
|
|
// mini-B-C connections
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[0]}, // GND, shield
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_microb_device_pins[2], usb_c_device_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_microb_device_pins[3], usb_c_device_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (5.1kO)
|
|
};
|
|
|
|
/** USB type C to type micro-B USB 3.1 Gen 2 cable pin pairs
|
|
* @implements CµB3G2-3 from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
|
|
*/
|
|
static const uint8_t usb__c_host_sidea__microb_device__cmicrob3_pins[][2] = {
|
|
// B internal connections
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[8]}, // shield, GND_DRAIN
|
|
{usb_microb_device_pins[5], usb_microb_device_pins[8]}, // 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)
|
|
// B-C connections, GND and VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[0]}, // shield, shield
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[0]}, // GND, shield
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_microb_device_pins[8], usb_c_host_sidea_pins[0]}, // GND_DRAIN, shield
|
|
{usb_microb_device_pins[8], usb_c_host_sidea_pins[1]}, // GND_DRAIN, A1 GND
|
|
{usb_microb_device_pins[8], usb_c_host_sidea_pins[12]}, // GND_DARIN, A12 GND
|
|
{usb_microb_device_pins[8], usb_c_host_sidea_pins[12 + 12]}, // GND_DRAIN, B12 GND
|
|
{usb_microb_device_pins[8], usb_c_host_sidea_pins[12 + 1]}, // GND_DRAIN, B1 GND
|
|
{usb_microb_device_pins[1], usb_c_host_sidea_pins[5]}, // VBUS - A5 CC1 (5.1 kO)
|
|
// B-C connections, data
|
|
{usb_microb_device_pins[2], usb_c_host_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_microb_device_pins[3], usb_c_host_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_microb_device_pins[10], usb_c_host_sidea_pins[2]}, // RX+, A2 TXp1
|
|
{usb_microb_device_pins[9], usb_c_host_sidea_pins[3]}, // RX-, A3 TXn1
|
|
{usb_microb_device_pins[7], usb_c_host_sidea_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_microb_device_pins[6], usb_c_host_sidea_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__c_host_sideb__microb_device__cmicrob3_pins[][2] = {
|
|
// B internal connections
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[8]}, // shield, GND_DRAIN
|
|
{usb_microb_device_pins[5], usb_microb_device_pins[8]}, // 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)
|
|
// B-C connections, GND and VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[0]}, // shield, shield
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_microb_device_pins[0], usb_c_host_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[0]}, // GND, shield
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_microb_device_pins[5], usb_c_host_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_microb_device_pins[8], usb_c_host_sideb_pins[0]}, // GND_DRAIN, shield
|
|
{usb_microb_device_pins[8], usb_c_host_sideb_pins[1]}, // GND_DRAIN, A1 GND
|
|
{usb_microb_device_pins[8], usb_c_host_sideb_pins[12]}, // GND_DARIN, A12 GND
|
|
{usb_microb_device_pins[8], usb_c_host_sideb_pins[12 + 12]}, // GND_DRAIN, B12 GND
|
|
{usb_microb_device_pins[8], usb_c_host_sideb_pins[12 + 1]}, // GND_DRAIN, B1 GND
|
|
{usb_microb_device_pins[1], usb_c_host_sideb_pins[5]}, // VBUS - A5 CC1 (5.1 kO)
|
|
// B-C connections, data
|
|
{usb_microb_device_pins[2], usb_c_host_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_microb_device_pins[3], usb_c_host_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_microb_device_pins[10], usb_c_host_sideb_pins[2]}, // RX+, A2 TXp1
|
|
{usb_microb_device_pins[9], usb_c_host_sideb_pins[3]}, // RX-, A3 TXn1
|
|
{usb_microb_device_pins[7], usb_c_host_sideb_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_microb_device_pins[6], usb_c_host_sideb_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__c_device_sidea__microb_device__cmicrob3_pins[][2] = {
|
|
// B internal connections
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[8]}, // shield, GND_DRAIN
|
|
{usb_microb_device_pins[5], usb_microb_device_pins[8]}, // 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)
|
|
// B-C connections, GND and VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[0]}, // GND, shield
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[1]}, // GND, A1 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[12]}, // GND, A12 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sidea_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_microb_device_pins[8], usb_c_device_sidea_pins[0]}, // GND_DRAIN, shield
|
|
{usb_microb_device_pins[8], usb_c_device_sidea_pins[1]}, // GND_DRAIN, A1 GND
|
|
{usb_microb_device_pins[8], usb_c_device_sidea_pins[12]}, // GND_DARIN, A12 GND
|
|
{usb_microb_device_pins[8], usb_c_device_sidea_pins[12 + 12]}, // GND_DRAIN, B12 GND
|
|
{usb_microb_device_pins[8], usb_c_device_sidea_pins[12 + 1]}, // GND_DRAIN, B1 GND
|
|
{usb_microb_device_pins[1], usb_c_device_sidea_pins[5]}, // VBUS - A5 CC1 (5.1 kO)
|
|
// B-C connections, data
|
|
{usb_microb_device_pins[2], usb_c_device_sidea_pins[7]}, // D-, A7 Dn1
|
|
{usb_microb_device_pins[3], usb_c_device_sidea_pins[6]}, // D+, A6 Dp1
|
|
{usb_microb_device_pins[10], usb_c_device_sidea_pins[2]}, // RX+, A2 TXp1
|
|
{usb_microb_device_pins[9], usb_c_device_sidea_pins[3]}, // RX-, A3 TXn1
|
|
{usb_microb_device_pins[7], usb_c_device_sidea_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_microb_device_pins[6], usb_c_device_sidea_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
static const uint8_t usb__c_device_sideb__microb_device__cmicrob3_pins[][2] = {
|
|
// B internal connections
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[5]}, // shield, GND
|
|
{usb_microb_device_pins[0], usb_microb_device_pins[8]}, // shield, GND_DRAIN
|
|
{usb_microb_device_pins[5], usb_microb_device_pins[8]}, // 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)
|
|
// B-C connections, GND and VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[4]}, // VBUS, A4 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[9]}, // VBUS, A9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[12 + 9]}, // VBUS, B9 VBUS
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[12 + 4]}, // VBUS, B4 VBUS
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_microb_device_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[0]}, // GND, shield
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[1]}, // GND, A1 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[12]}, // GND, A12 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[12 + 12]}, // GND, B12 GND
|
|
{usb_microb_device_pins[5], usb_c_device_sideb_pins[12 + 1]}, // GND, B1 GND
|
|
{usb_microb_device_pins[8], usb_c_device_sideb_pins[0]}, // GND_DRAIN, shield
|
|
{usb_microb_device_pins[8], usb_c_device_sideb_pins[1]}, // GND_DRAIN, A1 GND
|
|
{usb_microb_device_pins[8], usb_c_device_sideb_pins[12]}, // GND_DARIN, A12 GND
|
|
{usb_microb_device_pins[8], usb_c_device_sideb_pins[12 + 12]}, // GND_DRAIN, B12 GND
|
|
{usb_microb_device_pins[8], usb_c_device_sideb_pins[12 + 1]}, // GND_DRAIN, B1 GND
|
|
{usb_microb_device_pins[1], usb_c_device_sideb_pins[5]}, // VBUS - A5 CC1 (5.1 kO)
|
|
// B-C connections, data
|
|
{usb_microb_device_pins[2], usb_c_device_sideb_pins[7]}, // D-, A7 Dn1
|
|
{usb_microb_device_pins[3], usb_c_device_sideb_pins[6]}, // D+, A6 Dp1
|
|
{usb_microb_device_pins[10], usb_c_device_sideb_pins[2]}, // RX+, A2 TXp1
|
|
{usb_microb_device_pins[9], usb_c_device_sideb_pins[3]}, // RX-, A3 TXn1
|
|
{usb_microb_device_pins[7], usb_c_device_sideb_pins[12 + 11]}, // TX+, B11 RXp1
|
|
{usb_microb_device_pins[6], usb_c_device_sideb_pins[12 + 10]}, // TX-, B10 RXn1
|
|
};
|
|
|
|
/** list of connectors for C-C cables */
|
|
static const struct usb_connector_t* usb_c_c_connectors[] = {
|
|
&usb_c_host_connector,
|
|
&usb_c_device_connector,
|
|
};
|
|
|
|
/** USB type C to type C USB 2.0 cable pin pairs
|
|
* @implements CC2-3 and CC2-5 from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
|
|
*/
|
|
static const uint8_t usb__c_host_sidea__c_device_sidea__cc2_pins[][2] = {
|
|
// C host side 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
|
|
// C device side 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
|
|
// C-C connections, GND and VBUS
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[0]}, // A1 GND, shield
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[1]}, // A1 GND, A1 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[12]}, // A1 GND, A12 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[12 + 12]}, // A1 GND, B12 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[12 + 1]}, // A1 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[0]}, // A12 GND, shield
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[1]}, // A12 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[12]}, // A12 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[12 + 12]}, // A12 GND, B12 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[12 + 1]}, // A12 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[0]}, // B1 GND, shield
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[1]}, // B1 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[12]}, // B1 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[12 + 1]}, // B1 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[12 + 12]}, // B1 GND, B12 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[0]}, // B12 GND, shield
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[1]}, // B12 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[12]}, // B12 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[12 + 1]}, // B12 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[12 + 12]}, // B12 GND, B12 GND
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sidea_pins[4]}, // A4 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sidea_pins[9]}, // A4 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sidea_pins[4]}, // A9 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sidea_pins[9]}, // A9 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sidea_pins[4]}, // B4 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sidea_pins[9]}, // B4 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sidea_pins[12 + 4]}, // B4 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sidea_pins[12 + 9]}, // B4 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sidea_pins[4]}, // B9 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sidea_pins[9]}, // B9 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sidea_pins[12 + 9]}, // B9 VBUS, B9 VBUS
|
|
// C-C data connections
|
|
{usb_c_host_sidea_pins[5], usb_c_device_sidea_pins[5]}, // A5 CC1, A5 CC1 (CC)
|
|
//{usb_c_host_sidea_pins[12 + 5], usb_c_device_sidea_pins[12 + 5]}, // B5 CC2, B5 CC2 (VCONN)
|
|
{usb_c_host_sidea_pins[6], usb_c_device_sidea_pins[6]}, // A6 Dp1, A6 Dp1
|
|
{usb_c_host_sidea_pins[7], usb_c_device_sidea_pins[7]}, // A7 Dn1, A7 Dn1
|
|
};
|
|
static const uint8_t usb__c_host_sidea__c_device_sideb__cc2_pins[][2] = {
|
|
// C host side 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
|
|
// C device side 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
|
|
// C-C connections, GND and VBUS
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[0]}, // A1 GND, shield
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[1]}, // A1 GND, A1 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[12]}, // A1 GND, A12 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[12 + 12]}, // A1 GND, B12 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[12 + 1]}, // A1 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[0]}, // A12 GND, shield
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[1]}, // A12 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[12]}, // A12 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[12 + 12]}, // A12 GND, B12 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[12 + 1]}, // A12 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[0]}, // B1 GND, shield
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[1]}, // B1 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[12]}, // B1 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[12 + 1]}, // B1 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[12 + 12]}, // B1 GND, B12 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[0]}, // B12 GND, shield
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[1]}, // B12 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[12]}, // B12 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[12 + 1]}, // B12 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[12 + 12]}, // B12 GND, B12 GND
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sideb_pins[4]}, // A4 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sideb_pins[9]}, // A4 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sideb_pins[4]}, // A9 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sideb_pins[9]}, // A9 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sideb_pins[4]}, // B4 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sideb_pins[9]}, // B4 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sideb_pins[12 + 4]}, // B4 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sideb_pins[12 + 9]}, // B4 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sideb_pins[4]}, // B9 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sideb_pins[9]}, // B9 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sideb_pins[12 + 9]}, // B9 VBUS, B9 VBUS
|
|
// C-C data connections
|
|
{usb_c_host_sidea_pins[5], usb_c_device_sideb_pins[5]}, // A5 CC1, A5 CC1 (CC)
|
|
//{usb_c_host_sidea_pins[12 + 5], usb_c_device_sideb_pins[12 + 5]}, // B5 CC2, B5 CC2 (VCONN)
|
|
{usb_c_host_sidea_pins[6], usb_c_device_sideb_pins[6]}, // A6 Dp1, A6 Dp1
|
|
{usb_c_host_sidea_pins[7], usb_c_device_sideb_pins[7]}, // A7 Dn1, A7 Dn1
|
|
};
|
|
static const uint8_t usb__c_host_sideb__c_device_sidea__cc2_pins[][2] = {
|
|
// C host side 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
|
|
// C device side 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
|
|
// C-C connections, GND and VBUS
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[0]}, // A1 GND, shield
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[1]}, // A1 GND, A1 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[12]}, // A1 GND, A12 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[12 + 12]}, // A1 GND, B12 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[12 + 1]}, // A1 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[0]}, // A12 GND, shield
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[1]}, // A12 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[12]}, // A12 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[12 + 12]}, // A12 GND, B12 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[12 + 1]}, // A12 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[0]}, // B1 GND, shield
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[1]}, // B1 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[12]}, // B1 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[12 + 1]}, // B1 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[12 + 12]}, // B1 GND, B12 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[0]}, // B12 GND, shield
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[1]}, // B12 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[12]}, // B12 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[12 + 1]}, // B12 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[12 + 12]}, // B12 GND, B12 GND
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sidea_pins[4]}, // A4 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sidea_pins[9]}, // A4 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sidea_pins[4]}, // A9 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sidea_pins[9]}, // A9 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sidea_pins[4]}, // B4 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sidea_pins[9]}, // B4 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sidea_pins[12 + 4]}, // B4 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sidea_pins[12 + 9]}, // B4 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sidea_pins[4]}, // B9 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sidea_pins[9]}, // B9 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sidea_pins[12 + 9]}, // B9 VBUS, B9 VBUS
|
|
// C-C data connections
|
|
{usb_c_host_sideb_pins[5], usb_c_device_sidea_pins[5]}, // A5 CC1, A5 CC1 (CC)
|
|
//{usb_c_host_sideb_pins[12 + 5], usb_c_device_sidea_pins[12 + 5]}, // B5 CC2, B5 CC2 (VCONN)
|
|
{usb_c_host_sideb_pins[6], usb_c_device_sidea_pins[6]}, // A6 Dp1, A6 Dp1
|
|
{usb_c_host_sideb_pins[7], usb_c_device_sidea_pins[7]}, // A7 Dn1, A7 Dn1
|
|
};
|
|
static const uint8_t usb__c_host_sideb__c_device_sideb__cc2_pins[][2] = {
|
|
// C host side 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
|
|
// C device side 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
|
|
// C-C connections, GND and VBUS
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[0]}, // A1 GND, shield
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[1]}, // A1 GND, A1 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[12]}, // A1 GND, A12 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[12 + 12]}, // A1 GND, B12 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[12 + 1]}, // A1 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[0]}, // A12 GND, shield
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[1]}, // A12 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[12]}, // A12 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[12 + 12]}, // A12 GND, B12 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[12 + 1]}, // A12 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[0]}, // B1 GND, shield
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[1]}, // B1 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[12]}, // B1 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[12 + 1]}, // B1 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[12 + 12]}, // B1 GND, B12 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[0]}, // B12 GND, shield
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[1]}, // B12 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[12]}, // B12 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[12 + 1]}, // B12 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[12 + 12]}, // B12 GND, B12 GND
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sideb_pins[4]}, // A4 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sideb_pins[9]}, // A4 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sideb_pins[4]}, // A9 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sideb_pins[9]}, // A9 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sideb_pins[4]}, // B4 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sideb_pins[9]}, // B4 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sideb_pins[12 + 4]}, // B4 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sideb_pins[12 + 9]}, // B4 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sideb_pins[4]}, // B9 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sideb_pins[9]}, // B9 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sideb_pins[12 + 9]}, // B9 VBUS, B9 VBUS
|
|
// C-C data connections
|
|
{usb_c_host_sideb_pins[5], usb_c_device_sideb_pins[5]}, // A5 CC1, A5 CC1 (CC)
|
|
//{usb_c_host_sideb_pins[12 + 5], usb_c_device_sideb_pins[12 + 5]}, // B5 CC2, B5 CC2 (VCONN)
|
|
{usb_c_host_sideb_pins[6], usb_c_device_sideb_pins[6]}, // A6 Dp1, A6 Dp1
|
|
{usb_c_host_sideb_pins[7], usb_c_device_sideb_pins[7]}, // A7 Dn1, A7 Dn1
|
|
};
|
|
|
|
/** USB type C to type C full featured cable pin pairs
|
|
* @implements Full-Featured assembly from USB Type-C Cable and Connector Specification (https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-revision-20-august-2019)
|
|
*/
|
|
static const uint8_t usb__c_host_sidea__c_device_sidea__ff_pins[][2] = {
|
|
// C host side 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
|
|
// C device side 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
|
|
// C-C connections, GND and VBUS
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[0]}, // A1 GND, shield
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[1]}, // A1 GND, A1 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[12]}, // A1 GND, A12 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[12 + 12]}, // A1 GND, B12 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sidea_pins[12 + 1]}, // A1 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[0]}, // A12 GND, shield
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[1]}, // A12 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[12]}, // A12 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[12 + 12]}, // A12 GND, B12 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sidea_pins[12 + 1]}, // A12 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[0]}, // B1 GND, shield
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[1]}, // B1 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[12]}, // B1 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[12 + 1]}, // B1 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sidea_pins[12 + 12]}, // B1 GND, B12 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[0]}, // B12 GND, shield
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[1]}, // B12 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[12]}, // B12 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[12 + 1]}, // B12 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sidea_pins[12 + 12]}, // B12 GND, B12 GND
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sidea_pins[4]}, // A4 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sidea_pins[9]}, // A4 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sidea_pins[4]}, // A9 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sidea_pins[9]}, // A9 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sidea_pins[4]}, // B4 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sidea_pins[9]}, // B4 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sidea_pins[12 + 4]}, // B4 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sidea_pins[12 + 9]}, // B4 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sidea_pins[4]}, // B9 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sidea_pins[9]}, // B9 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sidea_pins[12 + 9]}, // B9 VBUS, B9 VBUS
|
|
// C-C data connections
|
|
{usb_c_host_sidea_pins[5], usb_c_device_sidea_pins[5]}, // A5 CC1, A5 CC1 (CC)
|
|
//{usb_c_host_sidea_pins[12 + 5], usb_c_device_sidea_pins[12 + 5]}, // B5 CC2, B5 CC2 (VCONN)
|
|
{usb_c_host_sidea_pins[6], usb_c_device_sidea_pins[6]}, // A6 Dp1, A6 Dp1
|
|
{usb_c_host_sidea_pins[7], usb_c_device_sidea_pins[7]}, // A7 Dn1, A7 Dn1
|
|
{usb_c_host_sidea_pins[2], usb_c_device_sidea_pins[12 + 11]}, // A2 TXp1, B11 RXp1
|
|
{usb_c_host_sidea_pins[3], usb_c_device_sidea_pins[12 + 10]}, // A3 TXn1, B10 RXn1
|
|
{usb_c_host_sidea_pins[12 + 11], usb_c_device_sidea_pins[2]}, // B11 RXp1, A2 TXp1
|
|
{usb_c_host_sidea_pins[12 + 10], usb_c_device_sidea_pins[3]}, // B10 RXn1, A3 TXn1
|
|
{usb_c_host_sidea_pins[12 + 2], usb_c_device_sidea_pins[11]}, // B2 TXp2, Q11 RXp2
|
|
{usb_c_host_sidea_pins[12 + 3], usb_c_device_sidea_pins[10]}, // B3 TXn2, A10 RXn2
|
|
{usb_c_host_sidea_pins[11], usb_c_device_sidea_pins[12 + 2]}, // A11 RXp2, B2 TXp2
|
|
{usb_c_host_sidea_pins[10], usb_c_device_sidea_pins[12 + 3]}, // A10 RXn2, B3 TXn2
|
|
{usb_c_host_sidea_pins[8], usb_c_device_sidea_pins[12 + 8]}, // A8 SBU1, B8 SBU2
|
|
{usb_c_host_sidea_pins[12 + 8], usb_c_device_sidea_pins[8]}, // B8 SBU2, A8 SBU1
|
|
};
|
|
static const uint8_t usb__c_host_sidea__c_device_sideb__ff_pins[][2] = {
|
|
// C host side 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
|
|
// C device side 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
|
|
// C-C connections, GND and VBUS
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_c_host_sidea_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[0]}, // A1 GND, shield
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[1]}, // A1 GND, A1 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[12]}, // A1 GND, A12 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[12 + 12]}, // A1 GND, B12 GND
|
|
{usb_c_host_sidea_pins[1], usb_c_device_sideb_pins[12 + 1]}, // A1 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[0]}, // A12 GND, shield
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[1]}, // A12 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[12]}, // A12 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[12 + 12]}, // A12 GND, B12 GND
|
|
{usb_c_host_sidea_pins[12], usb_c_device_sideb_pins[12 + 1]}, // A12 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[0]}, // B1 GND, shield
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[1]}, // B1 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[12]}, // B1 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[12 + 1]}, // B1 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 1], usb_c_device_sideb_pins[12 + 12]}, // B1 GND, B12 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[0]}, // B12 GND, shield
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[1]}, // B12 GND, A1 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[12]}, // B12 GND, A12 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[12 + 1]}, // B12 GND, B1 GND
|
|
{usb_c_host_sidea_pins[12 + 12], usb_c_device_sideb_pins[12 + 12]}, // B12 GND, B12 GND
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sideb_pins[4]}, // A4 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sideb_pins[9]}, // A4 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[4], usb_c_device_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sideb_pins[4]}, // A9 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sideb_pins[9]}, // A9 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[9], usb_c_device_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sideb_pins[4]}, // B4 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sideb_pins[9]}, // B4 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sideb_pins[12 + 4]}, // B4 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 4], usb_c_device_sideb_pins[12 + 9]}, // B4 VBUS, B9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sideb_pins[4]}, // B9 VBUS, A4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sideb_pins[9]}, // B9 VBUS, A9 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS
|
|
{usb_c_host_sidea_pins[12 + 9], usb_c_device_sideb_pins[12 + 9]}, // B9 VBUS, B9 VBUS
|
|
// C-C data connections
|
|
{usb_c_host_sidea_pins[5], usb_c_device_sideb_pins[5]}, // A5 CC1, A5 CC1 (CC)
|
|
//{usb_c_host_sidea_pins[12 + 5], usb_c_device_sideb_pins[12 + 5]}, // B5 CC2, B5 CC2 (VCONN)
|
|
{usb_c_host_sidea_pins[6], usb_c_device_sideb_pins[6]}, // A6 Dp1, A6 Dp1
|
|
{usb_c_host_sidea_pins[7], usb_c_device_sideb_pins[7]}, // A7 Dn1, A7 Dn1
|
|
{usb_c_host_sidea_pins[2], usb_c_device_sideb_pins[12 + 11]}, // A2 TXp1, B11 RXp1
|
|
{usb_c_host_sidea_pins[3], usb_c_device_sideb_pins[12 + 10]}, // A3 TXn1, B10 RXn1
|
|
{usb_c_host_sidea_pins[12 + 11], usb_c_device_sideb_pins[2]}, // B11 RXp1, A2 TXp1
|
|
{usb_c_host_sidea_pins[12 + 10], usb_c_device_sideb_pins[3]}, // B10 RXn1, A3 TXn1
|
|
{usb_c_host_sidea_pins[12 + 2], usb_c_device_sideb_pins[11]}, // B2 TXp2, Q11 RXp2
|
|
{usb_c_host_sidea_pins[12 + 3], usb_c_device_sideb_pins[10]}, // B3 TXn2, A10 RXn2
|
|
{usb_c_host_sidea_pins[11], usb_c_device_sideb_pins[12 + 2]}, // A11 RXp2, B2 TXp2
|
|
{usb_c_host_sidea_pins[10], usb_c_device_sideb_pins[12 + 3]}, // A10 RXn2, B3 TXn2
|
|
{usb_c_host_sidea_pins[8], usb_c_device_sideb_pins[12 + 8]}, // A8 SBU1, B8 SBU2
|
|
{usb_c_host_sidea_pins[12 + 8], usb_c_device_sideb_pins[8]}, // B8 SBU2, A8 SBU1
|
|
};
|
|
static const uint8_t usb__c_host_sideb__c_device_sidea__ff_pins[][2] = {
|
|
// C host side 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
|
|
// C device side 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
|
|
// C-C connections, GND and VBUS
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[0]}, // shield, shield
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[1]}, // shield, A1 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[12]}, // shield, A12 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sidea_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[0]}, // A1 GND, shield
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[1]}, // A1 GND, A1 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[12]}, // A1 GND, A12 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[12 + 12]}, // A1 GND, B12 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sidea_pins[12 + 1]}, // A1 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[0]}, // A12 GND, shield
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[1]}, // A12 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[12]}, // A12 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[12 + 12]}, // A12 GND, B12 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sidea_pins[12 + 1]}, // A12 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[0]}, // B1 GND, shield
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[1]}, // B1 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[12]}, // B1 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[12 + 1]}, // B1 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sidea_pins[12 + 12]}, // B1 GND, B12 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[0]}, // B12 GND, shield
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[1]}, // B12 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[12]}, // B12 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[12 + 1]}, // B12 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sidea_pins[12 + 12]}, // B12 GND, B12 GND
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sidea_pins[4]}, // A4 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sidea_pins[9]}, // A4 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sidea_pins[12 + 9]}, // A4 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sidea_pins[12 + 4]}, // A4 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sidea_pins[4]}, // A9 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sidea_pins[9]}, // A9 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sidea_pins[12 + 9]}, // A9 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sidea_pins[12 + 4]}, // A9 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sidea_pins[4]}, // B4 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sidea_pins[9]}, // B4 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sidea_pins[12 + 4]}, // B4 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sidea_pins[12 + 9]}, // B4 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sidea_pins[4]}, // B9 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sidea_pins[9]}, // B9 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sidea_pins[12 + 4]}, // B9 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sidea_pins[12 + 9]}, // B9 VBUS, B9 VBUS
|
|
// C-C data connections
|
|
{usb_c_host_sideb_pins[5], usb_c_device_sidea_pins[5]}, // A5 CC1, A5 CC1 (CC)
|
|
//{usb_c_host_sideb_pins[12 + 5], usb_c_device_sidea_pins[12 + 5]}, // B5 CC2, B5 CC2 (VCONN)
|
|
{usb_c_host_sideb_pins[6], usb_c_device_sidea_pins[6]}, // A6 Dp1, A6 Dp1
|
|
{usb_c_host_sideb_pins[7], usb_c_device_sidea_pins[7]}, // A7 Dn1, A7 Dn1
|
|
{usb_c_host_sideb_pins[2], usb_c_device_sidea_pins[12 + 11]}, // A2 TXp1, B11 RXp1
|
|
{usb_c_host_sideb_pins[3], usb_c_device_sidea_pins[12 + 10]}, // A3 TXn1, B10 RXn1
|
|
{usb_c_host_sideb_pins[12 + 11], usb_c_device_sidea_pins[2]}, // B11 RXp1, A2 TXp1
|
|
{usb_c_host_sideb_pins[12 + 10], usb_c_device_sidea_pins[3]}, // B10 RXn1, A3 TXn1
|
|
{usb_c_host_sideb_pins[12 + 2], usb_c_device_sidea_pins[11]}, // B2 TXp2, Q11 RXp2
|
|
{usb_c_host_sideb_pins[12 + 3], usb_c_device_sidea_pins[10]}, // B3 TXn2, A10 RXn2
|
|
{usb_c_host_sideb_pins[11], usb_c_device_sidea_pins[12 + 2]}, // A11 RXp2, B2 TXp2
|
|
{usb_c_host_sideb_pins[10], usb_c_device_sidea_pins[12 + 3]}, // A10 RXn2, B3 TXn2
|
|
{usb_c_host_sideb_pins[8], usb_c_device_sidea_pins[12 + 8]}, // A8 SBU1, B8 SBU2
|
|
{usb_c_host_sideb_pins[12 + 8], usb_c_device_sidea_pins[8]}, // B8 SBU2, A8 SBU1
|
|
};
|
|
static const uint8_t usb__c_host_sideb__c_device_sideb__ff_pins[][2] = {
|
|
// C host side 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
|
|
// C device side 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
|
|
// C-C connections, GND and VBUS
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[0]}, // shield, shield
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[1]}, // shield, A1 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[12]}, // shield, A12 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[12 + 12]}, // shield, B12 GND
|
|
{usb_c_host_sideb_pins[0], usb_c_device_sideb_pins[12 + 1]}, // shield, B1 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[0]}, // A1 GND, shield
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[1]}, // A1 GND, A1 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[12]}, // A1 GND, A12 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[12 + 12]}, // A1 GND, B12 GND
|
|
{usb_c_host_sideb_pins[1], usb_c_device_sideb_pins[12 + 1]}, // A1 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[0]}, // A12 GND, shield
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[1]}, // A12 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[12]}, // A12 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[12 + 12]}, // A12 GND, B12 GND
|
|
{usb_c_host_sideb_pins[12], usb_c_device_sideb_pins[12 + 1]}, // A12 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[0]}, // B1 GND, shield
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[1]}, // B1 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[12]}, // B1 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[12 + 1]}, // B1 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 1], usb_c_device_sideb_pins[12 + 12]}, // B1 GND, B12 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[0]}, // B12 GND, shield
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[1]}, // B12 GND, A1 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[12]}, // B12 GND, A12 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[12 + 1]}, // B12 GND, B1 GND
|
|
{usb_c_host_sideb_pins[12 + 12], usb_c_device_sideb_pins[12 + 12]}, // B12 GND, B12 GND
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sideb_pins[4]}, // A4 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sideb_pins[9]}, // A4 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sideb_pins[12 + 9]}, // A4 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[4], usb_c_device_sideb_pins[12 + 4]}, // A4 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sideb_pins[4]}, // A9 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sideb_pins[9]}, // A9 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sideb_pins[12 + 9]}, // A9 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[9], usb_c_device_sideb_pins[12 + 4]}, // A9 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sideb_pins[4]}, // B4 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sideb_pins[9]}, // B4 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sideb_pins[12 + 4]}, // B4 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 4], usb_c_device_sideb_pins[12 + 9]}, // B4 VBUS, B9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sideb_pins[4]}, // B9 VBUS, A4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sideb_pins[9]}, // B9 VBUS, A9 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sideb_pins[12 + 4]}, // B9 VBUS, B4 VBUS
|
|
{usb_c_host_sideb_pins[12 + 9], usb_c_device_sideb_pins[12 + 9]}, // B9 VBUS, B9 VBUS
|
|
// C-C data connections
|
|
{usb_c_host_sideb_pins[5], usb_c_device_sideb_pins[5]}, // A5 CC1, A5 CC1 (CC)
|
|
//{usb_c_host_sideb_pins[12 + 5], usb_c_device_sideb_pins[12 + 5]}, // B5 CC2, B5 CC2 (VCONN)
|
|
{usb_c_host_sideb_pins[6], usb_c_device_sideb_pins[6]}, // A6 Dp1, A6 Dp1
|
|
{usb_c_host_sideb_pins[7], usb_c_device_sideb_pins[7]}, // A7 Dn1, A7 Dn1
|
|
{usb_c_host_sideb_pins[2], usb_c_device_sideb_pins[12 + 11]}, // A2 TXp1, B11 RXp1
|
|
{usb_c_host_sideb_pins[3], usb_c_device_sideb_pins[12 + 10]}, // A3 TXn1, B10 RXn1
|
|
{usb_c_host_sideb_pins[12 + 11], usb_c_device_sideb_pins[2]}, // B11 RXp1, A2 TXp1
|
|
{usb_c_host_sideb_pins[12 + 10], usb_c_device_sideb_pins[3]}, // B10 RXn1, A3 TXn1
|
|
{usb_c_host_sideb_pins[12 + 2], usb_c_device_sideb_pins[11]}, // B2 TXp2, Q11 RXp2
|
|
{usb_c_host_sideb_pins[12 + 3], usb_c_device_sideb_pins[10]}, // B3 TXn2, A10 RXn2
|
|
{usb_c_host_sideb_pins[11], usb_c_device_sideb_pins[12 + 2]}, // A11 RXp2, B2 TXp2
|
|
{usb_c_host_sideb_pins[10], usb_c_device_sideb_pins[12 + 3]}, // A10 RXn2, B3 TXn2
|
|
{usb_c_host_sideb_pins[8], usb_c_device_sideb_pins[12 + 8]}, // A8 SBU1, B8 SBU2
|
|
{usb_c_host_sideb_pins[12 + 8], usb_c_device_sideb_pins[8]}, // B8 SBU2, A8 SBU1
|
|
};
|
|
|
|
const struct usb_cable_t usb_cables[] = {
|
|
// A-A
|
|
{
|
|
.name = "A-A power only",
|
|
.connectors_nb = LENGTH(usb_a_a_connectors),
|
|
.connectors = usb_a_a_connectors,
|
|
.pin_pairs_nb = LENGTH(usb_aa0_pins),
|
|
.pin_pairs = usb_aa0_pins,
|
|
},
|
|
{
|
|
.name = "A-A USB 2.0",
|
|
.connectors_nb = LENGTH(usb_a_a_connectors),
|
|
.connectors = usb_a_a_connectors,
|
|
.pin_pairs_nb = LENGTH(usb_aa2_pins),
|
|
.pin_pairs = usb_aa2_pins,
|
|
},
|
|
{
|
|
.name = "A-A USB 3.x",
|
|
.connectors_nb = LENGTH(usb_a_a_connectors),
|
|
.connectors = usb_a_a_connectors,
|
|
.pin_pairs_nb = LENGTH(usb_aa3_pins),
|
|
.pin_pairs = usb_aa3_pins,
|
|
},
|
|
// A (host) - B
|
|
{
|
|
.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__ab0_pins),
|
|
.pin_pairs = usb__a_host__b__ab0_pins,
|
|
},
|
|
{
|
|
.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__ab2_pins),
|
|
.pin_pairs = usb__a_host__b__ab2_pins,
|
|
},
|
|
{
|
|
.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__ab3_pins),
|
|
.pin_pairs = usb__a_host__b__ab3_pins,
|
|
},
|
|
// A (device) - B
|
|
{
|
|
.name = "A-B power only",
|
|
.connectors_nb = LENGTH(usb_a_host_b_connectors),
|
|
.connectors = usb_a_device_b_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_device__b__ab0_pins),
|
|
.pin_pairs = usb__a_device__b__ab0_pins,
|
|
},
|
|
{
|
|
.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__ab2_pins),
|
|
.pin_pairs = usb__a_device__b__ab2_pins,
|
|
},
|
|
{
|
|
.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__ab3_pins),
|
|
.pin_pairs = usb__a_device__b__ab3_pins,
|
|
},
|
|
// A + A - B
|
|
{
|
|
.name = "A+A-B USB 2.0",
|
|
.connectors_nb = LENGTH(usb_a_a_b_connectors),
|
|
.connectors = usb_a_a_b_connectors,
|
|
.pin_pairs_nb = LENGTH(usb_a_host_a_device_b_aab2_pins),
|
|
.pin_pairs = usb_a_host_a_device_b_aab2_pins,
|
|
},
|
|
{
|
|
.name = "A+A-B USB 2.0",
|
|
.connectors_nb = LENGTH(usb_a_a_b_connectors),
|
|
.connectors = usb_a_a_b_connectors,
|
|
.pin_pairs_nb = LENGTH(usb_a_device_a_host_b_aab2_pins),
|
|
.pin_pairs = usb_a_device_a_host_b_aab2_pins,
|
|
},
|
|
// A (host) - mini-B
|
|
{
|
|
.name = "A-miniB power",
|
|
.connectors_nb = LENGTH(usb_a_host_minib_connectors),
|
|
.connectors = usb_a_host_minib_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_host__minib__amb0_pins),
|
|
.pin_pairs = usb__a_host__minib__amb0_pins,
|
|
},
|
|
{
|
|
.name = "A-miniB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_a_host_minib_connectors),
|
|
.connectors = usb_a_host_minib_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_host__minib__amb2_pins),
|
|
.pin_pairs = usb__a_host__minib__amb2_pins,
|
|
},
|
|
// A (device) - mini-B
|
|
{
|
|
.name = "A-miniB power",
|
|
.connectors_nb = LENGTH(usb_a_device_minib_connectors),
|
|
.connectors = usb_a_device_minib_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_device__minib__amb0_pins),
|
|
.pin_pairs = usb__a_device__minib__amb0_pins,
|
|
},
|
|
{
|
|
.name = "A-miniB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_a_device_minib_connectors),
|
|
.connectors = usb_a_device_minib_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_device__minib__amb2_pins),
|
|
.pin_pairs = usb__a_device__minib__amb2_pins,
|
|
},
|
|
// A + A - mini-B
|
|
{
|
|
.name = "A+A-miniB 2.0",
|
|
.connectors_nb = LENGTH(usb_a_a_minib_connectors),
|
|
.connectors = usb_a_a_minib_connectors,
|
|
.pin_pairs_nb = LENGTH(usb_a_host_a_device_minib_aamb2_pins),
|
|
.pin_pairs = usb_a_host_a_device_minib_aamb2_pins,
|
|
},
|
|
{
|
|
.name = "A+A-miniB 2.0",
|
|
.connectors_nb = LENGTH(usb_a_a_minib_connectors),
|
|
.connectors = usb_a_a_minib_connectors,
|
|
.pin_pairs_nb = LENGTH(usb_a_device_a_host_minib_aamb2_pins),
|
|
.pin_pairs = usb_a_device_a_host_minib_aamb2_pins,
|
|
},
|
|
// A (host) - micro-B
|
|
{
|
|
.name = "A-microB power",
|
|
.connectors_nb = LENGTH(usb_a_host_microb_connectors),
|
|
.connectors = usb_a_host_microb_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_host__microb__aub0_pins),
|
|
.pin_pairs = usb__a_host__microb__aub0_pins,
|
|
},
|
|
{
|
|
.name = "A-microB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_a_host_microb_connectors),
|
|
.connectors = usb_a_host_microb_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_host__microb__aub2_pins),
|
|
.pin_pairs = usb__a_host__microb__aub2_pins,
|
|
},
|
|
{
|
|
.name = "A-microB USB 3.x",
|
|
.connectors_nb = LENGTH(usb_a_host_microb_connectors),
|
|
.connectors = usb_a_host_microb_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_host__microb__aub3_pins),
|
|
.pin_pairs = usb__a_host__microb__aub3_pins,
|
|
},
|
|
// A (device) - micro-B
|
|
{
|
|
.name = "A-microB power",
|
|
.connectors_nb = LENGTH(usb_a_device_microb_connectors),
|
|
.connectors = usb_a_device_microb_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_device__microb__aub0_pins),
|
|
.pin_pairs = usb__a_device__microb__aub0_pins,
|
|
},
|
|
{
|
|
.name = "A-microB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_a_device_microb_connectors),
|
|
.connectors = usb_a_device_microb_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_device__microb__aub2_pins),
|
|
.pin_pairs = usb__a_device__microb__aub2_pins,
|
|
},
|
|
{
|
|
.name = "A-microB USB 3.x",
|
|
.connectors_nb = LENGTH(usb_a_device_microb_connectors),
|
|
.connectors = usb_a_device_microb_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__a_device__microb__aub3_pins),
|
|
.pin_pairs = usb__a_device__microb__aub3_pins,
|
|
},
|
|
// C
|
|
{
|
|
.name = "C shunt",
|
|
.connectors_nb = LENGTH(usb_c_host_connectors),
|
|
.connectors = usb_c_host_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host__c_host__cshunt_pins),
|
|
.pin_pairs = usb__c_host__c_host__cshunt_pins,
|
|
},
|
|
{
|
|
.name = "C shunt",
|
|
.connectors_nb = LENGTH(usb_c_device_connectors),
|
|
.connectors = usb_c_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device__c_device__cshunt_pins),
|
|
.pin_pairs = usb__c_device__c_device__cshunt_pins,
|
|
},
|
|
// A - C power only
|
|
{
|
|
.name = "A-C power only",
|
|
.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_sidea__ac0_pins),
|
|
.pin_pairs = usb__a_host__c_host_sidea__ac0_pins,
|
|
},
|
|
{
|
|
.name = "A-C power only",
|
|
.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__ac0_pins),
|
|
.pin_pairs = usb__a_host__c_host_sideb__ac0_pins,
|
|
},
|
|
{
|
|
.name = "A-C power only",
|
|
.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__ac0_pins),
|
|
.pin_pairs = usb__a_host__c_device_sidea__ac0_pins,
|
|
},
|
|
{
|
|
.name = "A-C power only",
|
|
.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__ac0_pins),
|
|
.pin_pairs = usb__a_host__c_device_sideb__ac0_pins,
|
|
},
|
|
{
|
|
.name = "A-C power only",
|
|
.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__ac0_pins),
|
|
.pin_pairs = usb__a_device__c_host_sidea__ac0_pins,
|
|
},
|
|
{
|
|
.name = "A-C power only",
|
|
.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__ac0_pins),
|
|
.pin_pairs = usb__a_device__c_host_sideb__ac0_pins,
|
|
},
|
|
{
|
|
.name = "A-C power only",
|
|
.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__ac0_pins),
|
|
.pin_pairs = usb__a_device__c_device_sidea__ac0_pins,
|
|
},
|
|
{
|
|
.name = "A-C power only",
|
|
.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_sideb__ac0_pins),
|
|
.pin_pairs = usb__a_device__c_device_sideb__ac0_pins,
|
|
},
|
|
// A - C USB 2.0
|
|
{
|
|
.name = "A-C USB 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_sidea__ac2_pins),
|
|
.pin_pairs = usb__a_host__c_host_sidea__ac2_pins,
|
|
},
|
|
{
|
|
.name = "A-C USB 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_sideb__ac2_pins),
|
|
.pin_pairs = usb__a_host__c_host_sideb__ac2_pins,
|
|
},
|
|
{
|
|
.name = "A-C USB 2.0",
|
|
.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__ac2_pins),
|
|
.pin_pairs = usb__a_host__c_device_sidea__ac2_pins,
|
|
},
|
|
{
|
|
.name = "A-C USB 2.0",
|
|
.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__ac2_pins),
|
|
.pin_pairs = usb__a_host__c_device_sideb__ac2_pins,
|
|
},
|
|
{
|
|
.name = "A-C USB 2.0",
|
|
.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__ac2_pins),
|
|
.pin_pairs = usb__a_device__c_host_sidea__ac2_pins,
|
|
},
|
|
{
|
|
.name = "A-C USB 2.0",
|
|
.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__ac2_pins),
|
|
.pin_pairs = usb__a_device__c_host_sideb__ac2_pins,
|
|
},
|
|
{
|
|
.name = "A-C USB 2.0",
|
|
.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__ac2_pins),
|
|
.pin_pairs = usb__a_device__c_device_sidea__ac2_pins,
|
|
},
|
|
{
|
|
.name = "A-C USB 2.0",
|
|
.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_sideb__ac2_pins),
|
|
.pin_pairs = usb__a_device__c_device_sideb__ac2_pins,
|
|
},
|
|
// A-C USB 3.1 Gen 2
|
|
{
|
|
.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_sidea__ac3_pins),
|
|
.pin_pairs = usb__a_host__c_host_sidea__ac3_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__ac3_pins),
|
|
.pin_pairs = usb__a_host__c_host_sideb__ac3_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__ac3_pins),
|
|
.pin_pairs = usb__a_host__c_device_sidea__ac3_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__ac3_pins),
|
|
.pin_pairs = usb__a_host__c_device_sideb__ac3_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__ac3_pins),
|
|
.pin_pairs = usb__a_device__c_host_sidea__ac3_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__ac3_pins),
|
|
.pin_pairs = usb__a_device__c_host_sideb__ac3_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__ac3_pins),
|
|
.pin_pairs = usb__a_device__c_device_sidea__ac3_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__ac3_pins),
|
|
.pin_pairs = usb__a_device__c_device_sideb__ac3_pins,
|
|
},
|
|
// C - B USB 2.0
|
|
{
|
|
.name = "C-B USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_host_b_device_connectors),
|
|
.connectors = usb_c_host_b_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sidea__b_device__cb2_pins),
|
|
.pin_pairs = usb__c_host_sidea__b_device__cb2_pins,
|
|
},
|
|
{
|
|
.name = "C-B USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_host_b_device_connectors),
|
|
.connectors = usb_c_host_b_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sideb__b_device__cb2_pins),
|
|
.pin_pairs = usb__c_host_sideb__b_device__cb2_pins,
|
|
},
|
|
{
|
|
.name = "C-B USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_device_b_device_connectors),
|
|
.connectors = usb_c_device_b_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sidea__b_device__cb2_pins),
|
|
.pin_pairs = usb__c_device_sidea__b_device__cb2_pins,
|
|
},
|
|
{
|
|
.name = "C-B USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_device_b_device_connectors),
|
|
.connectors = usb_c_device_b_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sideb__b_device__cb2_pins),
|
|
.pin_pairs = usb__c_device_sideb__b_device__cb2_pins,
|
|
},
|
|
// C - B USB 3.1 Gen 2
|
|
{
|
|
.name = "C-B USB 3.1 Gen 2",
|
|
.connectors_nb = LENGTH(usb_c_host_b_device_connectors),
|
|
.connectors = usb_c_host_b_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sidea__b_device__cb3_pins),
|
|
.pin_pairs = usb__c_host_sidea__b_device__cb3_pins,
|
|
},
|
|
{
|
|
.name = "C-B USB 3.1 Gen 2",
|
|
.connectors_nb = LENGTH(usb_c_host_b_device_connectors),
|
|
.connectors = usb_c_host_b_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sideb__b_device__cb3_pins),
|
|
.pin_pairs = usb__c_host_sideb__b_device__cb3_pins,
|
|
},
|
|
{
|
|
.name = "C-B USB 3.1 Gen 2",
|
|
.connectors_nb = LENGTH(usb_c_device_b_device_connectors),
|
|
.connectors = usb_c_device_b_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sidea__b_device__cb3_pins),
|
|
.pin_pairs = usb__c_device_sidea__b_device__cb3_pins,
|
|
},
|
|
{
|
|
.name = "C-B USB 3.1 Gen 2",
|
|
.connectors_nb = LENGTH(usb_c_device_b_device_connectors),
|
|
.connectors = usb_c_device_b_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sideb__b_device__cb3_pins),
|
|
.pin_pairs = usb__c_device_sideb__b_device__cb3_pins,
|
|
},
|
|
// C - mini-B USB 2.0
|
|
{
|
|
.name = "C-miniB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_host_minib_device_connectors),
|
|
.connectors = usb_c_host_minib_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sidea__minib_device__cminib2_pins),
|
|
.pin_pairs = usb__c_host_sidea__minib_device__cminib2_pins,
|
|
},
|
|
{
|
|
.name = "C-miniB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_host_minib_device_connectors),
|
|
.connectors = usb_c_host_minib_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sideb__minib_device__cminib2_pins),
|
|
.pin_pairs = usb__c_host_sideb__minib_device__cminib2_pins,
|
|
},
|
|
{
|
|
.name = "C-miniB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_device_minib_device_connectors),
|
|
.connectors = usb_c_device_minib_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sidea__minib_device__cminib2_pins),
|
|
.pin_pairs = usb__c_device_sidea__minib_device__cminib2_pins,
|
|
},
|
|
{
|
|
.name = "C-miniB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_device_minib_device_connectors),
|
|
.connectors = usb_c_device_minib_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sideb__minib_device__cminib2_pins),
|
|
.pin_pairs = usb__c_device_sideb__minib_device__cminib2_pins,
|
|
},
|
|
// C - micro-B USB 2.0
|
|
{
|
|
.name = "C-microB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_host_microb_device_connectors),
|
|
.connectors = usb_c_host_microb_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sidea__microb_device__cmicrob2_pins),
|
|
.pin_pairs = usb__c_host_sidea__microb_device__cmicrob2_pins,
|
|
},
|
|
{
|
|
.name = "C-microB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_host_microb_device_connectors),
|
|
.connectors = usb_c_host_microb_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sideb__microb_device__cmicrob2_pins),
|
|
.pin_pairs = usb__c_host_sideb__microb_device__cmicrob2_pins,
|
|
},
|
|
{
|
|
.name = "C-microB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_device_microb_device_connectors),
|
|
.connectors = usb_c_device_microb_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sidea__microb_device__cmicrob2_pins),
|
|
.pin_pairs = usb__c_device_sidea__microb_device__cmicrob2_pins,
|
|
},
|
|
{
|
|
.name = "C-microB USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_device_microb_device_connectors),
|
|
.connectors = usb_c_device_microb_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sideb__microb_device__cmicrob2_pins),
|
|
.pin_pairs = usb__c_device_sideb__microb_device__cmicrob2_pins,
|
|
},
|
|
// C - micro-B USB 3.1 Gen 2
|
|
{
|
|
.name = "C-microB USB 3.1 Gen 2",
|
|
.connectors_nb = LENGTH(usb_c_host_microb_device_connectors),
|
|
.connectors = usb_c_host_microb_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sidea__microb_device__cmicrob3_pins),
|
|
.pin_pairs = usb__c_host_sidea__microb_device__cmicrob3_pins,
|
|
},
|
|
{
|
|
.name = "C-microB USB 3.1 Gen 2",
|
|
.connectors_nb = LENGTH(usb_c_host_microb_device_connectors),
|
|
.connectors = usb_c_host_microb_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sideb__microb_device__cmicrob3_pins),
|
|
.pin_pairs = usb__c_host_sideb__microb_device__cmicrob3_pins,
|
|
},
|
|
{
|
|
.name = "C-microB USB 3.1 Gen 2",
|
|
.connectors_nb = LENGTH(usb_c_device_microb_device_connectors),
|
|
.connectors = usb_c_device_microb_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sidea__microb_device__cmicrob3_pins),
|
|
.pin_pairs = usb__c_device_sidea__microb_device__cmicrob3_pins,
|
|
},
|
|
{
|
|
.name = "C-microB USB 3.1 Gen 2",
|
|
.connectors_nb = LENGTH(usb_c_device_microb_device_connectors),
|
|
.connectors = usb_c_device_microb_device_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_device_sideb__microb_device__cmicrob3_pins),
|
|
.pin_pairs = usb__c_device_sideb__microb_device__cmicrob3_pins,
|
|
},
|
|
// C-C
|
|
{
|
|
.name = "C-C USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_c_connectors),
|
|
.connectors = usb_c_c_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sidea__c_device_sidea__cc2_pins),
|
|
.pin_pairs = usb__c_host_sidea__c_device_sidea__cc2_pins,
|
|
},
|
|
{
|
|
.name = "C-C USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_c_connectors),
|
|
.connectors = usb_c_c_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sidea__c_device_sideb__cc2_pins),
|
|
.pin_pairs = usb__c_host_sidea__c_device_sideb__cc2_pins,
|
|
},
|
|
{
|
|
.name = "C-C USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_c_connectors),
|
|
.connectors = usb_c_c_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sideb__c_device_sidea__cc2_pins),
|
|
.pin_pairs = usb__c_host_sideb__c_device_sidea__cc2_pins,
|
|
},
|
|
{
|
|
.name = "C-C USB 2.0",
|
|
.connectors_nb = LENGTH(usb_c_c_connectors),
|
|
.connectors = usb_c_c_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sideb__c_device_sideb__cc2_pins),
|
|
.pin_pairs = usb__c_host_sideb__c_device_sideb__cc2_pins,
|
|
},
|
|
// C-C
|
|
{
|
|
.name = "C-C Full-Featured",
|
|
.connectors_nb = LENGTH(usb_c_c_connectors),
|
|
.connectors = usb_c_c_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sidea__c_device_sidea__ff_pins),
|
|
.pin_pairs = usb__c_host_sidea__c_device_sidea__ff_pins,
|
|
},
|
|
{
|
|
.name = "C-C Full-Featured",
|
|
.connectors_nb = LENGTH(usb_c_c_connectors),
|
|
.connectors = usb_c_c_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sidea__c_device_sideb__ff_pins),
|
|
.pin_pairs = usb__c_host_sidea__c_device_sideb__ff_pins,
|
|
},
|
|
{
|
|
.name = "C-C Full-Featured",
|
|
.connectors_nb = LENGTH(usb_c_c_connectors),
|
|
.connectors = usb_c_c_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sideb__c_device_sidea__ff_pins),
|
|
.pin_pairs = usb__c_host_sideb__c_device_sidea__ff_pins,
|
|
},
|
|
{
|
|
.name = "C-C Full-Featured",
|
|
.connectors_nb = LENGTH(usb_c_c_connectors),
|
|
.connectors = usb_c_c_connectors,
|
|
.pin_pairs_nb = LENGTH(usb__c_host_sideb__c_device_sideb__ff_pins),
|
|
.pin_pairs = usb__c_host_sideb__c_device_sideb__ff_pins,
|
|
},
|
|
};
|
|
|
|
void usb_cables_pins_float(const struct usb_connector_t* connector)
|
|
{
|
|
// input argument check
|
|
if (NULL == connector) {
|
|
return;
|
|
}
|
|
|
|
for (uint8_t pin = 0; pin < connector->pins_nb; pin++) { // go through every pin
|
|
const struct usb_pin_t* usb_pin = &usb_pins[connector->pins[pin]]; // get pin
|
|
gpio_set_mode(usb_pin->port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, usb_pin->pin); // put pin to floating
|
|
}
|
|
}
|
|
|
|
void usb_cables_connectors_float(const struct usb_connector_t** connectors, uint8_t connectors_nb)
|
|
{
|
|
if (NULL == connectors || 0 == connectors_nb) {
|
|
return;
|
|
}
|
|
|
|
for (uint8_t connector = 0; connector < connectors_nb; connector++) { // go through every connector
|
|
usb_cables_pins_float(connectors[connector]);
|
|
}
|
|
}
|
|
|
|
uint8_t usb_cables_check_pins(const struct usb_pin_t* pin1, const struct usb_pin_t* pin2)
|
|
{
|
|
cm3_assert(pin1 && pin2);
|
|
|
|
if (pin1->port == pin2->port && pin1->pin == pin2->pin) { // it's the same pin
|
|
return 0xff; // all connections will work
|
|
}
|
|
|
|
uint8_t connection = 0; // the connection result to return
|
|
for (int8_t mode = 3; mode >= 0; mode--) { // test all connection types (from most to least accurate)
|
|
for (uint8_t direction = 0; direction < 2; direction++) { // test both directions
|
|
uint32_t from_port = (0 == direction ? pin2->port : pin1->port);
|
|
uint16_t from_pin = (0 == direction ? pin2->pin : pin1->pin);
|
|
uint32_t to_port = (0 == direction ? pin1->port : pin2->port);
|
|
uint16_t to_pin = (0 == direction ? pin1->pin : pin2->pin);
|
|
// don't drive a ground or shield pin high (shield might be connected to ground)
|
|
if (((0 == direction && (USB_PIN_TYPE_GROUND == pin2->type || USB_PIN_TYPE_SHIELD == pin2->type)) || \
|
|
(1 == direction && (USB_PIN_TYPE_GROUND == pin1->type || USB_PIN_TYPE_SHIELD == pin1->type))) && \
|
|
(USB_PIN_CONNECTION_DRIVE_FLOAT == (1 << mode) || USB_PIN_CONNECTION_DRIVE_PULL == (1 << mode))) {
|
|
continue;
|
|
}
|
|
|
|
// set pin mode
|
|
switch ((1 << mode)) {
|
|
case USB_PIN_CONNECTION_DRIVE_FLOAT:
|
|
gpio_set_mode(from_port, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, from_pin);
|
|
gpio_set_mode(to_port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, to_pin);
|
|
break;
|
|
case USB_PIN_CONNECTION_PULL_FLOAT:
|
|
gpio_set_mode(from_port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, from_pin);
|
|
gpio_set_mode(to_port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, to_pin);
|
|
break;
|
|
case USB_PIN_CONNECTION_DRIVE_PULL:
|
|
gpio_set_mode(from_port, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, from_pin);
|
|
gpio_set_mode(to_port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, to_pin);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
// test pattern
|
|
bool connected = true;
|
|
for (uint8_t pattern = 0; pattern < 8 && connected; pattern++) {
|
|
if (0 == pattern % 2) {
|
|
gpio_clear(from_port, from_pin);
|
|
gpio_set(to_port, to_pin);
|
|
sleep_us(25); // wait for GPIO/line to settle
|
|
if (gpio_get(to_port, to_pin)) {
|
|
connected = false;
|
|
}
|
|
} else {
|
|
gpio_set(from_port, from_pin);
|
|
gpio_clear(to_port, to_pin);
|
|
sleep_us(25); // wait for GPIO/line to settle
|
|
if (0 == gpio_get(to_port, to_pin)) {
|
|
connected = false;
|
|
}
|
|
}
|
|
}
|
|
if (connected) {
|
|
connection |= (1 << (mode + direction * 4));
|
|
}
|
|
}
|
|
if ((connection & (1 << (mode + 0))) && (connection & (1 << (mode + 4)))) { // more accurate connection showed, no need to continue with least accurate test
|
|
break;
|
|
}
|
|
}
|
|
|
|
// put back to floating
|
|
gpio_set_mode(pin1->port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, pin1->pin);
|
|
gpio_set_mode(pin2->port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, pin2->pin);
|
|
|
|
return connection;
|
|
}
|
|
|
|
void usb_cables_check_intra(const struct usb_connector_t* connector, bool* connected)
|
|
{
|
|
// verify input arguments
|
|
if (NULL == connector) {
|
|
return;
|
|
}
|
|
|
|
// initialize output results
|
|
if (connected) {
|
|
for (uint8_t pin = 0; connector->pins_nb; pin++) {
|
|
connected[pin] = false;
|
|
}
|
|
}
|
|
usb_cables_pins_float(connector); // ensure we start in a safe state
|
|
for (uint8_t pin_from = 0; pin_from < connector->pins_nb; pin_from++) { // test from every pin
|
|
for (uint8_t pin_to = 0; pin_to < connector->pins_nb; pin_to++) { // test to every pin (except itself)
|
|
// don't check the same pins
|
|
if (pin_to == pin_from) {
|
|
continue;
|
|
}
|
|
const struct usb_pin_t* usb_pin_from = &usb_pins[connector->pins[pin_from]]; // get from pin
|
|
const struct usb_pin_t* usb_pin_to = &usb_pins[connector->pins[pin_to]]; // get to pin
|
|
|
|
// don't check if power and ground pins are connected because loads lead to false positives
|
|
if ((USB_PIN_TYPE_GROUND == usb_pin_from->type || USB_PIN_TYPE_SHIELD == usb_pin_from->type) && USB_PIN_TYPE_POWER == usb_pin_to->type) {
|
|
continue;
|
|
}
|
|
if (USB_PIN_TYPE_POWER == usb_pin_from->type && (USB_PIN_TYPE_GROUND == usb_pin_to->type || USB_PIN_TYPE_SHIELD == usb_pin_to->type)) {
|
|
continue;
|
|
}
|
|
|
|
uint8_t connection = usb_cables_check_pins(usb_pin_from, usb_pin_to);
|
|
if (connection >= 0x22) {
|
|
if (connected) {
|
|
connected[pin_from] = true;
|
|
connected[pin_to] = true;
|
|
} else {
|
|
printf("%s (%s) %s connected to %s (%02x)\n", connector->name, connector->host ? "host" : "device", usb_pin_from->name, usb_pin_to->name, connection);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
usb_cables_pins_float(connector); // go back to safe state
|
|
}
|
|
|
|
void usb_cables_check_inter(const struct usb_connector_t** connectors, uint8_t connectors_nb, bool* connected)
|
|
{
|
|
// verify input arguments
|
|
if (NULL == connectors || 0 == connectors_nb) {
|
|
return;
|
|
}
|
|
|
|
// initialize output result
|
|
if (connected) {
|
|
for (uint8_t connector = 0; connector < connectors_nb; connector++) {
|
|
connected[connector] = false;
|
|
}
|
|
}
|
|
|
|
usb_cables_connectors_float(connectors, connectors_nb); // ensure we start in a safe state
|
|
|
|
for (uint8_t connector_from = 0; connector_from < connectors_nb; connector_from++) { // test from every connector
|
|
for (uint8_t pin_from = 0; pin_from < connectors[connector_from]->pins_nb; pin_from++) { // test from every pin
|
|
for (uint8_t connector_to = connector_from + 1; connector_to < connectors_nb; connector_to++) { // test to every connector (except itself)
|
|
if (connector_to == connector_from) { // don't test the connector itself since we already did this test
|
|
continue;
|
|
}
|
|
if (connected && connected[connector_to]) { // we already found a connection to this connector
|
|
continue;
|
|
}
|
|
for (uint8_t pin_to = 0; pin_to < connectors[connector_to]->pins_nb; pin_to++) { // test to every pin
|
|
const struct usb_pin_t* usb_pin_from = &usb_pins[connectors[connector_from]->pins[pin_from]]; // get from pin
|
|
const struct usb_pin_t* usb_pin_to = &usb_pins[connectors[connector_to]->pins[pin_to]]; // get to pin
|
|
// don't check if power and ground pins are connected because loads lead to false positives
|
|
if ((USB_PIN_TYPE_GROUND == usb_pin_from->type || USB_PIN_TYPE_SHIELD == usb_pin_from->type) && USB_PIN_TYPE_POWER == usb_pin_to->type) {
|
|
continue;
|
|
}
|
|
if (USB_PIN_TYPE_POWER == usb_pin_from->type && (USB_PIN_TYPE_GROUND == usb_pin_to->type || USB_PIN_TYPE_SHIELD == usb_pin_to->type)) {
|
|
continue;
|
|
}
|
|
// check if cable is connected
|
|
uint8_t connection = usb_cables_check_pins(usb_pin_from, usb_pin_to);
|
|
if (connection >= 0x22) {
|
|
if (connected) { // remember they are connected
|
|
connected[connector_from] = true;
|
|
connected[connector_to] = true;
|
|
} else {
|
|
printf("%s (%s) %s connected to %s (%s) %s\n", connectors[connector_from]->name, connectors[connector_from]->host ? "host" : "device", usb_pin_from->name, connectors[connector_to]->name, connectors[connector_to]->host ? "host" : "device", usb_pin_to->name);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
usb_cables_connectors_float(connectors, connectors_nb); // go back to safe state
|
|
}
|
|
|
|
void usb_cables_check_ground(const struct usb_connector_t** connectors, uint8_t connectors_nb, bool* connected)
|
|
{
|
|
// verify input arguments
|
|
if (NULL == connectors || 0 == connectors_nb) {
|
|
return;
|
|
}
|
|
|
|
// initialize output result
|
|
if (connected) {
|
|
for (uint8_t connector = 0; connector < connectors_nb; connector++) {
|
|
connected[connector] = false;
|
|
}
|
|
}
|
|
|
|
// pull up all ground pins
|
|
for (uint8_t connector = 0; connector < connectors_nb; connector++) {
|
|
for (uint8_t pin = 0; pin < connectors[connector]->pins_nb; pin++) {
|
|
const struct usb_pin_t* usb_pin = &usb_pins[connectors[connector]->pins[pin]]; // get pin
|
|
if (USB_PIN_TYPE_GROUND == usb_pin->type) {
|
|
gpio_set_mode(usb_pin->port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, usb_pin->pin);
|
|
gpio_set(usb_pin->port, usb_pin->pin);
|
|
}
|
|
}
|
|
}
|
|
|
|
bool ground_found = false; // if we found the ground connection
|
|
for (uint8_t connector_from = 0; connector_from < connectors_nb && !ground_found; connector_from++) { // test from every connector
|
|
for (uint8_t pin_from = 0; pin_from < connectors[connector_from]->pins_nb && !ground_found; pin_from++) { // test from every pin
|
|
const struct usb_pin_t* usb_pin_from = &usb_pins[connectors[connector_from]->pins[pin_from]]; // get from pin
|
|
if (USB_PIN_TYPE_GROUND != usb_pin_from->type) { // only consider ground connections
|
|
continue;
|
|
}
|
|
// set pin low
|
|
gpio_set_mode(usb_pin_from->port, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, usb_pin_from->pin);
|
|
gpio_clear(usb_pin_from->port, usb_pin_from->pin);
|
|
for (uint8_t connector_to = connector_from + 1; connector_to < connectors_nb; connector_to++) { // test every next connector
|
|
if (connected && connected[connector_to]) { // we already found a connection to this connector
|
|
continue;
|
|
}
|
|
for (uint8_t pin_to = 0; pin_to < connectors[connector_to]->pins_nb; pin_to++) { // test to every pin
|
|
const struct usb_pin_t* usb_pin_to = &usb_pins[connectors[connector_to]->pins[pin_to]]; // get to pin
|
|
if (USB_PIN_TYPE_GROUND != usb_pin_to->type) { // only consider ground connections
|
|
continue;
|
|
}
|
|
if (0 == gpio_get(usb_pin_to->port, usb_pin_to->pin)) { // we found a ground interconnection
|
|
if (connected) { // remember they are connected
|
|
connected[connector_from] = true;
|
|
connected[connector_to] = true;
|
|
} else {
|
|
printf("%s (%s) %s connected to %s (%s) %s\n", connectors[connector_from]->name, connectors[connector_from]->host ? "host" : "device", usb_pin_from->name, connectors[connector_to]->name, connectors[connector_to]->host ? "host" : "device", usb_pin_to->name);
|
|
}
|
|
ground_found = true; // remember we found a ground connection
|
|
}
|
|
}
|
|
}
|
|
// pull pin back up
|
|
gpio_set_mode(usb_pin_from->port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, usb_pin_from->pin);
|
|
gpio_set(usb_pin_from->port, usb_pin_from->pin);
|
|
}
|
|
}
|
|
|
|
// put all ground pins back to float
|
|
for (uint8_t connector = 0; connector < connectors_nb; connector++) {
|
|
for (uint8_t pin = 0; pin < connectors[connector]->pins_nb; pin++) {
|
|
const struct usb_pin_t* usb_pin = &usb_pins[connectors[connector]->pins[pin]]; // get pin
|
|
if (USB_PIN_TYPE_GROUND == usb_pin->type) {
|
|
gpio_set_mode(usb_pin->port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, usb_pin->pin);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
bool usb_cables_check_load(const struct usb_connector_t* connector)
|
|
{
|
|
// verify input arguments
|
|
if (NULL == connector) {
|
|
return false;
|
|
}
|
|
|
|
usb_cables_pins_float(connector); // ensure we start with all pins floating to not influence the check
|
|
|
|
bool loaded = false; // remember if we found a load
|
|
|
|
// pull power pin low (works better than pushing high and being strong enough to have a pull down pulled high)
|
|
for (uint8_t pin_power = 0; pin_power < connector->pins_nb && !loaded; pin_power++) {
|
|
const struct usb_pin_t* usb_power_pin = &usb_pins[connector->pins[pin_power]]; // get power pin
|
|
if (USB_PIN_TYPE_POWER != usb_power_pin->type) {
|
|
continue;
|
|
}
|
|
gpio_set_mode(usb_power_pin->port, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, usb_power_pin->pin);
|
|
gpio_clear(usb_power_pin->port, usb_power_pin->pin);
|
|
for (uint8_t pin_ground = 0; pin_ground < connector->pins_nb && !loaded; pin_ground++) {
|
|
const struct usb_pin_t* usb_ground_pin = &usb_pins[connector->pins[pin_ground]]; // get ground pin
|
|
if (USB_PIN_TYPE_GROUND != usb_ground_pin->type) {
|
|
continue;
|
|
}
|
|
// pull up to avoid false positive
|
|
gpio_set_mode(usb_ground_pin->port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, usb_ground_pin->pin);
|
|
gpio_set(usb_ground_pin->port, usb_ground_pin->pin);
|
|
// check if it is pulled high by VBUS
|
|
sleep_us(100);
|
|
if (0 == gpio_get(usb_ground_pin->port, usb_ground_pin->pin)) {
|
|
loaded = true;
|
|
}
|
|
}
|
|
gpio_set_mode(usb_power_pin->port, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, usb_power_pin->pin); // put back to floating
|
|
}
|
|
|
|
return loaded;
|
|
}
|
|
|
|
bool usb_cables_check_cable(const struct usb_cable_t* cable, uint8_t* defined, uint8_t* undefined, bool print)
|
|
{
|
|
if (NULL == cable) {
|
|
return false;
|
|
}
|
|
uint8_t _defined = 0, _undefined = 0; // internal pair counting variables
|
|
|
|
usb_cables_connectors_float(cable->connectors, cable->connectors_nb); // ensure we start in a safe state
|
|
for (uint8_t connector_from = 0; connector_from < cable->connectors_nb; connector_from++) { // test from every connector
|
|
for (uint8_t pin_from = 0; pin_from < cable->connectors[connector_from]->pins_nb; pin_from++) { // test from every pin
|
|
for (uint8_t connector_to = connector_from; connector_to < cable->connectors_nb; connector_to++) { // test to every connector
|
|
for (uint8_t pin_to = 0; pin_to < cable->connectors[connector_to]->pins_nb; pin_to++) { // test to every pin (except itself)
|
|
if (connector_to == connector_from && pin_to <= pin_from) {
|
|
continue; // skip already tested internal connection
|
|
}
|
|
|
|
const struct usb_pin_t* usb_pin_from = &usb_pins[cable->connectors[connector_from]->pins[pin_from]]; // get from pin
|
|
const struct usb_pin_t* usb_pin_to = &usb_pins[cable->connectors[connector_to]->pins[pin_to]]; // get to pin
|
|
|
|
// don't check if power and ground pins are connected because loads lead to false positives
|
|
if ((USB_PIN_TYPE_GROUND == usb_pin_from->type || USB_PIN_TYPE_SHIELD == usb_pin_from->type) && USB_PIN_TYPE_POWER == usb_pin_to->type) {
|
|
continue;
|
|
}
|
|
if (USB_PIN_TYPE_POWER == usb_pin_from->type && (USB_PIN_TYPE_GROUND == usb_pin_to->type || USB_PIN_TYPE_SHIELD == usb_pin_to->type)) {
|
|
continue;
|
|
}
|
|
|
|
// figure out if this connection pair is defined
|
|
bool pair_defined = false;
|
|
for (uint8_t pair = 0; pair < cable->pin_pairs_nb; pair++) {
|
|
if (cable->pin_pairs[pair][0] == cable->connectors[connector_from]->pins[pin_from] && cable->pin_pairs[pair][1] == cable->connectors[connector_to]->pins[pin_to]) {
|
|
pair_defined = true;
|
|
}
|
|
if (cable->pin_pairs[pair][1] == cable->connectors[connector_from]->pins[pin_from] && cable->pin_pairs[pair][0] == cable->connectors[connector_to]->pins[pin_to]) {
|
|
pair_defined = true;
|
|
}
|
|
}
|
|
|
|
uint8_t connection = usb_cables_check_pins(usb_pin_from, usb_pin_to);
|
|
if (connection >= 0x22) {
|
|
if (pair_defined) {
|
|
_defined++;
|
|
} else {
|
|
_undefined++;
|
|
if (print) {
|
|
printf("unspecified connection: %s %s to %s %s\n", cable->connectors[connector_from]->name, usb_pin_from->name, cable->connectors[connector_to]->name, usb_pin_to->name);
|
|
}
|
|
}
|
|
} else { // there is no connection
|
|
if (pair_defined) {
|
|
// don't actually count the number of unconnected pair since it can be calculated from pin_pairs_nb - defined
|
|
if (print) {
|
|
printf("no connection: %s %s to %s %s\n", cable->connectors[connector_from]->name, usb_pin_from->name, cable->connectors[connector_to]->name, usb_pin_to->name);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
usb_cables_connectors_float(cable->connectors, cable->connectors_nb); // ensure we return to a safe state
|
|
|
|
// copy variables
|
|
if (defined) {
|
|
*defined = _defined;
|
|
}
|
|
if (undefined) {
|
|
*undefined = _undefined;
|
|
}
|
|
return (0 == _undefined && cable->pin_pairs_nb == _defined);
|
|
}
|