diff --git a/hal/msm8974/hw_info.c b/hal/msm8974/hw_info.c
index 651634c..d8d6215 100644
--- a/hal/msm8974/hw_info.c
+++ b/hal/msm8974/hw_info.c
@@ -568,6 +568,22 @@
     }
 }
 
+static void update_hardware_info_holi(
+          struct hardware_info *hw_info,
+          const char *snd_card_name)
+{
+    if (!strncmp(snd_card_name, "holi-mtp-snd-card",
+                 sizeof("holi-mtp-snd-card"))) {
+        strlcpy(hw_info->name, "holi", sizeof(hw_info->name));
+    } else if (!strncmp(snd_card_name, "holi-qrd-snd-card",
+                 sizeof("holi-qrd-snd-card"))) {
+        strlcpy(hw_info->name, "holi", sizeof(hw_info->name));
+    } else {
+        ALOGW("%s: Not a holi device", __func__);
+    }
+    hw_info->is_stereo_spkr = false;
+}
+
 static void update_hardware_info_lahaina(
           struct hardware_info *hw_info,
           const char *snd_card_name)
@@ -916,6 +932,9 @@
     } else if(strstr(snd_card_name, "lahaina")) {
         ALOGV("LAHAINA - variant soundcard");
         update_hardware_info_lahaina(hw_info, snd_card_name);
+    } else if(strstr(snd_card_name, "holi")) {
+        ALOGV("HOLI - variant soundcard");
+        update_hardware_info_holi(hw_info, snd_card_name);
     } else if(strstr(snd_card_name, "sdm439")) {
         ALOGV("SDM439 - variant soundcard");
         update_hardware_info_sdm439(hw_info, snd_card_name);
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 0be37a4..5a987a0 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1826,6 +1826,10 @@
                    sizeof("bengal-scubaidp-snd-card")) ||
          !strncmp(snd_card_name, "bengal-qrd-snd-card",
                    sizeof("bengal-qrd-snd-card")) ||
+         !strncmp(snd_card_name, "holi-mtp-snd-card",
+                   sizeof("holi-mtp-snd-card")) ||
+         !strncmp(snd_card_name, "holi-qrd-snd-card",
+                   sizeof("holi-qrd-snd-card")) ||
          !strncmp(snd_card_name, "msm8937-snd-card-mtp",
                    sizeof("msm8937-snd-card-mtp")) ||
          !strncmp(snd_card_name, "msm8953-snd-card-mtp",
@@ -3395,6 +3399,10 @@
                sizeof("bengal-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, "holi-qrd-snd-card",
+               sizeof("holi-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, "qcs405-wsa-snd-card",
                sizeof("qcs405-wsa-snd-card"))) {
         platform_info_init(get_xml_file_path(PLATFORM_INFO_XML_PATH_WSA_NAME),
@@ -3739,6 +3747,7 @@
             !strncmp(snd_card_name, "lito", strlen("lito")) ||
             !strncmp(snd_card_name, "atoll", strlen("atoll")) ||
             !strncmp(snd_card_name, "trinket", strlen("trinket"))||
+            !strncmp(snd_card_name, "holi", strlen("holi"))||
             !strncmp(snd_card_name, "bengal", strlen("bengal"))) {
             my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].bitwidth_mixer_ctl =
                 strdup("WSA_CDC_DMA_RX_0 Format");
@@ -3767,8 +3776,9 @@
             if (default_rx_backend)
                 free(default_rx_backend);
             default_rx_backend = strdup("WSA_CDC_DMA_RX_0");
-            if(!strncmp(snd_card_name, "bengal", strlen("bengal")) &&
-               strncmp(snd_card_name, "bengal-scuba", strlen("bengal-scuba"))) {
+            if((!strncmp(snd_card_name, "bengal", strlen("bengal")) &&
+               strncmp(snd_card_name, "bengal-scuba", strlen("bengal-scuba"))) ||
+               !strncmp(snd_card_name, "holi", strlen("holi"))) {
                 my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].bitwidth_mixer_ctl =
                         strdup("RX_CDC_DMA_RX_1 Format");
                 my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].samplerate_mixer_ctl =
