#include <sys/cdefs.h>
#include <sys/types.h>
#include <sys/bus.h>
#include "tpm_if.h"
#include "tpm20.h"
static uint8_t
tpm_read_1(device_t dev, bus_size_t off)
{
struct tpm_sc *sc = device_get_softc(dev);
return (bus_read_1(sc->mem_res, off));
}
static uint32_t
tpm_read_4(device_t dev, bus_size_t off)
{
struct tpm_sc *sc = device_get_softc(dev);
return (bus_read_4(sc->mem_res, off));
}
#ifndef __i386__
static uint64_t
tpm_read_8(device_t dev, bus_size_t off)
{
struct tpm_sc *sc = device_get_softc(dev);
return (bus_read_8(sc->mem_res, off));
}
#endif
static void
tpm_write_1(device_t dev, bus_size_t off, uint8_t val)
{
struct tpm_sc *sc = device_get_softc(dev);
bus_write_1(sc->mem_res, off, val);
}
static void
tpm_write_4(device_t dev, bus_size_t off, uint32_t val)
{
struct tpm_sc *sc = device_get_softc(dev);
bus_write_4(sc->mem_res, off, val);
}
static void
tpm_write_barrier(device_t dev, bus_size_t off, bus_size_t length)
{
struct tpm_sc *sc = device_get_softc(dev);
bus_barrier(sc->mem_res, off, length, BUS_SPACE_BARRIER_WRITE);
}
static device_method_t tpm_bus_methods[] = {
DEVMETHOD(tpm_read_1, tpm_read_1),
DEVMETHOD(tpm_read_4, tpm_read_4),
#ifndef __i386__
DEVMETHOD(tpm_read_8, tpm_read_8),
#endif
DEVMETHOD(tpm_write_1, tpm_write_1),
DEVMETHOD(tpm_write_4, tpm_write_4),
DEVMETHOD(tpm_write_barrier, tpm_write_barrier),
DEVMETHOD_END
};
DEFINE_CLASS_0(tpm_lbc, tpm_bus_driver, tpm_bus_methods, sizeof(struct tpm_sc));