[PATCH 3/8] board: toradex: make USB PID from config block optional

Oleksandr Suvorov
2021-07-22T15:50:45Z

From: Stefan Agner <stefan.agner@toradex.com>

If config block support is enabled, USB gadget modes unconditionally
use Toradex Product ID as USB PID. Some applications might prefer a
different and/or static USB PID. Add a Kconfig configuration option
to descide whether to use USB PID from config block or the fallback
config option CONFIG_G_DNL_PRODUCT_NUM.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
---

board/toradex/common/Kconfig | 10 ++++++++++
board/toradex/common/tdx-common.c | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/board/toradex/common/Kconfig b/board/toradex/common/Kconfig
index 36068d2e3b..1f6a5e4db5 100644
--- a/board/toradex/common/Kconfig
+++ b/board/toradex/common/Kconfig
@@ -84,4 +84,14 @@ config TDX_CFG_BLOCK_EXTRA
Enables fetching auxilary config blocks from carrier board/display
adapter EEPROMs.

+config TDX_CFG_BLOCK_USB_GADGET_PID
+ bool "Use config block product ID as USB product ID"
+ depends on USB_GADGET_DOWNLOAD
+ default y
+ help
+ Use the Toradex product ID learned from the config block as USB
+ product ID. An offset of 0x4000 is added to the product ID since
+ inside the Toradex vendor ID (0x1b67) the range starting from
+ offset 0x4000 is reserved for Colibri/Apalis modules.
+
endif
diff --git a/board/toradex/common/tdx-common.c b/board/toradex/common/tdx-common.c
index a3d287ed5e..061abf7537 100644
--- a/board/toradex/common/tdx-common.c
+++ b/board/toradex/common/tdx-common.c
@@ -147,7 +147,7 @@ int show_board_info(void)
return 0;
}

-#ifdef CONFIG_USB_GADGET_DOWNLOAD
+#ifdef CONFIG_TDX_CFG_BLOCK_USB_GADGET_PID
int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
{
unsigned short usb_pid;
--
2.31.1