On 18.03.2014 11:52, Cho KyongHo wrote:
On Fri, 14 Mar 2014 14:39:33 +0100, Tomasz Figa wrote:
@@ -557,11 +558,23 @@ static int exynos_sysmmu_probe(struct platform_device 
*pdev)
        return 0;
   }

-static struct platform_driver exynos_sysmmu_driver = {
-       .probe          = exynos_sysmmu_probe,
-       .driver         = {
+#ifdef CONFIG_OF
+static struct of_device_id sysmmu_of_match[] __initconst = {
+       { .compatible   = "samsung,sysmmu-v1", },
+       { .compatible   = "samsung,sysmmu-v2", },
+       { .compatible   = "samsung,sysmmu-v3.1", },
+       { .compatible   = "samsung,sysmmu-v3.2", },
+       { .compatible   = "samsung,sysmmu-v3.3", },

Do you need all these compatible strings? I mean, are there any
implementation differences that can't be identified by reading IP
registers, such as REG_MMU_VERSION?


Unfortunately, there is a SoC which overrides REG_MMU_VERSION with
a value for RTL designers and it is not related to System MMU
versions.

OK.

What about having a generic compatible string for Samsung SysMMU then, but an additional property that can override the version to account for such brokenness? If not provided, the version would be read from REG_MMU_VERSION.

Best regards,
Tomasz
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to