filename = "ucode13";
        else if (rev == 14)
                filename = "ucode14";
-       else if (rev >= 15)
+       else if (rev == 15)
                filename = "ucode15";
+       else if ((rev >= 16) && (rev <= 20))
+               filename = "ucode16_mimo";
        else
                goto err_no_ucode;
        err = b43_do_request_fw(ctx, filename, &fw->ucode);
                        goto err_no_initvals;
                break;
        case B43_PHYTYPE_N:
-               if ((rev >= 11) && (rev <= 12))
+               if (rev >= 16)
+                       filename = "n0initvals16";
+               else if ((rev >= 11) && (rev <= 12))
                        filename = "n0initvals11";
                else
                        goto err_no_initvals;
                        goto err_no_initvals;
                break;
        case B43_PHYTYPE_N:
-               if ((rev >= 11) && (rev <= 12))
+               if (rev >= 16)
+                       filename = "n0bsinitvals16";
+               else if ((rev >= 11) && (rev <= 12))
                        filename = "n0bsinitvals11";
                else
                        goto err_no_initvals;