2007-09-24 09:54:09

by Rodolfo Giometti

[permalink] [raw]
Subject: [RFC] driving a LCD panel via I2C

Hello,

I have an LCD panel on a custom PXA27x based board and it must be turned
on/off by some special commands via a GPIO throught a I2C chip.

I'd like some suggestion about I can easily manage this situation.

Maybe can I add a special I2C function to get i2c_client pointer and then
using it to send on/off commands to the LCD?

Thanks in advance,

Rodolfo

--

GNU/Linux Solutions e-mail: [email protected]
Linux Device Driver [email protected]
Embedded Systems [email protected]
UNIX programming phone: +39 349 2432127



2007-09-24 10:36:31

by Haavard Skinnemoen

[permalink] [raw]
Subject: Re: [Linux-fbdev-devel] [RFC] driving a LCD panel via I2C

On Mon, 24 Sep 2007 10:58:08 +0200 (CEST)
"Rodolfo Giometti" <[email protected]> wrote:

> Hello,
>
> I have an LCD panel on a custom PXA27x based board and it must be
> turned on/off by some special commands via a GPIO throught a I2C chip.
>
> I'd like some suggestion about I can easily manage this situation.

I have a similar panel in the sense that it needs a bunch of SPI
commands to get started. I implemented a LCD driver
(drivers/video/backlight) for it so that it is automatically turned
on/off at bootup/shutdown, and can be manually turned on/off
through /sys/class/lcd/ltv350qv/power. AFAIK the driver is currently
sitting in the backlight tree scheduled for inclusion in 2.6.24.

> Maybe can I add a special I2C function to get i2c_client pointer and
> then using it to send on/off commands to the LCD?

Just implement it as a regular I2C chip driver which registers a device
with the LCD framework when it is successfully probed.

HÃ¥vard

2007-09-24 23:07:33

by Richard Purdie

[permalink] [raw]
Subject: Re: [Linux-fbdev-devel] [RFC] driving a LCD panel via I2C

On Mon, 2007-09-24 at 12:34 +0200, Haavard Skinnemoen wrote:
> On Mon, 24 Sep 2007 10:58:08 +0200 (CEST)
> "Rodolfo Giometti" <[email protected]> wrote:
> > I have an LCD panel on a custom PXA27x based board and it must be
> > turned on/off by some special commands via a GPIO throught a I2C chip.
> >
> > I'd like some suggestion about I can easily manage this situation.
>
> I have a similar panel in the sense that it needs a bunch of SPI
> commands to get started. I implemented a LCD driver
> (drivers/video/backlight) for it so that it is automatically turned
> on/off at bootup/shutdown, and can be manually turned on/off
> through /sys/class/lcd/ltv350qv/power. AFAIK the driver is currently
> sitting in the backlight tree scheduled for inclusion in 2.6.24.

It is, its queued as
http://git.o-hand.com/?p=linux-rpurdie-backlight;a=commitdiff;h=c962fe18c64ae9139028ee674ab3c380449ce052

Its also worth noting that corgi-bl.c has a variant (akita) that uses a
gpio over an I2C IO expander for the backlight control. The code paths
are a little convoluted since other gpios are used by other drivers. The
base driver is in arch/arm/mach-pxa/akita-ioexp.c, the set_intensity
function is in arch/arm/mach-pxa/corgi_lcd.c and the base backlight
device in arch/arm/mach-pxa/spitz.c. I will be moving the set_intensity
to spitz.c to make things a little clearer.

Also, I'm in the process of turning corgi-bl.c into a generic backlight
driver which might help you, see:

http://git.o-hand.com/?p=linux-rpurdie-backlight;a=commitdiff;h=c74f241bf53bf5251c7c10f65041c20979f6c694

Now, the GPIO framework could help too (it didn't exist when I wrote
akita-ioexp)...

Regards,

Richard

2007-09-26 09:06:09

by Rodolfo Giometti

[permalink] [raw]
Subject: Re: [Linux-fbdev-devel] [RFC] driving a LCD panel via I2C

On Mon, Sep 24, 2007 at 12:34:08PM +0200, Haavard Skinnemoen wrote:
>
> I have a similar panel in the sense that it needs a bunch of SPI
> commands to get started. I implemented a LCD driver
> (drivers/video/backlight) for it so that it is automatically turned
> on/off at bootup/shutdown, and can be manually turned on/off
> through /sys/class/lcd/ltv350qv/power. AFAIK the driver is currently
> sitting in the backlight tree scheduled for inclusion in 2.6.24.

Mmm... it seems a good solution! :)

> Just implement it as a regular I2C chip driver which registers a device
> with the LCD framework when it is successfully probed.

Thanks for your suggestion.

Rodolfo

--

GNU/Linux Solutions e-mail: [email protected]
Linux Device Driver [email protected]
Embedded Systems [email protected]
UNIX programming phone: +39 349 2432127