diff --git a/hal/msm8974/hw_info.c b/hal/msm8974/hw_info.c
index bd53fbf..cbcb7ae 100644
--- a/hal/msm8974/hw_info.c
+++ b/hal/msm8974/hw_info.c
@@ -1,6 +1,8 @@
 /*
  * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
  *
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
  * met:
@@ -558,6 +560,14 @@
                  sizeof("kona-qrd-snd-card"))) {
         strlcpy(hw_info->name, "kona", sizeof(hw_info->name));
         hw_info->is_stereo_spkr = false;
+    } else if (!strncmp(snd_card_name, "kona-xrfusion-ult-snd-card",
+                 sizeof("kona-xrfusion-ult-snd-card"))) {
+        strlcpy(hw_info->name, "kona", sizeof(hw_info->name));
+        hw_info->is_stereo_spkr = true;
+    } else if (!strncmp(snd_card_name, "kona-xrfusionult-snd-card",
+                 sizeof("kona-xrfusionult-snd-card"))) {
+        strlcpy(hw_info->name, "kona", sizeof(hw_info->name));
+        hw_info->is_stereo_spkr = true;
     } else if (!strncmp(snd_card_name, "lito-qrd-snd-card",
                  sizeof("lito-qrd-snd-card"))) {
         strlcpy(hw_info->name, "lito", sizeof(hw_info->name));
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 3ecbe6e..2b679ac 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -2,6 +2,8 @@
  * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
  * Not a Contribution.
  *
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
  * Copyright (C) 2013 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -71,6 +73,8 @@
 #define PLATFORM_INFO_XML_PATH_I2S_NAME "audio_platform_info_extcodec.xml"
 #define PLATFORM_INFO_XML_PATH_WSA_NAME  "audio_platform_info_wsa.xml"
 #define PLATFORM_INFO_XML_PATH_TDM_NAME  "audio_platform_info_tdm.xml"
+#define PLATFORM_INFO_XML_PATH_XRFUSION  "audio_platform_info_xrfusion.xml"
+#define PLATFORM_INFO_XML_PATH_XRFUSIONULT  "audio_platform_info_xrfusionult.xml"
 
 #include <linux/msm_audio.h>
 #if defined (PLATFORM_MSM8998) || (PLATFORM_SDM845) || (PLATFORM_SDM710) || \
@@ -1797,6 +1801,10 @@
                    sizeof("kona-mtp-snd-card")) ||
          !strncmp(snd_card_name, "kona-qrd-snd-card",
                    sizeof("kona-qrd-snd-card")) ||
+         !strncmp(snd_card_name, "kona-xrfusion-ult-snd-card",
+                   sizeof("kona-xrfusion-ult-snd-card")) ||
+         !strncmp(snd_card_name, "kona-xrfusionult-snd-card",
+                   sizeof("kona-xrfusionult-snd-card")) ||
          !strncmp(snd_card_name, "lito-mtp-snd-card",
                    sizeof("lito-mtp-snd-card")) ||
          !strncmp(snd_card_name, "lito-qrd-snd-card",
@@ -3379,6 +3387,14 @@
                sizeof("kona-qrd-snd-card"))) {
         platform_info_init(get_xml_file_path(PLATFORM_INFO_XML_PATH_QRD_NAME),
             my_data, PLATFORM);
+    } else if (!strncmp(snd_card_name, "kona-xrfusion-ult-snd-card",
+               sizeof("kona-xrfusion-ult-snd-card"))) {
+        platform_info_init(PLATFORM_INFO_XML_PATH_XRFUSION,
+            my_data, PLATFORM);
+    } else if (!strncmp(snd_card_name, "kona-xrfusionult-snd-card",
+               sizeof("kona-xrfusionult-snd-card"))) {
+        platform_info_init(PLATFORM_INFO_XML_PATH_XRFUSIONULT,
+            my_data, PLATFORM);
     } else if (!strncmp(snd_card_name, "sm8150-tavil-qrd-snd-card",
                sizeof("sm8150-tavil-qrd-snd-card"))) {
         platform_info_init(get_xml_file_path(PLATFORM_INFO_XML_PATH_QRD_NAME),
