.has_tdma = false,
 };
 
+static const struct mv_cesa_caps kirkwood_caps = {
+       .nengines = 1,
+       .cipher_algs = orion_cipher_algs,
+       .ncipher_algs = ARRAY_SIZE(orion_cipher_algs),
+       .ahash_algs = orion_ahash_algs,
+       .nahash_algs = ARRAY_SIZE(orion_ahash_algs),
+       .has_tdma = true,
+};
+
 static const struct mv_cesa_caps armada_370_caps = {
        .nengines = 1,
        .cipher_algs = armada_370_cipher_algs,
 
 static const struct of_device_id mv_cesa_of_match_table[] = {
        { .compatible = "marvell,orion-crypto", .data = &orion_caps },
+       { .compatible = "marvell,kirkwood-crypto", .data = &kirkwood_caps },
+       { .compatible = "marvell,dove-crypto", .data = &kirkwood_caps },
        { .compatible = "marvell,armada-370-crypto", .data = &armada_370_caps },
        { .compatible = "marvell,armada-xp-crypto", .data = &armada_xp_caps },
        { .compatible = "marvell,armada-375-crypto", .data = &armada_xp_caps },
                caps = match->data;
        }
 
-       if (caps == &orion_caps && !allhwsupport)
+       if ((caps == &orion_caps || caps == &kirkwood_caps) && !allhwsupport)
                return -ENOTSUPP;
 
        cesa = devm_kzalloc(dev, sizeof(*cesa), GFP_KERNEL);