34#include <sys/kernel.h>
35#include <sys/module.h>
44#include <dev/pci/pcireg.h>
45#include <dev/pci/pcivar.h>
55 sc = device_get_softc(
dev);
56 device_delete_children(
dev);
57 bus_generic_detach(
dev);
74 sc = device_get_softc(
dev);
75 bus = device_get_unit(
dev);
78 mtx_init(&sc->
sc_mtx,
"iicoc",
"iicoc", MTX_DEF);
81 SYS_RES_MEMORY, &sc->
mem_rid, 0x100, RF_ACTIVE);
84 device_printf(
dev,
"Could not allocate bus resource.\n");
88 sc->
iicbus = device_add_child(
dev,
"iicbus", -1);
90 device_printf(
dev,
"Could not allocate iicbus instance.\n");
91 bus_release_resource(
dev, SYS_RES_MEMORY, sc->
mem_rid,
96 bus_generic_attach(
dev);
106 sc = device_get_softc(
dev);
107 if ((pci_get_vendor(
dev) == 0x184e) &&
108 (pci_get_device(
dev) == 0x1011)) {
112 device_set_desc(
dev,
"Netlogic XLP I2C Controller");
113 return (BUS_PROBE_DEFAULT);
int iicbus_null_callback(device_t dev, int index, caddr_t data)
devclass_t iicoc_devclass
int iicoc_iicbus_write(device_t dev, const char *buf, int len, int *sent, int timeout)
int iicoc_iicbus_stop(device_t dev)
int iicoc_iicbus_reset(device_t dev, u_char speed, u_char addr, u_char *oldadr)
int iicoc_iicbus_repeated_start(device_t dev, u_char slave, int timeout)
int iicoc_init(device_t dev)
int iicoc_iicbus_start(device_t dev, u_char slave, int timeout)
int iicoc_iicbus_read(device_t dev, char *buf, int len, int *read, int last, int delay)
static int iicoc_probe(device_t dev)
static driver_t iicoc_driver
DRIVER_MODULE(iicoc, pci, iicoc_driver, iicoc_devclass, 0, 0)
static int iicoc_detach(device_t dev)
static device_method_t iicoc_methods[]
static int iicoc_attach(device_t dev)
int iicbus_transfer(device_t bus, struct iic_msg *msgs, uint32_t nmsgs)
int iicbus_read(device_t bus, char *buf, int len, int *read, int last, int delay)
int iicbus_write(device_t bus, const char *buf, int len, int *sent, int timeout)
int iicbus_stop(device_t bus)
int iicbus_repeated_start(device_t bus, u_char slave, int timeout)
int iicbus_start(device_t bus, u_char slave, int timeout)
int iicbus_transfer_gen(device_t dev, struct iic_msg *msgs, uint32_t nmsgs)
#define iicbus_reset(bus, speed, addr, oldaddr)
struct resource * mem_res