switch-coreboot/include/device/smbus.h
Carl-Daniel Hailfinger 31a9e22fa4 A lot of the v3 header files require other header files to be #included
before they can be #included. That is completely counter-intuitive. Add 
necessary #includes to the header files themselves.

Fix a few cases where nonexisting files were #included.

Compile tested on Qemu and Alix1C.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Peter Stuge <peter@stuge.se>


git-svn-id: svn://coreboot.org/repository/coreboot-v3@611 f3766cd6-281f-0410-b1cd-43a5c92072e9
2008-02-19 00:34:32 +00:00

64 lines
2.5 KiB
C

/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef DEVICE_SMBUS_H
#define DEVICE_SMBUS_H
#include <device/device.h>
#include <device/path.h>
#include <device/smbus_def.h>
/* Common smbus bus operations */
struct smbus_bus_operations {
int (*quick_read) (struct device *dev);
int (*quick_write) (struct device *dev);
int (*recv_byte) (struct device *dev);
int (*send_byte) (struct device *dev, u8 value);
int (*read_byte) (struct device *dev, u8 addr);
int (*write_byte) (struct device *dev, u8 addr, u8 value);
int (*read_word) (struct device *dev, u8 addr);
int (*write_word) (struct device *dev, u8 addr, u16 value);
int (*process_call)(struct device *dev, u8 cmd, u16 data);
int (*block_read) (struct device *dev, u8 cmd, u8 bytes, u8 *buffer);
int (*block_write) (struct device *dev, u8 cmd, u8 bytes, const u8 *buffer);
};
static inline const struct smbus_bus_operations *ops_smbus_bus(struct bus *bus)
{
const struct smbus_bus_operations *bops;
bops = 0;
if (bus && bus->dev && bus->dev->ops) {
bops = bus->dev->ops->ops_smbus_bus;
}
return bops;
}
struct bus *get_pbus_smbus(struct device *dev);
int smbus_set_link(struct device *dev);
int smbus_quick_read(struct device *dev);
int smbus_quick_write(struct device *dev);
int smbus_recv_byte(struct device *dev);
int smbus_send_byte(struct device *dev, u8 byte);
int smbus_read_byte(struct device *dev, u8 addr);
int smbus_write_byte(struct device *dev, u8 addr, u8 val);
int smbus_read_word(struct device *dev, u8 addr);
int smbus_write_word(struct device *dev, u8 addr, u16 val);
int smbus_process_call(struct device *dev, u8 cmd, u16 data);
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 /* DEVICE_SMBUS_H */