mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
                     MMC_CAP_WAIT_WHILE_BUSY;
 
-       if (mmc_slot(host).wires >= 8)
+       switch (mmc_slot(host).wires) {
+       case 8:
                mmc->caps |= MMC_CAP_8_BIT_DATA;
-       else if (mmc_slot(host).wires >= 4)
+               /* Fall through */
+       case 4:
                mmc->caps |= MMC_CAP_4_BIT_DATA;
+               break;
+       case 1:
+               /* Nothing to crib here */
+       case 0:
+               /* Assuming nothing was given by board, Core use's 1-Bit */
+               break;
+       default:
+               /* Completely unexpected.. Core goes with 1-Bit Width */
+               dev_crit(mmc_dev(host->mmc), "Invalid width %d\n used!"
+                       "using 1 instead\n", mmc_slot(host).wires);
+       }
 
        if (mmc_slot(host).nonremovable)
                mmc->caps |= MMC_CAP_NONREMOVABLE;