Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/iicbus/iicbus.c
Show All 30 Lines | |||||
/* | /* | ||||
* Autoconfiguration and support routines for the Philips serial I2C bus | * Autoconfiguration and support routines for the Philips serial I2C bus | ||||
*/ | */ | ||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/bus.h> | |||||
#include <sys/lock.h> | #include <sys/lock.h> | ||||
#include <sys/malloc.h> | #include <sys/malloc.h> | ||||
#include <sys/module.h> | #include <sys/module.h> | ||||
#include <sys/mutex.h> | #include <sys/mutex.h> | ||||
#include <sys/rman.h> | #include <sys/rman.h> | ||||
#include <sys/sbuf.h> | |||||
#include <sys/sysctl.h> | #include <sys/sysctl.h> | ||||
#include <sys/bus.h> | |||||
#include <dev/iicbus/iiconf.h> | #include <dev/iicbus/iiconf.h> | ||||
#include <dev/iicbus/iicbus.h> | #include <dev/iicbus/iicbus.h> | ||||
#include "iicbus_if.h" | #include "iicbus_if.h" | ||||
/* See comments below for why auto-scanning is a bad idea. */ | /* See comments below for why auto-scanning is a bad idea. */ | ||||
#define SCAN_IICBUS 0 | #define SCAN_IICBUS 0 | ||||
▲ Show 20 Lines • Show All 117 Lines • ▼ Show 20 Lines | |||||
iicbus_probe_nomatch(device_t bus, device_t child) | iicbus_probe_nomatch(device_t bus, device_t child) | ||||
{ | { | ||||
struct iicbus_ivar *devi = IICBUS_IVAR(child); | struct iicbus_ivar *devi = IICBUS_IVAR(child); | ||||
device_printf(bus, "<unknown card> at addr %#x\n", devi->addr); | device_printf(bus, "<unknown card> at addr %#x\n", devi->addr); | ||||
} | } | ||||
int | int | ||||
iicbus_child_location_str(device_t bus, device_t child, char *buf, | iicbus_child_location(device_t bus, device_t child, struct sbuf *sb) | ||||
size_t buflen) | |||||
{ | { | ||||
struct iicbus_ivar *devi = IICBUS_IVAR(child); | struct iicbus_ivar *devi = IICBUS_IVAR(child); | ||||
snprintf(buf, buflen, "addr=%#x", devi->addr); | sbuf_printf(sb, "addr=%#x", devi->addr); | ||||
return (0); | return (0); | ||||
} | } | ||||
int | int | ||||
iicbus_child_pnpinfo_str(device_t bus, device_t child, char *buf, | iicbus_child_pnpinfo(device_t bus, device_t child, struct sbuf *sb) | ||||
size_t buflen) | |||||
{ | { | ||||
*buf = '\0'; | |||||
return (0); | return (0); | ||||
} | } | ||||
int | int | ||||
iicbus_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) | iicbus_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) | ||||
{ | { | ||||
struct iicbus_ivar *devi = IICBUS_IVAR(child); | struct iicbus_ivar *devi = IICBUS_IVAR(child); | ||||
▲ Show 20 Lines • Show All 162 Lines • ▼ Show 20 Lines | static device_method_t iicbus_methods[] = { | ||||
DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource), | DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource), | ||||
DEVMETHOD(bus_set_resource, bus_generic_rl_set_resource), | DEVMETHOD(bus_set_resource, bus_generic_rl_set_resource), | ||||
DEVMETHOD(bus_get_resource_list, iicbus_get_resource_list), | DEVMETHOD(bus_get_resource_list, iicbus_get_resource_list), | ||||
DEVMETHOD(bus_add_child, iicbus_add_child), | DEVMETHOD(bus_add_child, iicbus_add_child), | ||||
DEVMETHOD(bus_print_child, iicbus_print_child), | DEVMETHOD(bus_print_child, iicbus_print_child), | ||||
DEVMETHOD(bus_probe_nomatch, iicbus_probe_nomatch), | DEVMETHOD(bus_probe_nomatch, iicbus_probe_nomatch), | ||||
DEVMETHOD(bus_read_ivar, iicbus_read_ivar), | DEVMETHOD(bus_read_ivar, iicbus_read_ivar), | ||||
DEVMETHOD(bus_write_ivar, iicbus_write_ivar), | DEVMETHOD(bus_write_ivar, iicbus_write_ivar), | ||||
DEVMETHOD(bus_child_pnpinfo_str, iicbus_child_pnpinfo_str), | DEVMETHOD(bus_child_pnpinfo, iicbus_child_pnpinfo), | ||||
DEVMETHOD(bus_child_location_str, iicbus_child_location_str), | DEVMETHOD(bus_child_location, iicbus_child_location), | ||||
DEVMETHOD(bus_hinted_child, iicbus_hinted_child), | DEVMETHOD(bus_hinted_child, iicbus_hinted_child), | ||||
/* iicbus interface */ | /* iicbus interface */ | ||||
DEVMETHOD(iicbus_transfer, iicbus_transfer), | DEVMETHOD(iicbus_transfer, iicbus_transfer), | ||||
DEVMETHOD(iicbus_get_frequency, iicbus_get_frequency), | DEVMETHOD(iicbus_get_frequency, iicbus_get_frequency), | ||||
DEVMETHOD_END | DEVMETHOD_END | ||||
}; | }; | ||||
Show All 11 Lines |