[PATCHv3 19/41] OMAPDSS: panel-dpi: Add DT support

Tony Lindgren
2014-04-25T23:53:49Z

* Tomi Valkeinen <tomi.valkeinen@ti.com> [140424 02:53]:
> On 18/04/14 18:51, Tony Lindgren wrote:
>
> >> + gpio = of_get_gpio(node, 0);
> >> + if (gpio_is_valid(gpio) || gpio == -ENOENT) {
> >> + ddata->enable_gpio = gpio;
> >> + } else {
> >> + dev_err(&pdev->dev, "failed to parse enable gpio\n");
> >> + return gpio;
> >> + }
> >
> > We should set the GPIO polarity based on the OF_GPIO_ACTIVE_LOW like
> > gpio_backlight_probe_dt is doing.
>
> Instead of doing it with the old gpio API, and checking the 'active'
> flag everywhere, I think we can use the new gpiod API which handles the
> polarity automatically.
>
> I attached prototype patches (based on -rc2) for panel dpi using that
> approach. It's a bit messier than I'd like, because for non-DT boot we
> need to request the gpio using the old API, and then convert it to
> gpio_desc. We can remove that code when all the boards use DT.
>
> I've compiled tested this only, as I don't have DPI panels I could use.
> I did try similar approach for TFP410, and it seemed to work fine.

Got these working by updating my test patch to use enable-gpios instead
of gpios, and had to change from GPIO_ACTIVE_LOW to GPIO_ACTIVE_HIGH.
Are we now also breaking legacy booting by reversing the polarity?

In any case, looks like we have some duplicate panel code.. Turns
out most panel dpi users for omap3 board-*.c files are just
sharp-ls037v7dw01 panels but configured in QVGA mode. At least for
EVM and and LDP based on looking at the pictures and the configuration
pins (using the names kernel):

QVGA = lcd MO
reset = lcd RESB
...

Then the enable_gpio should be just a GPIO controlled 3.3V regulator
in most cases. I suggest we move them over to ls037v7dw01 and allow
configuring them both for VGA and QVGA depending on the orientation.

I guess you do have some device with ls037v7dw01 since you've been
patching it?

Regards,

Tony