> Greg Troxel <g...@lexort.com> writes: > >> Brad Spencer <b...@anduin.eldar.org> writes: >> >> (The advice about "use gpio" is good - I am just trying to clarify USB >> PPS.) > > It has worked very well for me, assuming that the GPS module is stable. > I had one that would have a tendency to crash in its firmware after > being up for a while and totally lose its mind. >
Thanks for the detailed information and discussion. I built a kernel for my Rock64 on its bigger sibling RockPro64 (has a PCIe SSD card) -- sorry, okay, that was me just saying how much I enjoy these 2 devices! Anyway...I ran into a problem initializing gpiopps. Here is the Rock64 output when initializing with gpio.conf: [1.000004] gpiopps0 at gpio1 pins 28 [1.000004] gpiopps0: autoconfiguration error: positive edge interrupt not supported for ASSERT I also booted single user and it fails using gpioctl. Taking a peek at src/sys/dev/gpio/gpiopps.c this would be in the second if-block (1 pin) in gpiopps_attach: if (!gpio_intr_str(sc->sc_gpio, &sc->sc_map, 0, sc->sc_intrs[0].sc_irqmode, sc->sc_intrs[0].sc_intrstr, sizeof(sc->sc_intrs[0].sc_intrstr))) { aprint_error_dev(self, "failed to decode interrupt\n"); gpio_pin_unmap(sc->sc_gpio, &sc->sc_map); return; Here's what I added to evbarm/conf/GENERIC64: gpiopps* at gpio1 offset 28 mask 0x1 flag 0x2 This is for physical pin 7 which per pine64 wiki is GPIO1_D4. So gpio1 and D=3, so 3*8 + 4 = port 28. I tried also modifying the RockPro64 kernel -- similar issue. Any idea what am I doing wrong? Thanks - Joel