[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191211214852.26317-1-christopher.s.hall@intel.com>
Date: Wed, 11 Dec 2019 13:48:47 -0800
From: christopher.s.hall@...el.com
To: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
tglx@...utronix.de, hpa@...or.com, mingo@...hat.com,
x86@...nel.org, jacob.e.keller@...el.com, richardcochran@...il.com,
davem@...emloft.net, sean.v.kelley@...el.com
Cc: Christopher Hall <christopher.s.hall@...el.com>
Subject: [Intel PMC TGPIO Driver 0/5] Add support for Intel PMC Time GPIO Driver with PHC interface changes to support additional H/W Features
From: Christopher Hall <christopher.s.hall@...el.com>
Upcoming Intel platforms will have Time-Aware GPIO (TGPIO) hardware.
The TGPIO logic is driven by the Always Running Timer (ART) that's
related to TSC using CPUID[15H] (See Intel SDM Invariant
Time-Keeping).
The ART frequency is not adjustable. In order, to implement output
adjustments an additional edge-timestamp API is added, as well, as
a periodic output frequency adjustment API. Togther, these implement
equivalent functionality to the existing SYS_OFFSET_* and frequency
adjustment APIs.
The TGPIO hardware doesn't implement interrupts. For TGPIO input, the
output edge-timestamp API is re-used to implement a user-space polling
interface. For periodic input (e.g. PPS) this is fairly efficient,
requiring only a marginally faster poll rate than the input event
frequency.
Acknowledgment: Portions of the driver code were authored by Felipe
Balbi <balbi@...nel.org>
=======================================================================
Christopher Hall (5):
drivers/ptp: Add Enhanced handling of reserve fields
drivers/ptp: Add PEROUT2 ioctl frequency adjustment interface
drivers/ptp: Add user-space input polling interface
x86/tsc: Add TSC support functions to support ART driven Time-Aware
GPIO
drivers/ptp: Add PMC Time-Aware GPIO Driver
arch/x86/include/asm/tsc.h | 6 +
arch/x86/kernel/tsc.c | 116 +++-
drivers/ptp/Kconfig | 13 +
drivers/ptp/Makefile | 1 +
drivers/ptp/ptp-intel-pmc-tgpio.c | 867 ++++++++++++++++++++++++++++++
drivers/ptp/ptp_chardev.c | 86 ++-
drivers/ptp/ptp_clock.c | 13 +
include/linux/ptp_clock_kernel.h | 2 +
include/uapi/linux/ptp_clock.h | 26 +-
9 files changed, 1099 insertions(+), 31 deletions(-)
create mode 100644 drivers/ptp/ptp-intel-pmc-tgpio.c
--
2.21.0
Powered by blists - more mailing lists