Commit ae684caf authored by Yoshihiro Shimoda's avatar Yoshihiro Shimoda Committed by Joerg Roedel

iommu/ipmmu-vmsa: Add support for R-Car Gen4

Add support for R-Car Gen4 like r8a779f0 (R-Car S4-8). The IPMMU
hardware design of r8a779f0 is the same as r8a779a0. So, rename
"r8a779a0" to "rcar_gen4".
Signed-off-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20220208002030.1319984-3-yoshihiro.shimoda.uh@renesas.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent da9f8386
...@@ -719,6 +719,7 @@ static int ipmmu_init_platform_device(struct device *dev, ...@@ -719,6 +719,7 @@ static int ipmmu_init_platform_device(struct device *dev,
static const struct soc_device_attribute soc_needs_opt_in[] = { static const struct soc_device_attribute soc_needs_opt_in[] = {
{ .family = "R-Car Gen3", }, { .family = "R-Car Gen3", },
{ .family = "R-Car Gen4", },
{ .family = "RZ/G2", }, { .family = "RZ/G2", },
{ /* sentinel */ } { /* sentinel */ }
}; };
...@@ -743,7 +744,7 @@ static bool ipmmu_device_is_allowed(struct device *dev) ...@@ -743,7 +744,7 @@ static bool ipmmu_device_is_allowed(struct device *dev)
unsigned int i; unsigned int i;
/* /*
* R-Car Gen3 and RZ/G2 use the allow list to opt-in devices. * R-Car Gen3/4 and RZ/G2 use the allow list to opt-in devices.
* For Other SoCs, this returns true anyway. * For Other SoCs, this returns true anyway.
*/ */
if (!soc_device_match(soc_needs_opt_in)) if (!soc_device_match(soc_needs_opt_in))
...@@ -926,7 +927,7 @@ static const struct ipmmu_features ipmmu_features_rcar_gen3 = { ...@@ -926,7 +927,7 @@ static const struct ipmmu_features ipmmu_features_rcar_gen3 = {
.utlb_offset_base = 0, .utlb_offset_base = 0,
}; };
static const struct ipmmu_features ipmmu_features_r8a779a0 = { static const struct ipmmu_features ipmmu_features_rcar_gen4 = {
.use_ns_alias_offset = false, .use_ns_alias_offset = false,
.has_cache_leaf_nodes = true, .has_cache_leaf_nodes = true,
.number_of_contexts = 16, .number_of_contexts = 16,
...@@ -982,7 +983,10 @@ static const struct of_device_id ipmmu_of_ids[] = { ...@@ -982,7 +983,10 @@ static const struct of_device_id ipmmu_of_ids[] = {
.data = &ipmmu_features_rcar_gen3, .data = &ipmmu_features_rcar_gen3,
}, { }, {
.compatible = "renesas,ipmmu-r8a779a0", .compatible = "renesas,ipmmu-r8a779a0",
.data = &ipmmu_features_r8a779a0, .data = &ipmmu_features_rcar_gen4,
}, {
.compatible = "renesas,rcar-gen4-ipmmu",
.data = &ipmmu_features_rcar_gen4,
}, { }, {
/* Terminator */ /* Terminator */
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment