Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/iicbus/ads111x.c
Show All 12 Lines | |||||
return; | return; | ||||
ctx = device_get_sysctl_ctx(sc->dev); | ctx = device_get_sysctl_ctx(sc->dev); | ||||
devtree = device_get_sysctl_tree(sc->dev); | devtree = device_get_sysctl_tree(sc->dev); | ||||
snprintf(chanstr, sizeof(chanstr), "%d", chan); | snprintf(chanstr, sizeof(chanstr), "%d", chan); | ||||
chantree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(devtree), OID_AUTO, | chantree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(devtree), OID_AUTO, | ||||
chanstr, CTLFLAG_RD, NULL, "channel data"); | chanstr, CTLFLAG_RD, NULL, "channel data"); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chantree), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chantree), OID_AUTO, | ||||
"gain_index", CTLTYPE_INT | CTLFLAG_RWTUN, sc, chan, | "gain_index", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, sc, chan, | |||||
ads111x_sysctl_gainidx, "I", "programmable gain amp setting, 0-7"); | ads111x_sysctl_gainidx, "I", "programmable gain amp setting, 0-7"); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chantree), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chantree), OID_AUTO, | ||||
"rate_index", CTLTYPE_INT | CTLFLAG_RWTUN, sc, chan, | "rate_index", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, sc, chan, | |||||
ads111x_sysctl_rateidx, "I", "sample rate setting, 0-7"); | ads111x_sysctl_rateidx, "I", "sample rate setting, 0-7"); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chantree), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chantree), OID_AUTO, | ||||
"voltage", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_SKIP, sc, chan, | "voltage", | ||||
CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_SKIP | CTLFLAG_NEEDGIANT, | |||||
sc, chan, | |||||
ads111x_sysctl_voltage, "I", "sampled voltage in microvolts"); | ads111x_sysctl_voltage, "I", "sampled voltage in microvolts"); | ||||
c->configured = true; | c->configured = true; | ||||
} | } | ||||
static void | static void | ||||
ads111x_add_channels(struct ads111x_softc *sc) | ads111x_add_channels(struct ads111x_softc *sc) | ||||
{ | { | ||||
Show All 24 Lines | |||||
device_printf(dev, "cannot write chip config register\n"); | device_printf(dev, "cannot write chip config register\n"); | ||||
return (err); | return (err); | ||||
} | } | ||||
/* Add the sysctl handler to set the chip configuration register. */ | /* Add the sysctl handler to set the chip configuration register. */ | ||||
ctx = device_get_sysctl_ctx(dev); | ctx = device_get_sysctl_ctx(dev); | ||||
tree = device_get_sysctl_tree(dev); | tree = device_get_sysctl_tree(dev); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | ||||
"config", CTLTYPE_INT | CTLFLAG_RWTUN, sc, 0, | "config", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, sc, 0, | |||||
ads111x_sysctl_config, "I", "configuration register word"); | ads111x_sysctl_config, "I", "configuration register word"); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | ||||
"lo_thresh", CTLTYPE_INT | CTLFLAG_RWTUN, sc, 0, | "lo_thresh", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, sc, 0, | |||||
ads111x_sysctl_lothresh, "I", "comparator low threshold"); | ads111x_sysctl_lothresh, "I", "comparator low threshold"); | ||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | ||||
"hi_thresh", CTLTYPE_INT | CTLFLAG_RWTUN, sc, 0, | "hi_thresh", | ||||
CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NEEDGIANT, sc, 0, | |||||
ads111x_sysctl_hithresh, "I", "comparator high threshold"); | ads111x_sysctl_hithresh, "I", "comparator high threshold"); | ||||
/* Set up channels based on metadata or default config. */ | /* Set up channels based on metadata or default config. */ | ||||
ads111x_add_channels(sc); | ads111x_add_channels(sc); | ||||
sx_init(&sc->lock, "ads111x"); | sx_init(&sc->lock, "ads111x"); | ||||
return (0); | return (0); | ||||
Show All 12 Lines |