Add PHY options and PHY_WCID.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos 2024-06-19 22:00:55 +02:00
parent e4e43dae04
commit d458250887
No known key found for this signature in database
GPG key ID: C0095B7870A4CCD3
2 changed files with 16 additions and 4 deletions

View file

@ -73,8 +73,11 @@
#define PHY_PID 0x2
#define PHY_LED_GPIO 0x4
#define PHY_LED_MODE 0x5
#define PHY_OPTS 0x6
#define PHY_MAX_SIZE 6
#define PHY_OPT_WCID 0x1
#define PHY_MAX_SIZE 8
#define MAX_DEPTH 4

View file

@ -163,14 +163,23 @@ queue_t card_to_usb_q;
#ifndef ENABLE_EMULATION
extern tusb_desc_device_t desc_device;
bool enable_wcid = false;
#endif
void usb_init() {
#ifndef ENABLE_EMULATION
uint16_t usb_vid = USB_VID, usb_pid = USB_PID;
if (file_has_data(ef_phy) && file_get_size(ef_phy) >= 4) {
if (file_has_data(ef_phy)) {
uint8_t *data = file_get_data(ef_phy);
usb_vid = (data[PHY_VID] << 8) | data[PHY_VID+1];
usb_pid = (data[PHY_PID] << 8) | data[PHY_PID+1];
if (file_get_size(ef_phy) >= 4) {
usb_vid = (data[PHY_VID] << 8) | data[PHY_VID+1];
usb_pid = (data[PHY_PID] << 8) | data[PHY_PID+1];
}
if (file_get_size(ef_phy) >= 8) {
uint16_t opts = (data[PHY_OPTS] << 8) | data[PHY_OPTS+1];
if (opts & PHY_OPT_WCID) {
enable_wcid = true;
}
}
}
desc_device.idVendor = usb_vid;
desc_device.idProduct = usb_pid;