diff options
Diffstat (limited to 'board/toradex/colibri_vf/colibri_vf.c')
-rw-r--r-- | board/toradex/colibri_vf/colibri_vf.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c index 92af6370cd4..0740a264e5f 100644 --- a/board/toradex/colibri_vf/colibri_vf.c +++ b/board/toradex/colibri_vf/colibri_vf.c @@ -19,6 +19,7 @@ #include <miiphy.h> #include <netdev.h> #include <i2c.h> +#include <g_dnl.h> #include "../common/configblock.h" @@ -336,3 +337,43 @@ int checkboard(void) return 0; } + +int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) +{ + char serialnr[64]; + unsigned short prodnr; + unsigned short usb_pid; + +#ifdef CONFIG_TRDX_CFG_BLOCK + get_board_serial_char(serialnr); + get_board_product_number(&prodnr); +#endif + + put_unaligned(CONFIG_TRDX_VID, &dev->idVendor); + + switch (prodnr) { + case 10: + usb_pid = CONFIG_TRDX_PID_COLIBRI_VF50; + break; + case 11: + usb_pid = CONFIG_TRDX_PID_COLIBRI_VF61; + break; + case 12: + usb_pid = CONFIG_TRDX_PID_COLIBRI_VF61IT; + break; + case 13: + usb_pid = CONFIG_TRDX_PID_COLIBRI_VF50IT; + break; + default: + if (is_colibri_vf61()) + usb_pid = CONFIG_TRDX_PID_COLIBRI_VF61IT; + else + usb_pid = CONFIG_TRDX_PID_COLIBRI_VF50; + break; + } + + put_unaligned(usb_pid, &dev->idProduct); + g_dnl_set_serialnumber((char *)serialnr); + + return 0; +} |