[PATCH v4 5/5] ARM: exynos: dts: Add FIMD DT binding Documentation

Sylwester Nawrocki sylvester.nawrocki at gmail.com
Sat Feb 23 08:37:55 EST 2013


Hi Vikas,

On 02/22/2013 08:06 AM, Vikas Sajjan wrote:
>>>>>> +++ b/Documentation/devicetree/bindings/drm/exynos/fimd.txt
[...]
>>>>>> @@ -0,0 +1,37 @@
>>>>>> +Device-Tree bindings for fimd driver

Perhaps something like:

Exynos SoC display controller (FIMD)

would do ? Even though bindings are to be used by some driver we should
be focusing on describing the actual hardware.

>>>>>> +FIMD stands for Fully Interactive Mobile Display, is the Display
>>>>>> Controller for
>>>>>> +the Exynos series of SoCs which transfers the image data from a video
>>>>>> buffer
>>>>>> +located in the system memory to an external LCD interface.
>>>>>> +
>>>>>> +Required properties:
>>>>>> +- compatible := value should be "samsung,exynos5-fimd" or
>>>>>> "samsung,exynos4-fimd"
>>>>>
>>>>>
>>>>> What about older SoCs like S5Pv210 ? There is the FIMD IP block in those
>>>>> SoCs
>>>>> as well. There are also differences in the FIMD IP block across various
>>>>> SoC
>>>>> version, so either you need to list the quirks in the bindings or use an
>>>>> appropriate compatible properties if there are significant differences
>>>>> across
>>>>> FIMDs that make them not really compatible.
>>>>>
>>>> as of now, I was working on Exynos4 and Exynos5 SoC. have to really
>>>> see the differences in the previous SoC and how to handle all those
>>>> FIMD IPs in the driver.
>>>> if you know the differences between these FIMD IPs, please let me know.
>>>
>>>
>>> Please have a look at drivers/video/s3c-fb.c and all driver_data structures
>>> defined for various SoCs.
>>>
>>> [...]
>>>
>> I went through the driver_data structures define for s5p64x0,s3c2443,
>> s5pv210, s5pc100 ad 64xx SoCs.
>> there are some differences w.r.t number of windows, osd_stride  length
>> and regsiter offsets.
>> but  I dont have access to all the above mentioned Boards and so that
>> I can modify and test on each one of them.

I don't ask you to add support for all existing FIMD variants. Please just
make sure the bindings you're documenting here, with focus on the Exynos
SoCs, are also usable for older SoC series.

> as far as i know this file exynos_drm_fimd.c is meant only for exynos4
> onwards SoCs,

Yes, but the bindings are for FIMD IP block and should possibly be 
consistent
across all SoC series. I think we should bear in mind that eventually all
these SoCs get device tree support. Actually I've seen already patches for
s3c24xx and s3c64xx SoC series.

> ( I think Mr. Inki Dae can throw more light on this )
> and also the previous  boards based on  s5p64x0,s3c2443,s5pv210,
> s5pc100 and 64xx, dont have DT support.

We can't tell for sure the SoC series listed above won't get device tree
support sooner or later, as this is an open source project.

> also in the function drm_fimd_get_driver_data(), there is provision to
> get the NON-DT "driver data" as well. So somebody who wants to use
> this driver for the above mentioned SoCs can add the driver-data.

I'm not concerned about this particular driver, only about the DT bindings
that are not supposed to change over time. So some care needs to be taken
when designing the bindings.

> so wanted to know how you want me to go about it.

My concern was that you use "samsung,exynos4-fimd" for FIMD IP found on all
Exynos4 SoC, whereas there could be some differences for Exynos4210 and
Exynos4212/4412. It looks like both are shipped with FIMD rev. 6.0 though.
Anyway, still there are some details that may need to be handled, e.g. 
maximum
VCLK frequency is 80 MHz for Exynos4210 FIMD0 and Exynos4412 FIMD (there is
only one there in Exynos4412 as opposed to two in Exynos4210), while for
Exynos4210 FIMD1 it is only 50 MHz. When there are differences we really
care about (and support for FIMD1 is added) I guess things like this could
be handled through optional properties.

I thought about something like:

compatible = "samsung,exynos4210-fimd"; for Exynos4210 and
compatible = "samsung,exynos4212-fimd", "samsung,exynos4210-fimd"; for
               Exynos4212 and Exynos412,

but "samsung,exynos4-fimd" seems good enough, since the FIMD IP block
appears nearly identical across Exynos4210...Exynos4412.

--

Thanks,
Sylwester


More information about the devicetree-discuss mailing list