#include <sound/soc-dapm.h>
 #include <sound/soc_sdw_utils.h>
 
+#define CS42L43_SPK_VOLUME_0DB 128 /* 0dB Max */
+
 static const struct snd_soc_dapm_route cs42l43_hs_map[] = {
        { "Headphone", NULL, "cs42l43 AMP3_OUT" },
        { "Headphone", NULL, "cs42l43 AMP4_OUT" },
                        return -ENOMEM;
        }
 
+       ret = snd_soc_limit_volume(card, "cs42l43 Speaker Digital Volume",
+                                  CS42L43_SPK_VOLUME_0DB);
+       if (ret)
+               dev_err(card->dev, "cs42l43 speaker volume limit failed: %d\n", ret);
+       else
+               dev_info(card->dev, "Setting CS42L43 Speaker volume limit to %d\n",
+                        CS42L43_SPK_VOLUME_0DB);
+
        ret = snd_soc_dapm_add_routes(&card->dapm, cs42l43_spk_map,
                                      ARRAY_SIZE(cs42l43_spk_map));
        if (ret)