Subject: [PATCH v11 13/27] iommu/exynos: support for device tree

From: [email-masked] (Tomasz Figa)
Date: Tue, 18 Mar 2014 16:25:11 +0100

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