From d4ce1ded0174c2f2866e57023a68c6854f78e8a1 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Fri, 4 Aug 2017 14:39:26 +0200 Subject: [PATCH] sb/intel/i82801jx: Add romstage smbus and i2c block operations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I76bf1ed392d3d18059792106fc482d2259a3f084 Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/20880 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki --- src/southbridge/intel/i82801jx/early_smbus.c | 16 ++++++++++++++++ src/southbridge/intel/i82801jx/i82801jx.h | 5 +++++ 2 files changed, 21 insertions(+) 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);