How do I write Embedded Linux Driver for nXn matrix keyboard & LCD?

Hi,
I am attempting to write a 8 x 8 matrix keyboard driver for a open embedded linux platform, need help learning writing basic device drivers in linux and interfacing a 16 x 2 alphanumeric LCD based on the HD 44780 display controller.
I would like if someone would point me to links where i can understand Linux device driver development such as GPIO port usage etc.  This is for a embedded development platform.
Thanks
vinit_0932Asked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
KendorConnect With a Mentor Commented:
when I visited the courses rtos and embedded linux we had a pretty cool script done by our prof. unfortunately i don't have it as pdf. but there's good books out there (and i know that you know how to get them as pdfs once you know the title)
get this one:
http://www.amazon.de/s?ie=UTF8&keywords=9780132396554&index=blended
and this:
http://www.amazon.com/Embedded-Linux-Hardware-Software-Interfacing/dp/0672322269

furthermore the internet brings:
- http://free-electrons.com/doc/embedded_linux_kernel_and_drivers.pdf
- http://www.linuxjournal.com/article/7355


if you know german you'll love this:
https://ezs.kr.hsnr.de//TreiberBuch/html//
(it is the university level course in linux driver development)

i try to find some more stuff for you...

0
 
vinit_0932Author Commented:
Thanks Kendor for your links.
0
 
KendorCommented:
by the way - for the hd44780 there are drivers for sure...
check : http://lcdproc.org/
and: http://www.home.unix-ag.org/nils/lcd.html
0
Take Control of Web Hosting For Your Clients

As a web developer or IT admin, successfully managing multiple client accounts can be challenging. In this webinar we will look at the tools provided by Media Temple and Plesk to make managing your clients’ hosting easier.

 
vinit_0932Author Commented:
Hi Kendor,
I have had a look at the links for drivers you suggested but they all use either a serial or parallel port. The serial port essentially needs additional hardware but the parallel port driver in the second link may be useful...
Thanks again.
0
 
HappyCactusConnect With a Mentor Commented:
If your driver is for your own use, you only need a way to send data and commands to the lcd controller. It depends on the processor you have and how the lcd controller is interfaced with the cpu (by using a local bus driven by gpio, or via a memory mapped bus line...)
Also, you need to decide how to control the lcd with software, using ioctl, write or both.
Take a basic linux device driver tutorial, and start with a very basic one. If you do not need to follow a standard interface, you are free to make decisions. Since it's an alpha numeric device, I think you do not need any standard interface (like a frame buffer interface) so the driver is potentially very simple.
Take a look to rubini's book "Writing linux device driver, 2nd edition", freely available on internet. You need to read the chapters about device drivers basics and character devices (you do not need interrupts or dma, I think).
Start modifying a working, and very basilar, driver. It's not too difficult.
0
 
vinit_0932Author Commented:
Thanks HappyCactus for your pointers on Linux Device Driver development.
Appreciate your inputs.
0
All Courses

From novice to tech pro — start learning today.