aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/device/smbus.h2
-rw-r--r--src/include/device/smbus_host.h38
2 files changed, 40 insertions, 0 deletions
diff --git a/src/include/device/smbus.h b/src/include/device/smbus.h
index cae4f3fde3..5782d5e620 100644
--- a/src/include/device/smbus.h
+++ b/src/include/device/smbus.h
@@ -29,6 +29,7 @@ static inline const struct smbus_bus_operations *ops_smbus_bus(struct bus *bus)
struct bus *get_pbus_smbus(struct device *dev);
+#if !DEVTREE_EARLY
static inline int smbus_recv_byte(struct device *const dev)
{
return i2c_dev_readb(dev);
@@ -51,5 +52,6 @@ static inline int smbus_write_byte(struct device *const dev, u8 addr, u8 val)
int smbus_block_read(struct device *dev, u8 cmd, u8 bytes, u8 *buffer);
int smbus_block_write(struct device *dev, u8 cmd, u8 bytes, const u8 *buffer);
+#endif
#endif /* DEVICE_SMBUS_H */
diff --git a/src/include/device/smbus_host.h b/src/include/device/smbus_host.h
index d9390eaf2d..4bc80092b5 100644
--- a/src/include/device/smbus_host.h
+++ b/src/include/device/smbus_host.h
@@ -41,4 +41,42 @@ static inline void enable_smbus(void)
printk(BIOS_DEBUG, "SMBus controller enabled\n");
}
+#if DEVTREE_EARLY
+static inline int smbus_read_byte(u8 device, u8 address)
+{
+ uintptr_t base = smbus_base();
+ return do_smbus_read_byte(base, device, address);
+}
+
+static inline int smbus_read_word(u8 device, u8 address)
+{
+ uintptr_t base = smbus_base();
+ return do_smbus_read_word(base, device, address);
+}
+
+static inline int smbus_write_byte(u8 device, u8 address, u8 data)
+{
+ uintptr_t base = smbus_base();
+ return do_smbus_write_byte(base, device, address, data);
+}
+
+static inline int smbus_block_read(u8 device, u8 cmd, size_t max_bytes, u8 *buf)
+{
+ uintptr_t base = smbus_base();
+ return do_smbus_block_read(base, device, cmd, max_bytes, buf);
+}
+
+static inline int smbus_block_write(u8 device, u8 cmd, size_t bytes, const u8 *buf)
+{
+ uintptr_t base = smbus_base();
+ return do_smbus_block_write(base, device, cmd, bytes, buf);
+}
+
+static inline int i2c_eeprom_read(u8 device, u8 offset, size_t bytes, u8 *buf)
+{
+ uintptr_t base = smbus_base();
+ return do_i2c_eeprom_read(base, device, offset, bytes, buf);
+}
+#endif
+
#endif