From: peter meng <mengsanshui@yahoo.com.cn>
To: Iwo Mergler <iwo@call-direct.com.au>
Cc: linux-kernel@vger.kernel.org
Subject: Re: I want to know how to write a lcd driver with spi interface
Date: Tue, 2 Dec 2008 11:40:14 +0800 (CST) [thread overview]
Message-ID: <648837.22167.qm@web15702.mail.cnb.yahoo.com> (raw)
In-Reply-To: <49346E8E.9050707@call-direct.com.au>
Hi,Iwo
Thank you very mach .
I'm a newbie on video driver .
Could you recommended the lcd driver that already use spi interface on Linux to me ?
I want to emulate it .
Best Regards
Peter
--- On Tue, 12/2/08, Iwo Mergler <iwo@call-direct.com.au> wrote:
> From: Iwo Mergler <iwo@call-direct.com.au>
> Subject: Re: I want to know how to write a lcd driver with spi interface
> To: mengsanshui@yahoo.com.cn
> Cc: linux-kernel@vger.kernel.org
> Date: Tuesday, December 2, 2008, 7:09 AM
> peter meng wrote:
> > 1. I want to know how to write a lcd driver with spi
> interface on
> > linux(2.6.24) ? I'm using a
> tft-lcd(FT-G128160UTSW-123W-E vendor --TRULY)
> > with s6d0151(IC) that connected to s3c2412 with spi
> .
> > interface : SDI --> GPG6 WR-->GPG7 CSB
> -->GPG3 RS-->GPB1 RESET -->GPB2 )
> >
> > 2.How the framebuffer related with spi interface ? I
> mean how the
> > framebuffer know it transfer the data with spi
> interfcae not the
> > RGB/80-System interface.
>
> The main difference is that a framebuffer is memory mapped,
> whereas an SPI
> connected display is more suitable for a function call
> abstraction. The two don't
> relate very well.
>
> Your SPI display has an internal frame buffer, which you
> can access via SPI,
> but cannot memory map. A function call interface would
> easily map to the
> SPI transfer, but requires applications written for such an
> API.
>
> If you absolutely have to use a framebuffer abstraction,
> you can create a fake
> framebuffer in RAM. Now, you have to solve the problem of
> keeping the display's
> framebuffer in sync with the RAM one.
>
> The simplest approach is to have a kernel timer fire a few
> times per second
> and transfer the whole RAM fb via SPI every time. The
> faster you refresh, the
> better the synchronisation, but you'll hit CPU or SPI
> bus limits eventually. It
> also causes image artefacts with fast updating content,
> e.g. video.
>
> If your CPU+RAM is much faster than SPI, it might be
> beneficial to detect
> which part of the display was changed and only update that
> stripe/rectangle.
>
> In practice, it is best to use a combination of methods.
> Have a timer based
> update for most GUI-type applications and then modify the
> more demanding
> applications to control the refresh directly, for instance
> through a IOCTL.
>
> If your applications use a graphics library on top of the
> framebuffer (e.g. QTE),
> you may be able to add synchronisation calls into that
> library, for better
> efficiency.
>
> One more avenue to look at is to use the MMU for
> synchronisation. That is,
> you map the RAM fb as read only, such that if an
> application writes to it, it triggers
> an exception. In the exception handler you remap the memory
> as read/write,
> execute the write, update the display and remap r/o. This
> would be very inefficient,
> so you may want to leave the memory mapped r/w and start a
> timer to collect a
> number of changes before mapping r/o again.
>
> The best method very much depends on your use case,
> applications, relative
> speeds of CPU and SPI, size of display, etc.
>
> >
> > 3. Where i can get the example driver on linux ?
> A well documented framebuffer skeleton:
> drivers/video/skeletonfb.c
> A RAM-based framebuffer: drivers/video/vfb.c
> A simple SPI driver (EEPROM): drivers/spi/at25.c
>
> Kind regards,
>
> Iwo
next prev parent reply other threads:[~2008-12-02 3:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-01 11:19 I want to know how to write a lcd driver with spi interface peter meng
2008-12-01 23:09 ` Iwo Mergler
2008-12-02 3:40 ` peter meng [this message]
2008-12-02 22:10 ` Iwo Mergler
2008-12-04 12:58 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=648837.22167.qm@web15702.mail.cnb.yahoo.com \
--to=mengsanshui@yahoo.com.cn \
--cc=iwo@call-direct.com.au \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.