greybus: control: Add TimeSync control commands
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Wed, 2 Mar 2016 16:51:10 +0000 (16:51 +0000)
committerGreg Kroah-Hartman <gregkh@google.com>
Thu, 3 Mar 2016 23:22:52 +0000 (15:22 -0800)
commit8fd9466b8c324bc87c5db58a46c33731d1ea50bf
treecbc9ebcccfe0af736ca35a99c0ffa4f0c6dccf6c
parent0bd39ca4898fb554bcba28c82f425cc6c88180b9
greybus: control: Add TimeSync control commands

Simple addition of the TimeSync commands defined in the specification.
Note for the case of timesync_authoritative we're passing the request
structure directly so as not to have to pass eight parameters into the
function.

Adds:
- control.c::timesync_enable(u8 count, u64 frame_time,
                             u32 strobe_delay, u32 refclk)
  Informs an Interface to expect count TimeSync strobe pulses with
  strobe_delay milliseconds delay between each strobe. Once enabled
  an Interface may not enter a low-power mode which will result in the
  reference timer used to track time switching off.

- control.c::timesync_disable(void)
  Commands an Interface to immediately halt TimeSync logic. This will allow
  an Interface to transition into low-power modes where the reference time
  being used for TimeSync may switch off.

- control.c::timesync_authoritative(u64 *frame_time, u8 count)
  Used by the AP Module to inform an Interface of the authoritative
  TimeSync clock-master time at each strobe pulse. Down-stream clock slaves
  shall adjust their local frame-time appropriately based on the
  diseminated authoritative frame-time.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/control.c
drivers/staging/greybus/control.h