Hi,
here's a new generic driver for SMSC Super I/O chips which should put an end to the copy+paste style of development when it comes to Super I/O code in LinuxBIOS and massively reduce the amount of duplicated code.
This single piece of code should be able to (currently) handle 17 different SMSC Super I/O chips, more can be added with minimal amount of work (two lines of code).
This patch replaces a bunch of v2 Super I/Os, basically "ports" some of the yet unported v1 Super I/Os, and adds support for a bunch of totally new Super I/Os, all in one.
The following devices may or may not be (fully) supported by the driver:
- FDC37b80x - FDC37m70x - FDC37b78x - FDC37b72x - FDC37m81x - FDC37m60x - LPC47b27x - LPC47m10x - LPC47m112 - LPC47m13x - LPC47m15x - LPC47m192 - LPC47s45x - LPC47b397 - A8000 - DME1737 - SCH5307
The floppy disk controller, the parallel port, the serial ports, and the keyboard controller should work with all the chips. For the more advanced stuff (e.g. HWM, ACPI, SMBus) more work is probably required.
So far only the ASUS A8000 has been tested on real hardware (and it works :)
The current lpc47b272 and lpc47m10x in v2 can probably be dropped immediately, AFAICS my driver handles everything those two did. Some other devices in v2 do a bit more at the moment and cannot be dropped, yet.
As I cannot test all of this on hardware, it would be nice if somebody with a supported board using one of these Super I/Os could replace the respective driver with this new 'smscsuperio' driver and test whether everything works ok.
I'm planning similar patches for all other Super I/O vendors, I think we can easily handle 95% of all Super I/Os of each vendor with one such generic driver.
I also plan to use the same technique in v3, so we only need very few, generic drivers there, too.
Open issues: I don't know if or how we can handle boards with multiple Super I/Os on them. Ideas welcome!
Technically the driver reads the device ID of the Super I/O and then initializes only those devices which are supported by that Super I/O.
The code is a bit clumsy in parts, suggestions for improvements are welcome!
Thanks, Uwe.
On Sat, Jul 07, 2007 at 09:18:14PM +0200, Uwe Hermann wrote:
here's a new generic driver for SMSC Super I/O chips which should put an end to the copy+paste style of development when it comes to Super I/O code in LinuxBIOS and massively reduce the amount of duplicated code.
*ping*
Comments, reviews, acks?
Uwe.
Uwe Hermann wrote:
On Sat, Jul 07, 2007 at 09:18:14PM +0200, Uwe Hermann wrote:
here's a new generic driver for SMSC Super I/O chips which should put an end to the copy+paste style of development when it comes to Super I/O code in LinuxBIOS and massively reduce the amount of duplicated code.
*ping*
Comments, reviews, acks?
Uwe.
Whoops, could have sworn I'd already sent this. It looked good to me, I'll test it out on lpc47b272 when I get a chance.
Acked-by: Corey Osgood corey.osgood@gmail.com
On Wed, Jul 11, 2007 at 11:18:06PM -0400, Corey Osgood wrote:
Acked-by: Corey Osgood corey.osgood@gmail.com
Thanks, r2733 (and r2734 :)
Uwe.