FreeBSD kernel IICBUS device code
iicoc_fdt.c File Reference
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/limits.h>
#include <sys/module.h>
#include <sys/bus.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/rman.h>
#include <dev/extres/clk/clk.h>
#include <dev/iicbus/iicbus.h>
#include <dev/iicbus/iiconf.h>
#include <dev/ofw/ofw_bus.h>
#include <dev/ofw/ofw_bus_subr.h>
#include "iicbus_if.h"
#include "iicoc.h"
Include dependency graph for iicoc_fdt.c:

Go to the source code of this file.

Functions

 __FBSDID ("$FreeBSD$")
 
static phandle_t iicoc_get_node (device_t bus, device_t dev)
 
static int iicoc_attach (device_t dev)
 
static int iicoc_probe (device_t dev)
 
 SIMPLEBUS_PNP_INFO (compat_data)
 
 DRIVER_MODULE (iicoc, simplebus, iicoc_driver, iicoc_devclass, 0, 0)
 
 DRIVER_MODULE (ofw_iicbus, iicoc, ofw_iicbus_driver, ofw_iicbus_devclass, 0, 0)
 
 MODULE_DEPEND (iicoc, iicbus, 1, 1, 1)
 
 MODULE_DEPEND (iicoc, ofw_iicbus, 1, 1, 1)
 

Variables

static struct ofw_compat_data compat_data []
 
static struct resource_spec iicoc_spec []
 
static device_method_t iicoc_methods []
 
static driver_t iicoc_driver
 

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ DRIVER_MODULE() [1/2]

DRIVER_MODULE ( iicoc  ,
simplebus  ,
iicoc_driver  ,
iicoc_devclass  ,
,
 
)

◆ DRIVER_MODULE() [2/2]

DRIVER_MODULE ( ofw_iicbus  ,
iicoc  ,
ofw_iicbus_driver  ,
ofw_iicbus_devclass  ,
,
 
)

◆ iicoc_attach()

static int iicoc_attach ( device_t  dev)
static

◆ iicoc_get_node()

static phandle_t iicoc_get_node ( device_t  bus,
device_t  dev 
)
static

Definition at line 70 of file iicoc_fdt.c.

◆ iicoc_probe()

static int iicoc_probe ( device_t  dev)
static

Definition at line 147 of file iicoc_fdt.c.

References compat_data, and dev.

◆ MODULE_DEPEND() [1/2]

MODULE_DEPEND ( iicoc  ,
iicbus  ,
,
,
 
)

◆ MODULE_DEPEND() [2/2]

MODULE_DEPEND ( iicoc  ,
ofw_iicbus  ,
,
,
 
)

◆ SIMPLEBUS_PNP_INFO()

SIMPLEBUS_PNP_INFO ( compat_data  )

Variable Documentation

◆ compat_data

struct ofw_compat_data compat_data[]
static
Initial value:
= {
{ "opencores,i2c-ocores", 1 },
{ "sifive,fu740-c000-i2c", 1 },
{ "sifive,fu540-c000-i2c", 1 },
{ "sifive,i2c0", 1 },
{ NULL, 0 }
}

Definition at line 56 of file iicoc_fdt.c.

Referenced by iicoc_probe().

◆ iicoc_driver

driver_t iicoc_driver
static
Initial value:
= {
"iicoc",
sizeof(struct iicoc_softc),
}
static device_method_t iicoc_methods[]
Definition: iicoc_fdt.c:161

Definition at line 182 of file iicoc_fdt.c.

◆ iicoc_methods

device_method_t iicoc_methods[]
static
Initial value:
= {
DEVMETHOD(device_probe, iicoc_probe),
DEVMETHOD(device_attach, iicoc_attach),
DEVMETHOD(ofw_bus_get_node, iicoc_get_node),
DEVMETHOD(iicbus_callback, iicbus_null_callback),
DEVMETHOD_END
}
int iicbus_null_callback(device_t dev, int index, caddr_t data)
Definition: iicbus.c:287
int iicoc_iicbus_write(device_t dev, const char *buf, int len, int *sent, int timeout)
Definition: iicoc.c:218
int iicoc_iicbus_stop(device_t dev)
Definition: iicoc.c:204
int iicoc_iicbus_reset(device_t dev, u_char speed, u_char addr, u_char *oldadr)
Definition: iicoc.c:274
int iicoc_iicbus_repeated_start(device_t dev, u_char slave, int timeout)
Definition: iicoc.c:197
int iicoc_iicbus_start(device_t dev, u_char slave, int timeout)
Definition: iicoc.c:190
int iicoc_iicbus_read(device_t dev, char *buf, int len, int *read, int last, int delay)
Definition: iicoc.c:248
static phandle_t iicoc_get_node(device_t bus, device_t dev)
Definition: iicoc_fdt.c:70
static int iicoc_probe(device_t dev)
Definition: iicoc_fdt.c:147
static int iicoc_attach(device_t dev)
Definition: iicoc_fdt.c:78
int iicbus_transfer(device_t bus, struct iic_msg *msgs, uint32_t nmsgs)
Definition: iiconf.c:442
int iicbus_read(device_t bus, char *buf, int len, int *read, int last, int delay)
Definition: iiconf.c:339
int iicbus_write(device_t bus, const char *buf, int len, int *sent, int timeout)
Definition: iiconf.c:321
int iicbus_stop(device_t bus)
Definition: iiconf.c:298
int iicbus_repeated_start(device_t bus, u_char slave, int timeout)
Definition: iiconf.c:276
int iicbus_start(device_t bus, u_char slave, int timeout)
Definition: iiconf.c:254
int iicbus_transfer_gen(device_t dev, struct iic_msg *msgs, uint32_t nmsgs)
Definition: iiconf.c:469
#define iicbus_reset(bus, speed, addr, oldaddr)
Definition: iiconf.h:135

Definition at line 161 of file iicoc_fdt.c.

◆ iicoc_spec

struct resource_spec iicoc_spec[]
static
Initial value:
= {
{ SYS_RES_MEMORY, 0, RF_ACTIVE },
RESOURCE_SPEC_END
}

Definition at line 64 of file iicoc_fdt.c.

Referenced by iicoc_attach().