Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/spibus/ofw_spibus.c
Show First 20 Lines • Show All 146 Lines • ▼ Show 20 Lines | for (child = OF_child(ofw_bus_get_node(dev)); child != 0; | ||||
dinfo->opd_dinfo.clock = clock; | dinfo->opd_dinfo.clock = clock; | ||||
dinfo->opd_dinfo.mode = mode; | dinfo->opd_dinfo.mode = mode; | ||||
if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, child) != | if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, child) != | ||||
0) { | 0) { | ||||
free(dinfo, M_DEVBUF); | free(dinfo, M_DEVBUF); | ||||
continue; | continue; | ||||
} | } | ||||
childdev = device_add_child(dev, NULL, -1); | childdev = device_add_child(dev, NULL, -1); | ||||
resource_list_init(&dinfo->opd_dinfo.rl); | |||||
ofw_bus_intr_to_rl(childdev, child, | |||||
&dinfo->opd_dinfo.rl, NULL); | |||||
device_set_ivars(childdev, dinfo); | device_set_ivars(childdev, dinfo); | ||||
} | } | ||||
return (bus_generic_attach(dev)); | return (bus_generic_attach(dev)); | ||||
} | } | ||||
static device_t | static device_t | ||||
ofw_spibus_add_child(device_t dev, u_int order, const char *name, int unit) | ofw_spibus_add_child(device_t dev, u_int order, const char *name, int unit) | ||||
Show All 30 Lines | |||||
ofw_spibus_get_devinfo(device_t bus, device_t dev) | ofw_spibus_get_devinfo(device_t bus, device_t dev) | ||||
{ | { | ||||
struct ofw_spibus_devinfo *dinfo; | struct ofw_spibus_devinfo *dinfo; | ||||
dinfo = device_get_ivars(dev); | dinfo = device_get_ivars(dev); | ||||
return (&dinfo->opd_obdinfo); | return (&dinfo->opd_obdinfo); | ||||
} | } | ||||
static struct resource_list * | |||||
ofw_spibus_get_resource_list(device_t bus __unused, device_t child) | |||||
{ | |||||
struct spibus_ivar *devi; | |||||
devi = SPIBUS_IVAR(child); | |||||
return (&devi->rl); | |||||
} | |||||
static device_method_t ofw_spibus_methods[] = { | static device_method_t ofw_spibus_methods[] = { | ||||
/* Device interface */ | /* Device interface */ | ||||
DEVMETHOD(device_probe, ofw_spibus_probe), | DEVMETHOD(device_probe, ofw_spibus_probe), | ||||
DEVMETHOD(device_attach, ofw_spibus_attach), | DEVMETHOD(device_attach, ofw_spibus_attach), | ||||
/* Bus interface */ | /* Bus interface */ | ||||
DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str), | DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str), | ||||
DEVMETHOD(bus_add_child, ofw_spibus_add_child), | DEVMETHOD(bus_add_child, ofw_spibus_add_child), | ||||
DEVMETHOD(bus_get_resource_list, ofw_spibus_get_resource_list), | |||||
/* ofw_bus interface */ | /* ofw_bus interface */ | ||||
DEVMETHOD(ofw_bus_get_devinfo, ofw_spibus_get_devinfo), | DEVMETHOD(ofw_bus_get_devinfo, ofw_spibus_get_devinfo), | ||||
DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), | DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), | ||||
DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), | DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), | ||||
DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), | DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), | ||||
DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), | DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), | ||||
DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), | DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), | ||||
Show All 11 Lines |