pps-gpio: Add new property to use system time timestamp for PPS GPIO
If the device tree property "use-system-time-ts" is defined then the timestamp used for PPS events will be the system time, otherwise it will be the monotonic boot time. Change-Id: I92fab1d8861e1d652fcb68066b417f44c1f8e29b Signed-off-by: Gustavo Solaira <gustavos@codeaurora.org>
This commit is contained in:
parent
3f7ce4d543
commit
215533f02a
2 changed files with 13 additions and 3 deletions
|
@ -10,6 +10,9 @@ Required properties:
|
|||
Optional properties:
|
||||
- assert-falling-edge: when present, assert is indicated by a falling edge
|
||||
(instead of by a rising edge)
|
||||
- use-system-time-ts: use the system time via pps_get_ts as the timestamp
|
||||
if this is not defined then the timestamp will come
|
||||
from the monotonic boot time
|
||||
|
||||
Example:
|
||||
pps {
|
||||
|
|
|
@ -44,6 +44,7 @@ struct pps_gpio_device_data {
|
|||
bool assert_falling_edge;
|
||||
bool capture_clear;
|
||||
unsigned int gpio_pin;
|
||||
bool use_system_time_ts;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -56,11 +57,14 @@ static irqreturn_t pps_gpio_irq_handler(int irq, void *data)
|
|||
struct pps_event_time ts;
|
||||
int rising_edge;
|
||||
|
||||
/* Get the time stamp first */
|
||||
get_monotonic_boottime(&ts.ts_real);
|
||||
|
||||
info = data;
|
||||
|
||||
/* Get the time stamp first */
|
||||
if (!info->use_system_time_ts)
|
||||
get_monotonic_boottime(&ts.ts_real);
|
||||
else
|
||||
pps_get_ts(&ts);
|
||||
|
||||
rising_edge = gpio_get_value(info->gpio_pin);
|
||||
if ((rising_edge && !info->assert_falling_edge) ||
|
||||
(!rising_edge && info->assert_falling_edge))
|
||||
|
@ -119,6 +123,9 @@ static int pps_gpio_probe(struct platform_device *pdev)
|
|||
|
||||
if (of_get_property(np, "assert-falling-edge", NULL))
|
||||
data->assert_falling_edge = true;
|
||||
|
||||
if (of_get_property(np, "use-system-time-ts", NULL))
|
||||
data->use_system_time_ts = true;
|
||||
}
|
||||
|
||||
/* GPIO setup */
|
||||
|
|
Loading…
Add table
Reference in a new issue