• Bryan O'Donoghue's avatar
    greybus: timesync: Add timesync core driver · 970dc85b
    Bryan O'Donoghue authored
    This patch adds the core timesync functionality.
    
    0. arche-platform.c/arche-apb-ctrl.c
       Modifies the platform layer to hook the incoming TIME_SYNC signal up to
       the timesync strobe IRQ handler. If the arche-platform driver can't
       satisfy the request for the wake-detect line, it will return -EAGAIN and
       the calling work-queue must reschedule the attempt to get exclusive
       access to the wake-detect pin logic. A private data field is added to
       the arche-platform driver to enable passing of a timesync pointer to the
       ISR responsible for synchronizing time.
    
    1. timesync.c
       A new file added which contains all of the logic associated with sending
       greybus commands to SVC, APBx or Interfaces to enable, disable and
       disseminate timing information.
    
    2. timesync_platform.c
       Any platform/arch specific code goes into timesync_platform.c.
       Originally the idea was to keep the x86 and ARM arch dependencies in a
       timesync_platform_arch.c file - however with further refinement that's
       currently not necessary however just-in-case it becomes necessary to
       resuscitate arch or platform specific methods for accessing timer
       resources that access shouldn't be part of the core timesync.c logic and
       so for the moment we access these timer resources through a thin access
       layer in timesync_platform.c. Expect this to go away long term ideally.
    Signed-off-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
    Acked-by: default avatarAlex Elder <elder@linaro.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
    970dc85b
timesync_platform.c 1.91 KB