diff --git a/usb_cables.c b/usb_cables.c index 01de765..d160d0a 100644 --- a/usb_cables.c +++ b/usb_cables.c @@ -1109,6 +1109,31 @@ static const struct usb_pin_t* usb_c_device_shunt_pins[][2] = { {&usb_device_c_pins[12], &usb_device_c_pins[24]}, // A12 GND, B1 GND }; +static const struct usb_connector_t* usb_a_host_c_host_connectors[] = { + &usb_host_a_connector, + &usb_host_c_connector, +}; + +static const struct usb_pin_t* usb_a_host_c_host_ac23_sidea_pins[][2] = { + {&usb_host_a_pins[1], &usb_host_c_pins[4]}, // VBUS - A4 VBUS + {&usb_host_a_pins[1], &usb_host_c_pins[9]}, // VBUS - A9 VBUS + {&usb_host_a_pins[1], &usb_host_c_pins[12 + 4]}, // VBUS - B9 VBUS + {&usb_host_a_pins[1], &usb_host_c_pins[12 + 9]}, // VBUS - B4 VBUS + {&usb_host_a_pins[0], &usb_host_c_pins[0]}, // shield, shield + {&usb_host_a_pins[0], &usb_host_c_pins[1]}, // shield, A1 GND + {&usb_host_a_pins[0], &usb_host_c_pins[12]}, // shield, A12 GND + {&usb_host_a_pins[0], &usb_host_c_pins[13]}, // shield, B12 GND + {&usb_host_a_pins[0], &usb_host_c_pins[24]}, // shield, B1 GND + {&usb_host_a_pins[4], &usb_host_c_pins[0]}, // GND, shield + {&usb_host_a_pins[4], &usb_host_c_pins[1]}, // GND, A1 GND + {&usb_host_a_pins[4], &usb_host_c_pins[12]}, // GND, A12 GND + {&usb_host_a_pins[4], &usb_host_c_pins[13]}, // GND, B12 GND + {&usb_host_a_pins[4], &usb_host_c_pins[24]}, // GND, B1 GND + {&usb_host_a_pins[2], &usb_host_c_pins[7]}, // D-, A7 Dn1 + {&usb_host_a_pins[3], &usb_host_c_pins[6]}, // D+, A6 Dp1 + {&usb_host_a_pins[1], &usb_host_c_pins[5]}, // VBUS - A5 CC1 (56kO) +}; + const struct usb_cable_t usb_cables[] = { { .name = "A-A power only", @@ -1341,6 +1366,13 @@ const struct usb_cable_t usb_cables[] = { .pin_pairs_nb = LENGTH(usb_c_device_shunt_pins), .pin_pairs = usb_c_device_shunt_pins, }, + { + .name = "A-C 2.0", + .connectors_nb = LENGTH(usb_a_host_c_host_connectors), + .connectors = usb_a_host_c_host_connectors, + .pin_pairs_nb = LENGTH(usb_a_host_c_host_ac23_sidea_pins), + .pin_pairs = usb_a_host_c_host_ac23_sidea_pins, + }, }; void usb_cables_pins_float(const struct usb_connector_t* connector) diff --git a/usb_cables.h b/usb_cables.h index 6e7bea9..446b5b9 100644 --- a/usb_cables.h +++ b/usb_cables.h @@ -66,7 +66,7 @@ struct usb_cable_t { /** USB connectors definitions */ extern const struct usb_connector_t* usb_connectors[8]; /** USB cables definitions */ -extern const struct usb_cable_t usb_cables[33]; +extern const struct usb_cable_t usb_cables[34]; /** set every pin of connector to input floating * @param[in] connector connector on which to set the pins floating