Lines Matching full:pps
12 * This driver implements a draft-mogul-pps-api-02.txt PPS source.
36 #define PPS_NAME "pps" /* our official name */
42 struct pps_state pps[9]; member
130 sx_init(&sc->lock, "pps"); in ppsattach()
138 sc->pps[0].ppscap = PPS_CAPTUREASSERT | PPS_ECHOASSERT; in ppsattach()
139 sc->pps[0].driver_abi = PPS_ABI_VERSION; in ppsattach()
140 sc->pps[0].driver_mtx = ppb_get_lock(ppbus); in ppsattach()
143 pps_init_abi(&sc->pps[0]); in ppsattach()
192 sc->pps[i].ppscap = PPS_CAPTUREASSERT | PPS_CAPTURECLEAR; in ppsattach()
193 sc->pps[i].driver_abi = PPS_ABI_VERSION; in ppsattach()
194 sc->pps[i].driver_mtx = ppb_get_lock(ppbus); in ppsattach()
197 pps_init_abi(&sc->pps[i]); in ppsattach()
218 * the race of concurrent open()'s when pps(4) doesn't own the in ppsopen()
256 sc->pps[subdev].ppsparam.mode = 0; /* PHK ??? */ in ppsclose()
282 KASSERT(sc->busy & ~1, ("pps polling w/o opened devices")); in ppshcpoll()
290 pps_capture(&sc->pps[j]); in ppshcpoll()
291 pps_event(&sc->pps[j], in ppshcpoll()
306 pps_capture(&sc->pps[0]); in ppsintr()
310 if (sc->pps[0].ppsparam.mode & PPS_ECHOASSERT) in ppsintr()
312 pps_event(&sc->pps[0], PPS_CAPTUREASSERT); in ppsintr()
313 if (sc->pps[0].ppsparam.mode & PPS_ECHOASSERT) in ppsintr()
325 err = pps_ioctl(cmd, data, &sc->pps[subdev]); in ppsioctl()
344 DRIVER_MODULE(pps, ppbus, pps_driver, 0, 0);
345 MODULE_DEPEND(pps, ppbus, 1, 1, 1);