coreboot/src/include/device/smbus.h
<<
>>
Prefs
   1#ifndef DEVICE_SMBUS_H
   2#define DEVICE_SMBUS_H
   3
   4#include <stdint.h>
   5#include <device/device.h>
   6#include <device/path.h>
   7#include <device/smbus_def.h>
   8
   9/* Common SMBus bus operations */
  10struct smbus_bus_operations {
  11        int (*quick_read)  (device_t dev);
  12        int (*quick_write) (device_t dev);
  13        int (*recv_byte)   (device_t dev);
  14        int (*send_byte)   (device_t dev, u8 value);
  15        int (*read_byte)   (device_t dev, u8 addr);
  16        int (*write_byte)  (device_t dev, u8 addr, u8 value);
  17        int (*read_word)   (device_t dev, u8 addr);
  18        int (*write_word)  (device_t dev, u8 addr, u16 value);
  19        int (*process_call)(device_t dev, u8 cmd, u16 data);
  20        int (*block_read)  (device_t dev, u8 cmd, u8 bytes, u8 *buffer);
  21        int (*block_write) (device_t dev, u8 cmd, u8 bytes, const u8 *buffer);
  22};
  23
  24static inline const struct smbus_bus_operations *ops_smbus_bus(struct bus *bus)
  25{
  26        const struct smbus_bus_operations *bops;
  27
  28        bops = 0;
  29        if (bus && bus->dev && bus->dev->ops)
  30                bops = bus->dev->ops->ops_smbus_bus;
  31
  32        return bops;
  33}
  34
  35struct bus *get_pbus_smbus(device_t dev);
  36int smbus_set_link(device_t dev);
  37
  38int smbus_quick_read(device_t dev);
  39int smbus_quick_write(device_t dev);
  40int smbus_recv_byte(device_t dev);
  41int smbus_send_byte(device_t dev, u8 byte);
  42int smbus_read_byte(device_t dev, u8 addr);
  43int smbus_write_byte(device_t dev, u8 addr, u8 val);
  44int smbus_read_word(device_t dev, u8 addr);
  45int smbus_write_word(device_t dev, u8 addr, u16 val);
  46int smbus_process_call(device_t dev, u8 cmd, u16 data);
  47int smbus_block_read(device_t dev, u8 cmd, u8 bytes, u8 *buffer);
  48int smbus_block_write(device_t dev, u8 cmd, u8 bytes, const u8 *buffer);
  49
  50#endif /* DEVICE_SMBUS_H */
  51
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.