This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[DRA74x] serializer (DS90UB925Q) /deserializer (DS90UB926Q) driver query!

Other Parts Discussed in Thread: DS90UB921-Q1

Dear All,

I have display panel connected using  serializer (DS90UB925Q) /deserializer (DS90UB926Q) on custom target based on dra74x in following way.

Initial Target:

VOUT2  --->  Serializer (DS90UB925Q) (on i2c) ---> FPD Link III ---> Deserializer (DS90UB926Q) ---> Display Panel


Later:

VOUT2  ---> Serializer (DS90UB921-Q1) --->FPD Link III ---> Deserializer (DS90UB926Q) ---> Display Panel

 

I am trying to understand dts configuration and driver code required for above mentioned configuration with Linux 4.4.14 (from processor sdk linux automotive 3.00.00.03). It would be very helpful if anyone here clear the following doubts and give some comments/inputs.

Do I need to implement something similar or same can be used for ser/deser driver as “drivers/video/serdes/fpd3_serdes.c, fpd3_i2c_adap.c”? Will this work with drm/omapdrm?

Or

Do I need to implement something similar to drm bridge drivers as implemented here “drivers/gpu/drm/omapdrm/displays/”? Is there any reference driver available for ser/deser?

How do I specify panel timings ? Does this require “drivers/gpu/drm/omapdrm/displays/panel-dpi.c” to be used?                                            

Do I need use similar dts config used in [1]? I don't have separate chip for power and backlight.

aliases {
                   display1 = &fpd_disp;
                  i2c7 = &disp_ser;
          };
 

[1]review.omapzoom.org/gitweb

Thanks & Regards,

Vikash


  • Hi, Vikash,

    The experts have been pinged.

    Regards,
    Mariya
  • Hi Vikash,

    The serdes driver only allows you to connect the serializer and de-serializer to each other, that's it

    For the 921, the default driver doesn't have support for it. You'll have to add to this driver.

    If you have any devices like touch control on the display, then you may have to setup slave aliases.

    The bridge driver is required for each panel for passing the timing parameters. (Refer panel-tlc59108 for reference)

    Assuming that the old configuration worked, you already have the bridge driver.

    All that is needed is to update the driver to add 921 init sequence support

    Regards,

    Nikhil D

  • Hi Nikhil,

    Thanks for your reply. Still not clear to me on following inputs.

    >> For the 921, the default driver doesn't have support for it. You'll have to add to this driver.
    Do I need to add support for serialize 921 and de-serializer 926 to "drivers/video/serdes/fpd3_serdes.c, fpd3_i2c_adap.c"? or Do I need to create the separate driver similar to it? Is this DRM/OMAPDRM compatible?

    >> The bridge driver is required for each panel for passing the timing parameters. (Refer panel-tlc59108 for reference).
    Can I use "panel-dpi" i.e. drivers/gpu/drm/omapdrm/displays/panel-dpi.c?

    Also If I understood correctly, I don't need to have drivers like which are present in “drivers/gpu/drm/omapdrm/displays/" for serializer and de-serializer, only panel driver is required in this folder.

    Regards,
    Vikash
  • Hi Vikash,

    You are right.

    Modify the fdp3_serdes.c driver to add the 921 and 926 support.

    In 4.4 kernel, panel-dpi.c is a generic DPI driver, which can retrieve the timing info from the Device tree node.

    So you can reuse the panel-dpi.c driver 'as it is' and just add a device tree node with compatible = "panel-dpi"

    And specify all the timing info in the DT node.

    Refer to "arch/arm/boot/dts/dra7x-evm-lcd-lg.dtsi"

    I hope this solves your issue.

  • Thanks. Your comment and inputs helped.