Trabajando en PTP (Precision Time Protocol IEEE 1588) con unos Beaglebone Black, necesitaba una forma de comparar el tiempo de diferentes tarjetas con una resolución de nanosegundos. Actualmente se pueden encontrar en el kernel varios drivers clientes de PPS, entre ellos uno que usa lineas GPIO.
Sin embargo, no existe un driver generador de PPS mediante GPIOs, el único driver incorporado al kernel trabaja con el puerto paralelo, lo que es una buena excusa para dedicarle algo de tiempo a un driver generador de señal PPS mediante lineas GPIO. He comenzado modificando la implementación actual que usa el puerto paralelo y he añadido una descripción en el fichero dts del Beaglebone Black para informar al kernel del puerto GPIO que quiero usar. Puedes usar este módulo en otras plataformas siempre que modifiques el dts correspondiente. Este módulo ha sido verificado con el kernel 3.15.3.
Las fuentes están disponibles en pps-gen-gpio.