Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/bhnd/bhndb/bhnd_bhndb.c
Show All 36 Lines | |||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/bus.h> | #include <sys/bus.h> | ||||
#include <sys/module.h> | #include <sys/module.h> | ||||
#include <dev/bhnd/bhnd_ids.h> | #include <dev/bhnd/bhnd_ids.h> | ||||
#include <dev/bhnd/bhnd.h> | #include <dev/bhnd/bhnd.h> | ||||
#include "bhnd_pwrctl_hostb_if.h" | |||||
#include "bhndbvar.h" | #include "bhndbvar.h" | ||||
/* | /* | ||||
* bhnd(4) driver mix-in providing a shared common methods for | * bhnd(4) driver mix-in providing a shared common methods for | ||||
* bhnd devices attached via a bhndb bridge. | * bhnd devices attached via a bhndb bridge. | ||||
*/ | */ | ||||
static int | static int | ||||
▲ Show 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | bhnd_bhndb_unmap_intr(device_t dev, device_t child, rman_res_t irq) | ||||
return (BHND_BUS_UNMAP_INTR(device_get_parent(dev), child, irq)); | return (BHND_BUS_UNMAP_INTR(device_get_parent(dev), child, irq)); | ||||
} | } | ||||
static bhnd_clksrc | static bhnd_clksrc | ||||
bhnd_bhndb_pwrctl_get_clksrc(device_t dev, device_t child, | bhnd_bhndb_pwrctl_get_clksrc(device_t dev, device_t child, | ||||
bhnd_clock clock) | bhnd_clock clock) | ||||
{ | { | ||||
/* Delegate to parent bridge */ | /* Delegate to parent bridge */ | ||||
return (BHND_BUS_PWRCTL_GET_CLKSRC(device_get_parent(dev), child, | return (BHND_PWRCTL_HOSTB_GET_CLKSRC(device_get_parent(dev), child, | ||||
clock)); | clock)); | ||||
} | } | ||||
static int | static int | ||||
bhnd_bhndb_pwrctl_gate_clock(device_t dev, device_t child, | bhnd_bhndb_pwrctl_gate_clock(device_t dev, device_t child, | ||||
bhnd_clock clock) | bhnd_clock clock) | ||||
{ | { | ||||
/* Delegate to parent bridge */ | /* Delegate to parent bridge */ | ||||
return (BHND_BUS_PWRCTL_GATE_CLOCK(device_get_parent(dev), child, | return (BHND_PWRCTL_HOSTB_GATE_CLOCK(device_get_parent(dev), child, | ||||
clock)); | clock)); | ||||
} | } | ||||
static int | static int | ||||
bhnd_bhndb_pwrctl_ungate_clock(device_t dev, device_t child, | bhnd_bhndb_pwrctl_ungate_clock(device_t dev, device_t child, | ||||
bhnd_clock clock) | bhnd_clock clock) | ||||
{ | { | ||||
/* Delegate to parent bridge */ | /* Delegate to parent bridge */ | ||||
return (BHND_BUS_PWRCTL_UNGATE_CLOCK(device_get_parent(dev), child, | return (BHND_PWRCTL_HOSTB_UNGATE_CLOCK(device_get_parent(dev), child, | ||||
clock)); | clock)); | ||||
} | } | ||||
static int | static int | ||||
bhnd_bhndb_setup_intr(device_t dev, device_t child, struct resource *irq, | bhnd_bhndb_setup_intr(device_t dev, device_t child, struct resource *irq, | ||||
int flags, driver_filter_t *filter, driver_intr_t *intr, void *arg, | int flags, driver_filter_t *filter, driver_intr_t *intr, void *arg, | ||||
void **cookiep) | void **cookiep) | ||||
{ | { | ||||
Show All 20 Lines | bhnd_bhndb_setup_intr(device_t dev, device_t child, struct resource *irq, | ||||
/* Delegate actual interrupt setup to the default bhnd bus | /* Delegate actual interrupt setup to the default bhnd bus | ||||
* implementation */ | * implementation */ | ||||
return (bhnd_generic_setup_intr(dev, child, irq, flags, filter, intr, | return (bhnd_generic_setup_intr(dev, child, irq, flags, filter, intr, | ||||
arg, cookiep)); | arg, cookiep)); | ||||
} | } | ||||
static device_method_t bhnd_bhndb_methods[] = { | static device_method_t bhnd_bhndb_methods[] = { | ||||
/* Bus interface */ | /* Bus interface */ | ||||
DEVMETHOD(bus_setup_intr, bhnd_bhndb_setup_intr), | DEVMETHOD(bus_setup_intr, bhnd_bhndb_setup_intr), | ||||
/* BHND interface */ | /* BHND interface */ | ||||
DEVMETHOD(bhnd_bus_get_attach_type, bhnd_bhndb_get_attach_type), | DEVMETHOD(bhnd_bus_get_attach_type, bhnd_bhndb_get_attach_type), | ||||
DEVMETHOD(bhnd_bus_is_hw_disabled, bhnd_bhndb_is_hw_disabled), | DEVMETHOD(bhnd_bus_is_hw_disabled, bhnd_bhndb_is_hw_disabled), | ||||
DEVMETHOD(bhnd_bus_find_hostb_device, bhnd_bhndb_find_hostb_device), | DEVMETHOD(bhnd_bus_find_hostb_device, bhnd_bhndb_find_hostb_device), | ||||
DEVMETHOD(bhnd_bus_read_board_info, bhnd_bhndb_read_board_info), | DEVMETHOD(bhnd_bus_read_board_info, bhnd_bhndb_read_board_info), | ||||
DEVMETHOD(bhnd_bus_map_intr, bhnd_bhndb_map_intr), | DEVMETHOD(bhnd_bus_map_intr, bhnd_bhndb_map_intr), | ||||
DEVMETHOD(bhnd_bus_unmap_intr, bhnd_bhndb_unmap_intr), | DEVMETHOD(bhnd_bus_unmap_intr, bhnd_bhndb_unmap_intr), | ||||
DEVMETHOD(bhnd_bus_pwrctl_get_clksrc, bhnd_bhndb_pwrctl_get_clksrc), | /* BHND PWRCTL hostb interface */ | ||||
DEVMETHOD(bhnd_bus_pwrctl_gate_clock, bhnd_bhndb_pwrctl_gate_clock), | DEVMETHOD(bhnd_pwrctl_hostb_get_clksrc, bhnd_bhndb_pwrctl_get_clksrc), | ||||
DEVMETHOD(bhnd_bus_pwrctl_ungate_clock, bhnd_bhndb_pwrctl_ungate_clock), | DEVMETHOD(bhnd_pwrctl_hostb_gate_clock, bhnd_bhndb_pwrctl_gate_clock), | ||||
DEVMETHOD(bhnd_pwrctl_hostb_ungate_clock, bhnd_bhndb_pwrctl_ungate_clock), | |||||
DEVMETHOD_END | DEVMETHOD_END | ||||
}; | }; | ||||
DEFINE_CLASS_0(bhnd, bhnd_bhndb_driver, bhnd_bhndb_methods, 0); | DEFINE_CLASS_0(bhnd, bhnd_bhndb_driver, bhnd_bhndb_methods, 0); |