usb_cables: add optional pin pairs

This commit is contained in:
King Kévin 2019-12-31 14:20:48 +01:00
parent cbd67810f4
commit 43df1a9b33
1 changed files with 37 additions and 15 deletions

View File

@ -801,6 +801,12 @@ static const uint8_t usb_aa0_pins[][2] = {
{usb_a_host_pins[4], usb_a_device_pins[4]}, // GND
};
/** USB type A to type A power cable optional pin pairs */
static const uint8_t usb_aa0_opts[][2] = {
{usb_a_host_pins[2], usb_a_host_pins[3]}, // D+, D- (Battery Charging Specification, Revision 1.1: A Dedicated Charging Port is required to short the D+ line to the D- line. Doing it in the cable on the device side is kind of cheating)
{usb_a_device_pins[2], usb_a_device_pins[3]}, // D+, D- (Battery Charging Specification, Revision 1.1: A Dedicated Charging Port is required to short the D+ line to the D- line. Doing it in the cable on the device side is kind of cheating)
};
/** USB type A to type A USB 2.0 cable mandatory 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
@ -844,6 +850,11 @@ static const uint8_t usb__a_host__b__ab0_pins[][2] = {
{usb_a_host_pins[4], usb_b_device_pins[4]}, // GND
};
/** USB type A to type B power only cable optional pin pairs */
static const uint8_t usb__a_host__b__ab0_opts[][2] = {
{usb_b_device_pins[2], usb_b_device_pins[3]}, // D+, D- (Battery Charging Specification, Revision 1.1: A Dedicated Charging Port is required to short the D+ line to the D- line. Doing it in the cable on the device side is kind of cheating)
};
/** USB type A to type B USB 2.0 cable mandatory 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
@ -884,6 +895,10 @@ static const uint8_t usb__a_device__b__ab0_pins[][2] = {
{usb_a_device_pins[4], usb_b_device_pins[4]}, // GND
};
static const uint8_t usb__a_device__b__ab0_opts[][2] = {
{usb_b_device_pins[2], usb_b_device_pins[3]}, // D+, D- (Battery Charging Specification, Revision 1.1: A Dedicated Charging Port is required to short the D+ line to the D- line. Doing it in the cable on the device side is kind of cheating)
};
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
@ -952,6 +967,11 @@ static const uint8_t usb__a_host__minib__amb0_pins[][2] = {
{usb_a_host_pins[4], usb_minib_device_pins[5]}, // GND
};
/** USB type A to type mini-B power only cable optional pin pairs */
static const uint8_t usb__a_host__minib__amb0_opts[][2] = {
{usb_minib_device_pins[2], usb_minib_device_pins[3]}, // D+, D- (Battery Charging Specification, Revision 1.1: A Dedicated Charging Port is required to short the D+ line to the D- line. Doing it in the cable on the device side is kind of cheating)
};
/** USB type A to type mini-B USB 2.0 cable mandatory 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
@ -975,6 +995,10 @@ static const uint8_t usb__a_device__minib__amb0_pins[][2] = {
{usb_a_device_pins[4], usb_minib_device_pins[5]}, // GND
};
static const uint8_t usb__a_device__minib__amb0_opts[][2] = {
{usb_minib_device_pins[2], usb_minib_device_pins[3]}, // D+, D- (Battery Charging Specification, Revision 1.1: A Dedicated Charging Port is required to short the D+ line to the D- line. Doing it in the cable on the device side is kind of cheating)
};
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
@ -1030,11 +1054,9 @@ static const uint8_t usb__a_host__microb__aub0_pins[][2] = {
{usb_a_host_pins[4], usb_microb_device_pins[5]}, // GND
};
/** USB type A to type micro-B power only cable optional pin pairs
* @implements this is observed
*/
/** USB type A to type micro-B power only cable optional pin pairs */
static const uint8_t usb__a_host__microb__aub0_opts[][2] = {
{usb_microb_device_pins[2], usb_microb_device_pins[3]}, // D+, D- (indicates the devices there is no USB)
{usb_microb_device_pins[2], usb_microb_device_pins[3]}, // D+, D- (Battery Charging Specification, Revision 1.1: A Dedicated Charging Port is required to short the D+ line to the D- line. Doing it in the cable on the device side is kind of cheating)
};
/** USB type A to type micro-B USB 2.0 cable mandatory pin pairs
@ -1078,7 +1100,7 @@ static const uint8_t usb__a_device__microb__aub0_pins[][2] = {
};
static const uint8_t usb__a_device__microb__aub0_opts[][2] = {
{usb_microb_device_pins[2], usb_microb_device_pins[3]}, // D+, D- (indicates the devices there is no USB)
{usb_microb_device_pins[2], usb_microb_device_pins[3]}, // D+, D- (Battery Charging Specification, Revision 1.1: A Dedicated Charging Port is required to short the D+ line to the D- line. Doing it in the cable on the device side is kind of cheating)
};
static const uint8_t usb__a_device__microb__aub2_pins[][2] = {
@ -3975,8 +3997,8 @@ const struct usb_cable_t usb_cables[] = {
.connectors = usb_a_a_connectors,
.mandatory_pairs_nb = LENGTH(usb_aa0_pins),
.mandatory_pairs = usb_aa0_pins,
.optional_pairs_nb = 0,
.optional_pairs = NULL,
.optional_pairs_nb = LENGTH(usb_aa0_opts),
.optional_pairs = usb_aa0_opts,
},
{
.name = "A-A USB 2.0",
@ -4003,8 +4025,8 @@ const struct usb_cable_t usb_cables[] = {
.connectors = usb_a_host_b_connectors,
.mandatory_pairs_nb = LENGTH(usb__a_host__b__ab0_pins),
.mandatory_pairs = usb__a_host__b__ab0_pins,
.optional_pairs_nb = 0,
.optional_pairs = NULL,
.optional_pairs_nb = LENGTH(usb__a_host__b__ab0_opts),
.optional_pairs = usb__a_host__b__ab0_opts,
},
{
.name = "A-B USB 2.0",
@ -4031,8 +4053,8 @@ const struct usb_cable_t usb_cables[] = {
.connectors = usb_a_device_b_connectors,
.mandatory_pairs_nb = LENGTH(usb__a_device__b__ab0_pins),
.mandatory_pairs = usb__a_device__b__ab0_pins,
.optional_pairs_nb = 0,
.optional_pairs = NULL,
.optional_pairs_nb = LENGTH(usb__a_device__b__ab0_opts),
.optional_pairs = usb__a_device__b__ab0_opts,
},
{
.name = "A-B USB 2.0",
@ -4076,8 +4098,8 @@ const struct usb_cable_t usb_cables[] = {
.connectors = usb_a_host_minib_connectors,
.mandatory_pairs_nb = LENGTH(usb__a_host__minib__amb0_pins),
.mandatory_pairs = usb__a_host__minib__amb0_pins,
.optional_pairs_nb = 0,
.optional_pairs = NULL,
.optional_pairs_nb = LENGTH(usb__a_host__minib__amb0_opts),
.optional_pairs = usb__a_host__minib__amb0_opts,
},
{
.name = "A-miniB USB 2.0",
@ -4095,8 +4117,8 @@ const struct usb_cable_t usb_cables[] = {
.connectors = usb_a_device_minib_connectors,
.mandatory_pairs_nb = LENGTH(usb__a_device__minib__amb0_pins),
.mandatory_pairs = usb__a_device__minib__amb0_pins,
.optional_pairs_nb = 0,
.optional_pairs = NULL,
.optional_pairs_nb = LENGTH(usb__a_device__minib__amb0_opts),
.optional_pairs = usb__a_device__minib__amb0_opts,
},
{
.name = "A-miniB USB 2.0",