Hey guys--I hate to bump this so soon, but my current project is pretty much stalled without being able to approach this issue one way or another.
Does anyone have any good documentation I can read to learn how to interact with (either in userspace or kernel-level) LPC devices, specifically the PC87381 Super I/O device? Perhaps there's some code in coreboot demonstrating how GPIO ports are manipulated?
On Mon, 2011-04-04 at 19:07 -0400, Jeremy Moles wrote:
Hello everyone.
I have my hands on a piece of hardware here using the Super I/O device listed in the subject; that is:
Winbond LPC Super I/O WPCN381U
My first question is, has anyone else encountered this device?
SVN trunk of superiotool detects this device as:
Found NSC PC87382 (sid=0xf4, srid=0x04) at 0x2e
...and I know from the manufacturer that the device is actually the one mentioned previously. However, I know from the specsheet that the hardware is pin-compatible with the Winbond PC87381, which has a very similar name to the device it "thinks" it is.
http://www.winbond-usa.com/products/winbond_products/pdfs/APC/WPCN381U_pba.p...
Does this mean that superiotool is actually detecting it properly?
- Finally, the device I want to use waits for input via the serial port,
but before this can be initiated the device must be powered on via the Super I/O module. According to the manufacturer, I do this by activating the GPIO03 pin. I know superiotool is a read-only tool, given I know these pieces of data, is there an easy way to ping this particular bit?
- My first approach to enable this device was to write a small kernel
module that would call gpio_request(3); however, this always returns -ENOSYS or -EINVAL. This clearly isn't the right approach. :)
I realize this is probably a question for LKML proper, but I figured I'd ask here first and see what the Fates have in store. :)