diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index 98a2d44..12a558c 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -155,10 +155,11 @@
 	{YAVIA,				"Yavia"},
 };
 
-const char * const toradex_display_adapters[] = {
-	[0] = "UNKNOWN DISPLAY ADAPTER",
-	[157] = "Verdin DSI to HDMI Adapter",
-	[159] = "Verdin DSI to LVDS Adapter",
+const struct pid4list toradex_display_adapters[] = {
+	/* the code assumes unknown at index 0 */
+	{0,				"UNKNOWN DISPLAY ADAPTER"},
+	{VERDIN_DSI_TO_HDMI_ADAPTER,	"Verdin DSI to HDMI Adapter"},
+	{VERDIN_DSI_TO_LVDS_ADAPTER,	"Verdin DSI to LVDS Adapter"},
 };
 
 const u32 toradex_ouis[] = {
@@ -179,6 +180,19 @@
 	return toradex_carrier_boards[index].name;
 }
 
+const char * const get_toradex_display_adapters(int pid4)
+{
+	int i, index = 0;
+
+	for (i = 1; i < ARRAY_SIZE(toradex_display_adapters); i++) {
+		if (pid4 == toradex_display_adapters[i].pid4) {
+			index = i;
+			break;
+		}
+	}
+	return toradex_display_adapters[index].name;
+}
+
 static u32 get_serial_from_mac(struct toradex_eth_addr *eth_addr)
 {
 	int i;
diff --git a/board/toradex/common/tdx-cfg-block.h b/board/toradex/common/tdx-cfg-block.h
index 7486ffb..5dc9053 100644
--- a/board/toradex/common/tdx-cfg-block.h
+++ b/board/toradex/common/tdx-cfg-block.h
@@ -120,7 +120,7 @@
 int read_tdx_cfg_block(void);
 int read_tdx_cfg_block_carrier(void);
 const char * const get_toradex_carrier_boards(int pid4);
-
+const char * const get_toradex_display_adapters(int pid4);
 int try_migrate_tdx_cfg_block_carrier(void);
 
 void get_mac_from_serial(u32 tdx_serial, struct toradex_eth_addr *eth_addr);
