Question regarding partitioning of hardware drivers

Keith J Outwater kjoutwater at raytheon.com
Tue Aug 30 06:04:01 EST 2005


Hello everyone - 
I am developing an embedded ppc system using a 2.4 series kernel and I 
have a question regarding hardware drivers.
I have 4 LEDs connected to a GPIO port.  Each LED is controlled by a bit 
on the I/O port - set a bit to zero to turn the LED on, set the bit to one 
to turn the LED off.  The state of the bits are readable, so 
read-modify-write works.  The GPIO port is implemented with a Xilinx IP 
module and I have a driver available.  The Xilinx driver supports multiple 
GPIO ports. 
I have a driver available for the heartbeat LED ('status_led' by Wolfgang 
Denk) that works.
Now to the question:
I wish to use one of the four LEDs as a 'heartbeat' and the remainder as 
user LEDs.  Since all LEDs are accessed using the same hardware resource, 
the Linux heartbeat driver and the user GPIO driver will have to 
arbitrate.  I would like to separate the status led (heartbeat) driver 
from the GPIO driver as much as I can.  Is there an effective approach for 
doing this?  I think I could brute-force things by simply combining the 
GPIO and status LED drivers and then tell the 'unified' driver which LED 
to use as the heartbeat, but that approach eliminates the benefits of 
using existing drivers 'as-is', among other things.
I'm thinking that what I need to be able to do is give each driver access 
to a mutex that the drivers can then use to coordinate access to the 
hardware, but I'm not sure how to set up the mutex or where to put the 
code that does the initialization and mapping for the hardware access.

Keith



More information about the Linuxppc-embedded mailing list