mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-09-07 16:58:04 -04:00
Fixed MTP to work with TWRP
This commit is contained in:
commit
f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions
89
Documentation/ptp/ptp.txt
Normal file
89
Documentation/ptp/ptp.txt
Normal file
|
@ -0,0 +1,89 @@
|
|||
|
||||
* PTP hardware clock infrastructure for Linux
|
||||
|
||||
This patch set introduces support for IEEE 1588 PTP clocks in
|
||||
Linux. Together with the SO_TIMESTAMPING socket options, this
|
||||
presents a standardized method for developing PTP user space
|
||||
programs, synchronizing Linux with external clocks, and using the
|
||||
ancillary features of PTP hardware clocks.
|
||||
|
||||
A new class driver exports a kernel interface for specific clock
|
||||
drivers and a user space interface. The infrastructure supports a
|
||||
complete set of PTP hardware clock functionality.
|
||||
|
||||
+ Basic clock operations
|
||||
- Set time
|
||||
- Get time
|
||||
- Shift the clock by a given offset atomically
|
||||
- Adjust clock frequency
|
||||
|
||||
+ Ancillary clock features
|
||||
- One short or periodic alarms, with signal delivery to user program
|
||||
- Time stamp external events
|
||||
- Period output signals configurable from user space
|
||||
- Synchronization of the Linux system time via the PPS subsystem
|
||||
|
||||
** PTP hardware clock kernel API
|
||||
|
||||
A PTP clock driver registers itself with the class driver. The
|
||||
class driver handles all of the dealings with user space. The
|
||||
author of a clock driver need only implement the details of
|
||||
programming the clock hardware. The clock driver notifies the class
|
||||
driver of asynchronous events (alarms and external time stamps) via
|
||||
a simple message passing interface.
|
||||
|
||||
The class driver supports multiple PTP clock drivers. In normal use
|
||||
cases, only one PTP clock is needed. However, for testing and
|
||||
development, it can be useful to have more than one clock in a
|
||||
single system, in order to allow performance comparisons.
|
||||
|
||||
** PTP hardware clock user space API
|
||||
|
||||
The class driver also creates a character device for each
|
||||
registered clock. User space can use an open file descriptor from
|
||||
the character device as a POSIX clock id and may call
|
||||
clock_gettime, clock_settime, and clock_adjtime. These calls
|
||||
implement the basic clock operations.
|
||||
|
||||
User space programs may control the clock using standardized
|
||||
ioctls. A program may query, enable, configure, and disable the
|
||||
ancillary clock features. User space can receive time stamped
|
||||
events via blocking read() and poll(). One shot and periodic
|
||||
signals may be configured via the POSIX timer_settime() system
|
||||
call.
|
||||
|
||||
** Writing clock drivers
|
||||
|
||||
Clock drivers include include/linux/ptp_clock_kernel.h and register
|
||||
themselves by presenting a 'struct ptp_clock_info' to the
|
||||
registration method. Clock drivers must implement all of the
|
||||
functions in the interface. If a clock does not offer a particular
|
||||
ancillary feature, then the driver should just return -EOPNOTSUPP
|
||||
from those functions.
|
||||
|
||||
Drivers must ensure that all of the methods in interface are
|
||||
reentrant. Since most hardware implementations treat the time value
|
||||
as a 64 bit integer accessed as two 32 bit registers, drivers
|
||||
should use spin_lock_irqsave/spin_unlock_irqrestore to protect
|
||||
against concurrent access. This locking cannot be accomplished in
|
||||
class driver, since the lock may also be needed by the clock
|
||||
driver's interrupt service routine.
|
||||
|
||||
** Supported hardware
|
||||
|
||||
+ Freescale eTSEC gianfar
|
||||
- 2 Time stamp external triggers, programmable polarity (opt. interrupt)
|
||||
- 2 Alarm registers (optional interrupt)
|
||||
- 3 Periodic signals (optional interrupt)
|
||||
|
||||
+ National DP83640
|
||||
- 6 GPIOs programmable as inputs or outputs
|
||||
- 6 GPIOs with dedicated functions (LED/JTAG/clock) can also be
|
||||
used as general inputs or outputs
|
||||
- GPIO inputs can time stamp external triggers
|
||||
- GPIO outputs can produce periodic signals
|
||||
- 1 interrupt pin
|
||||
|
||||
+ Intel IXP465
|
||||
- Auxiliary Slave/Master Mode Snapshot (optional interrupt)
|
||||
- Target Time (optional interrupt)
|
Loading…
Add table
Add a link
Reference in a new issue