static void enable_smbus(void)
{
device_t dev;
- uint16_t device_id;
- /* Set the SMBus device statically. */
+ /* Set the SMBus device statically (D31:F3). */
dev = PCI_DEV(0x0, 0x1f, 0x3);
- /* Check to make sure we've got the right device. */
- device_id = pci_read_config16(dev, 0x2);
-
- /* Clear bits 7-4 (the only bits that vary between models). */
- device_id &= 0xff0f;
-
- if (device_id != 0x2403) {
- die("Device not found, Corey probably screwed up!");
- }
-
/* Set SMBus I/O base. */
pci_write_config32(dev, SMB_BASE,
SMBUS_IO_BASE | PCI_BASE_ADDRESS_SPACE_IO);
/* Clear any lingering errors, so transactions can run. */
outb(inb(SMBUS_IO_BASE + SMBHSTSTAT), SMBUS_IO_BASE + SMBHSTSTAT);
- print_debug("SMBus controller enabled\r\n");
+ print_debug("SMBus controller enabled\n");
}
static inline int smbus_read_byte(unsigned device, unsigned address)
{
- return do_smbus_read_byte(device, address);
-}
-
-static void smbus_write_byte(unsigned device, unsigned address,
- unsigned char val)
-{
- print_err("Unimplemented smbus_write_byte() called\r\n");
- return;
+ return do_smbus_read_byte(SMBUS_IO_BASE, device, address);
}
-static inline int smbus_write_block(unsigned device, unsigned length,
- unsigned cmd, unsigned data1,
- unsigned data2)
-{
- return do_smbus_write_block(device, length, cmd, data1, data2);
-}