summaryrefslogtreecommitdiff
path: root/src/southbridge/intel
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2020-01-06 19:00:31 +0200
committerKyösti Mälkki <kyosti.malkki@gmail.com>2020-01-09 21:31:31 +0000
commit73451fdea266e24a3ce99e1bf41f49735dc62d28 (patch)
tree96b29d28afcfc25e7cedf4e410a56df049248ce4 /src/southbridge/intel
parent7cdcc38f292d7a8ffd285d17c848e60e41eec759 (diff)
sb/intel/common: Add smbus_set_slave_addr()
Change-Id: I7dddb61fab00e0f4f67d4eebee0cfe8dcd99f4ab Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/38230 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/southbridge/intel')
-rw-r--r--src/southbridge/intel/bd82x6x/pch.h1
-rw-r--r--src/southbridge/intel/bd82x6x/smbus.c4
-rw-r--r--src/southbridge/intel/common/smbus.c5
-rw-r--r--src/southbridge/intel/common/smbus.h2
-rw-r--r--src/southbridge/intel/ibexpeak/pch.h1
-rw-r--r--src/southbridge/intel/ibexpeak/smbus.c4
-rw-r--r--src/southbridge/intel/lynxpoint/pch.h1
-rw-r--r--src/southbridge/intel/lynxpoint/smbus.c4
8 files changed, 10 insertions, 12 deletions
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 <device/pci.h>
#include <device/pci_ids.h>
#include <device/pci_ops.h>
-#include <arch/io.h>
-#include <southbridge/intel/common/smbus.h>
#include <device/smbus_host.h>
#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 <device/pci.h>
#include <device/pci_ids.h>
#include <device/pci_ops.h>
-#include <arch/io.h>
-#include <southbridge/intel/common/smbus.h>
#include <device/smbus_host.h>
#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 <device/pci.h>
#include <device/pci_ids.h>
#include <device/pci_ops.h>
-#include <arch/io.h>
-#include <southbridge/intel/common/smbus.h>
#include <device/smbus_host.h>
#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)