#
# PPS clients configuration
#

if PPS

comment "PPS clients support"

config PPS_CLIENT_KTIMER
	tristate "Kernel timer client (Testing client, use for debug)"
	help
	  If you say yes here you get support for a PPS debugging client
	  which uses a kernel timer to generate the PPS signal.

	  This driver can also be built as a module.  If so, the module
	  will be called pps-ktimer.

config PPS_CLIENT_LDISC
	tristate "PPS line discipline"
	depends on PPS
	help
	  If you say yes here you get support for a PPS source connected
	  with the CD (Carrier Detect) pin of your serial port.

config PPS_CLIENT_PARPORT
	tristate "Parallel port PPS client"
	depends on PPS && PARPORT
	help
	  If you say yes here you get support for a PPS source connected
	  with the interrupt pin of your parallel port.

config PPS_CLIENT_GPIO
	tristate "PPS client using GPIO"
	depends on PPS && GENERIC_HARDIRQS
	help
	  If you say yes here you get support for a PPS source using
	  GPIO. To be useful you must also register a platform device
	  specifying the GPIO pin and other options, usually in your board
	  setup.

endif
