summaryrefslogtreecommitdiff
path: root/board/toradex/colibri_vf/colibri_vf.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/toradex/colibri_vf/colibri_vf.c')
-rw-r--r--board/toradex/colibri_vf/colibri_vf.c41
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 92af6370cd..0740a264e5 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;
+}