summaryrefslogtreecommitdiff
path: root/src/southbridge/amd/amd8111/acpi.c
diff options
context:
space:
mode:
authorOskar Enoksson <enok@lysator.liu.se>2011-10-14 02:16:48 +0200
committerStefan Reinauer <stefan.reinauer@coreboot.org>2011-10-27 19:09:50 +0200
commit9bfa1c8c68b2f0c11e516e3f45ff1901a5907ab6 (patch)
tree8c060bbf417094d70acf1c6daa64fd87f1e207e3 /src/southbridge/amd/amd8111/acpi.c
parent07b4215e11537bcbef3848bb520fa201fbcc4eda (diff)
Added smbus block read/write for amd8111
Signed-off-by: Oskar Enoksson <enok@lysator.liu.se> Change-Id: I86c80a27fd13c9a2be4034fdfb63be4ab2fadbfc Reviewed-on: http://review.coreboot.org/281 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/southbridge/amd/amd8111/acpi.c')
-rw-r--r--src/southbridge/amd/amd8111/acpi.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/southbridge/amd/amd8111/acpi.c b/src/southbridge/amd/amd8111/acpi.c
index 2ad54b78f6..d5b1c1891c 100644
--- a/src/southbridge/amd/amd8111/acpi.c
+++ b/src/southbridge/amd/amd8111/acpi.c
@@ -66,6 +66,29 @@ static int lsmbus_write_byte(device_t dev, uint8_t address, uint8_t val)
return do_smbus_write_byte(res->base, device, address, val);
}
+static int lsmbus_block_read(device_t dev, uint8_t cmd, u8 bytes, u8 *buffer)
+{
+ unsigned device;
+ struct resource *res;
+
+ device = dev->path.i2c.device;
+ res = find_resource(get_pbus_smbus(dev)->dev, 0x58);
+
+ return do_smbus_block_read(res->base, device, cmd, bytes, buffer);
+}
+
+static int lsmbus_block_write(device_t dev, uint8_t cmd, u8 bytes, const u8 *buffer)
+{
+ unsigned device;
+ struct resource *res;
+
+ device = dev->path.i2c.device;
+ res = find_resource(get_pbus_smbus(dev)->dev, 0x58);
+
+ return do_smbus_block_write(res->base, device, cmd, bytes, buffer);
+}
+
+
#if CONFIG_GENERATE_ACPI_TABLES == 1
unsigned pm_base;
#endif
@@ -191,6 +214,8 @@ static struct smbus_bus_operations lops_smbus_bus = {
.send_byte = lsmbus_send_byte,
.read_byte = lsmbus_read_byte,
.write_byte = lsmbus_write_byte,
+ .block_read = lsmbus_block_read,
+ .block_write= lsmbus_block_write,
};
static struct pci_operations lops_pci = {