summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2017-08-04 14:39:26 +0200
committerArthur Heymans <arthur@aheymans.xyz>2017-08-07 06:59:09 +0000
commitd4ce1ded0174c2f2866e57023a68c6854f78e8a1 (patch)
tree26e409ef6d89c429211a94fbd7346d1de7a271b7
parentad29ec351e52b9d326d50c558c3af4b54a2e61d4 (diff)
sb/intel/i82801jx: Add romstage smbus and i2c block operations
Change-Id: I76bf1ed392d3d18059792106fc482d2259a3f084 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/20880 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
-rw-r--r--src/southbridge/intel/i82801jx/early_smbus.c16
-rw-r--r--src/southbridge/intel/i82801jx/i82801jx.h5
2 files changed, 21 insertions, 0 deletions
diff --git a/src/southbridge/intel/i82801jx/early_smbus.c b/src/southbridge/intel/i82801jx/early_smbus.c
index a95099298f..16932e0e51 100644
--- a/src/southbridge/intel/i82801jx/early_smbus.c
+++ b/src/southbridge/intel/i82801jx/early_smbus.c
@@ -51,3 +51,19 @@ int smbus_read_byte(unsigned device, unsigned address)
{
return do_smbus_read_byte(SMBUS_IO_BASE, device, address);
}
+
+int i2c_block_read(unsigned int device, unsigned int offset, u32 bytes, u8 *buf)
+{
+ return do_i2c_block_read(SMBUS_IO_BASE, device, offset, bytes, buf);
+}
+
+int smbus_block_read(unsigned int device, unsigned int cmd, u8 bytes, u8 *buf)
+{
+ return do_smbus_block_read(SMBUS_IO_BASE, device, cmd, bytes, buf);
+}
+
+int smbus_block_write(unsigned int device, unsigned int cmd, u8 bytes,
+ const u8 *buf)
+{
+ return do_smbus_block_write(SMBUS_IO_BASE, device, cmd, bytes, buf);
+}
diff --git a/src/southbridge/intel/i82801jx/i82801jx.h b/src/southbridge/intel/i82801jx/i82801jx.h
index fd74d2a02f..fe55157850 100644
--- a/src/southbridge/intel/i82801jx/i82801jx.h
+++ b/src/southbridge/intel/i82801jx/i82801jx.h
@@ -224,6 +224,11 @@ static inline int lpc_is_mobile(const u16 devid)
#if defined(__PRE_RAM__)
void enable_smbus(void);
int smbus_read_byte(unsigned device, unsigned address);
+int i2c_block_read(unsigned int device, unsigned int cmd, unsigned int bytes,
+ u8 *buf);
+int smbus_block_read(unsigned int device, unsigned int cmd, u8 bytes, u8 *buf);
+int smbus_block_write(unsigned int device, unsigned int cmd, u8 bytes,
+ const u8 *buf);
void i82801jx_early_init(void);
void i82801jx_dmi_setup(void);
void i82801jx_dmi_poll_vc1(void);