Perform major simplification in smbus.c to reduce code size while keeping the functions readable, removing several unused strings and unnecessary arguments passed to several functions.

Add a bunch of PCI device IDs and driver indications for other SMBus controllers, so as to avoid other persons having to do that work again.
Add support for two PIIX4 devices: the standard PIIX4 PCI device ID, and the ServerWorks CSB5, which has a slight twist.

Co-authored-by: Lionel Debroux <lionel_debroux@yahoo.fr>
Co-authored-by: Sam Demeulemeester <sam@x86.fr>
This commit is contained in:
Lionel Debroux
2022-06-06 10:24:45 +02:00
committed by Sam Demeulemeester
parent 6cd356f831
commit e86b04a14a
2 changed files with 305 additions and 138 deletions

View File

@@ -10,6 +10,16 @@
* Copyright (C) 2004-2022 Samuel Demeulemeester.
*/
/* Vendor IDs */
#define VID_ATI 0x1002
#define VID_AMD 0x1022
#define VID_SIS 0x1039
#define VID_NVIDIA 0x10DE
#define VID_VIA 0x1106
#define VID_SERVERWORKS 0x1166
#define VID_HYGON 0x1D94
#define VID_INTEL 0x8086
#define I2C_WRITE 0
#define I2C_READ 1
@@ -74,7 +84,7 @@
#define NVSMBSTS_RES 0x20
#define NVSMBSTS_STATUS 0x1f
struct pci_smbus_controller{
struct pci_smbus_controller {
unsigned vendor;
unsigned device;
void (*get_adr)(void);