From 73451fdea266e24a3ce99e1bf41f49735dc62d28 Mon Sep 17 00:00:00 2001 From: Kyösti Mälkki Date: Mon, 6 Jan 2020 19:00:31 +0200 Subject: sb/intel/common: Add smbus_set_slave_addr() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I7dddb61fab00e0f4f67d4eebee0cfe8dcd99f4ab Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/38230 Reviewed-by: Angel Pons Tested-by: build bot (Jenkins) --- src/southbridge/intel/bd82x6x/pch.h | 1 - src/southbridge/intel/bd82x6x/smbus.c | 4 +--- src/southbridge/intel/common/smbus.c | 5 +++++ src/southbridge/intel/common/smbus.h | 2 ++ src/southbridge/intel/ibexpeak/pch.h | 1 - src/southbridge/intel/ibexpeak/smbus.c | 4 +--- src/southbridge/intel/lynxpoint/pch.h | 1 - src/southbridge/intel/lynxpoint/smbus.c | 4 +--- 8 files changed, 10 insertions(+), 12 deletions(-) (limited to 'src/southbridge/intel') diff --git a/src/southbridge/intel/bd82x6x/pch.h b/src/southbridge/intel/bd82x6x/pch.h index 089d4586bf..5f353af1ee 100644 --- a/src/southbridge/intel/bd82x6x/pch.h +++ b/src/southbridge/intel/bd82x6x/pch.h @@ -238,7 +238,6 @@ void early_usb_init(const struct southbridge_usb_port *portmap); #define PCH_SMBUS_DEV PCI_DEV(0, 0x1f, 3) #define SMB_BASE 0x20 #define HOSTC 0x40 -#define SMB_RCV_SLVA 0x09 /* HOSTC bits */ #define I2C_EN (1 << 2) diff --git a/src/southbridge/intel/bd82x6x/smbus.c b/src/southbridge/intel/bd82x6x/smbus.c index 0a9c17598e..b011c493a7 100644 --- a/src/southbridge/intel/bd82x6x/smbus.c +++ b/src/southbridge/intel/bd82x6x/smbus.c @@ -20,8 +20,6 @@ #include #include #include -#include -#include #include #include "pch.h" @@ -38,7 +36,7 @@ static void pch_smbus_init(struct device *dev) /* Set Receive Slave Address */ res = find_resource(dev, PCI_BASE_ADDRESS_4); if (res) - outb(SMBUS_SLAVE_ADDR, res->base + SMB_RCV_SLVA); + smbus_set_slave_addr(res->base, SMBUS_SLAVE_ADDR); } static int lsmbus_read_byte(struct device *dev, u8 address) diff --git a/src/southbridge/intel/common/smbus.c b/src/southbridge/intel/common/smbus.c index f6805ad50f..d253ae7e04 100644 --- a/src/southbridge/intel/common/smbus.c +++ b/src/southbridge/intel/common/smbus.c @@ -101,6 +101,11 @@ void smbus_host_reset(uintptr_t base) host_and_or(base, SMBHSTSTAT, 0xff, 0); } +void smbus_set_slave_addr(uintptr_t base, u8 slave_address) +{ + host_outb(base, SMB_RCV_SLVA, slave_address); +} + static int host_completed(u8 status) { if (status & SMBHSTSTS_HOST_BUSY) diff --git a/src/southbridge/intel/common/smbus.h b/src/southbridge/intel/common/smbus.h index 20443e1060..e72203e46e 100644 --- a/src/southbridge/intel/common/smbus.h +++ b/src/southbridge/intel/common/smbus.h @@ -32,4 +32,6 @@ #define SMBUS_PIN_CTL 0xf #define SMBSLVCMD 0x11 +#define SMB_RCV_SLVA SMBTRNSADD + #endif diff --git a/src/southbridge/intel/ibexpeak/pch.h b/src/southbridge/intel/ibexpeak/pch.h index 5785ef1a67..529b7a2e83 100644 --- a/src/southbridge/intel/ibexpeak/pch.h +++ b/src/southbridge/intel/ibexpeak/pch.h @@ -232,7 +232,6 @@ void pch_enable(struct device *dev); #define PCH_SMBUS_DEV PCI_DEV(0, 0x1f, 3) #define SMB_BASE 0x20 #define HOSTC 0x40 -#define SMB_RCV_SLVA 0x09 /* HOSTC bits */ #define I2C_EN (1 << 2) diff --git a/src/southbridge/intel/ibexpeak/smbus.c b/src/southbridge/intel/ibexpeak/smbus.c index 9168cffb24..accbe68bd0 100644 --- a/src/southbridge/intel/ibexpeak/smbus.c +++ b/src/southbridge/intel/ibexpeak/smbus.c @@ -20,8 +20,6 @@ #include #include #include -#include -#include #include #include "pch.h" @@ -38,7 +36,7 @@ static void pch_smbus_init(struct device *dev) /* Set Receive Slave Address */ res = find_resource(dev, PCI_BASE_ADDRESS_4); if (res) - outb(SMBUS_SLAVE_ADDR, res->base + SMB_RCV_SLVA); + smbus_set_slave_addr(res->base, SMBUS_SLAVE_ADDR); } static int lsmbus_read_byte(struct device *dev, u8 address) diff --git a/src/southbridge/intel/lynxpoint/pch.h b/src/southbridge/intel/lynxpoint/pch.h index d83dd17275..71f42ea723 100644 --- a/src/southbridge/intel/lynxpoint/pch.h +++ b/src/southbridge/intel/lynxpoint/pch.h @@ -440,7 +440,6 @@ void mainboard_config_superio(void); #define PCH_SMBUS_DEV PCI_DEV(0, 0x1f, 3) #define SMB_BASE 0x20 #define HOSTC 0x40 -#define SMB_RCV_SLVA 0x09 /* HOSTC bits */ #define I2C_EN (1 << 2) diff --git a/src/southbridge/intel/lynxpoint/smbus.c b/src/southbridge/intel/lynxpoint/smbus.c index 24beaf2fde..ff659b837a 100644 --- a/src/southbridge/intel/lynxpoint/smbus.c +++ b/src/southbridge/intel/lynxpoint/smbus.c @@ -20,8 +20,6 @@ #include #include #include -#include -#include #include #include "pch.h" @@ -38,7 +36,7 @@ static void pch_smbus_init(struct device *dev) /* Set Receive Slave Address */ res = find_resource(dev, PCI_BASE_ADDRESS_4); if (res) - outb(SMBUS_SLAVE_ADDR, res->base + SMB_RCV_SLVA); + smbus_set_slave_addr(res->base, SMBUS_SLAVE_ADDR); } static int lsmbus_read_byte(struct device *dev, u8 address) -- cgit v1.2.3