imx-drm: ldb and display power on sequence

Christian Gmeiner christian.gmeiner at gmail.com
Tue Mar 11 04:51:48 EDT 2014


2014-03-07 12:18 GMT+01:00 Christian Gmeiner <christian.gmeiner at gmail.com>:
> Hi Philipp,
>
>> Am Donnerstag, den 06.03.2014, 13:34 +0100 schrieb Christian Gmeiner:
>>> Hi all.
>>>
>>> On our custom board design (imx6d) we are using a TFT-display
>>> connceted via LVDS.
>>> The datasheet [0] says that the display needs a defined power up
>>> sequence. I need
>>> to control the following stuff:
>>>
>>> - LCD_ON (gpio2 3)
>>> - Backlight ON (gpio2 0)
>>> - PMW for dimm
>>>
>>> At the moment I have the backlight suff ready:
>>>
>>>        backlight {
>>>                compatible = "pwm-backlight";
>>>                pwms = <&pwm4 0 50000>;
>>>                enable-gpios = <&gpio2 0 0>;
>>>
>>>                brightness-levels = <0 1 2 3 4>;
>>>                default-brightness-level = <4>;
>>>        };
>>>
>>> Now I only need to enable the LCD_ON and wait 40ms before turning on
>>> the LVDS clocks and data.
>>
>> This can be done by adding a regulator-enable-ramp-delay property to the
>> gpio regulator.
>>
>
> Correct.
>
>>> For this I tought to add a regulator support in
>>> imx_ldb_encoder_commit(..) of imx-ldb.c.
>>>That should give me the correct sequence for
>>> LVDS on to LVDS data/clock. Now I only need to get the pwm-backlight
>>> driver doing its work after ldb is ready.
>>
>> We should rather add drm_panel support to imx-ldb. I have just sent a
>> patch for this.
>> The simple-panel driver already supports regulator and backlight.
>>
>
> I am still life in the world of a stable kernel called 3.13.6 :) Will
> backport the simple-panel driver
> and will have a look at your patches - today.
>

I backported your patch and updated my dts file. It looks better now
but one thing is does not work.
The datasheet says I need to enable the lcd, enable LVDS data and then
I can enable the backlight.
With the simple panel following happens:

panel_simple_enable:
- regulator_enable(p->supply);
- gpio_set_value
- backlight_update_status

The result of this sequence are graphical glitches and a ghost picture
on the panel. Need to think
about it to find a good solution for it. Maybe there should be a 2 way
init phase for a panel.
- preinit - turn on power-supply and set gpio
- init ipu
- postinit - unblank backlight

--
Christian Gmeiner, MSc

https://soundcloud.com/christian-gmeiner



More information about the linux-arm-kernel mailing list