[PATCH 7/8] LinuxPPS: pps_gen_parport: Add polarity parameter for inverted signal.

From: Andrey Drobyshev
Date: Wed Feb 15 2017 - 09:32:31 EST


From: Alexander GQ Gerasiov <gq@xxxxxxxxx>

On some devices it may be necessary to transmit inverted data. This commit
simply adds polarity parameter to define which state represents presence of
signal: it equals 0 if signal is on the low level (default), or 1 if signal
is on the high level (inverted signal).

Signed-off-by: Alexander GQ Gerasiov <gq@xxxxxxxxx>
---
drivers/pps/generators/pps_gen_parport.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/pps/generators/pps_gen_parport.c b/drivers/pps/generators/pps_gen_parport.c
index dcd39fb..7739301 100644
--- a/drivers/pps/generators/pps_gen_parport.c
+++ b/drivers/pps/generators/pps_gen_parport.c
@@ -36,8 +36,8 @@

#define DRVDESC "parallel port PPS signal generator"

-#define SIGNAL 0
-#define NO_SIGNAL PARPORT_CONTROL_STROBE
+#define SIGNAL (polarity?PARPORT_CONTROL_STROBE:0)
+#define NO_SIGNAL (polarity?0:PARPORT_CONTROL_STROBE)

/* module parameters */

@@ -48,6 +48,10 @@ MODULE_PARM_DESC(delay,
"Delay between setting and dropping the signal (ns)");
module_param_named(delay, send_delay, uint, 0);

+static unsigned int polarity;
+MODULE_PARM_DESC(polarity,
+ "Signal is on the low level (0 - default) or on the high level (1).");
+module_param(polarity, uint, 0);

#define SAFETY_INTERVAL 3000 /* set the hrtimer earlier for safety (ns) */

--
2.1.4