• Ederson de Souza's avatar
    igc: enable auxiliary PHC functions for the i225 · 87938851
    Ederson de Souza authored
    The i225 device offers a number of special PTP Hardware Clock features on
    the Software Defined Pins (SDPs) - much like i210, which is used as
    inspiration for this patch. It enables two possible functions, namely
    time stamping external events and periodic output signals.
    
    The assignment of PHC functions to the four SDP can be freely chosen by
    the user.
    
    For the external events time stamping, when the SDP (configured as input
    by user) level changes, an interrupt is generated and the kernel
    Precision Time Protocol (PTP) is informed.
    
    For the periodic output signals, the i225 is configured to generate them
    (so the SDP level will change periodically) and the driver also has to
    keep updating the time of the next level change. However, this work is
    not necessary for some frequencies as the i225 takes care of them
    (namely, anything with a half-cycle of 500ms, 250ms, 125ms or < 70ms).
    
    While i225 allows up to four timers to be used to source the time used
    on the external events or output signals, this patch uses only one of
    those timers. Main reason is to keep it simple, as it's not clear how
    these extra timers would be exposed to users. Note that currently a NIC
    can expose a single PTP device.
    Signed-off-by: default avatarEderson de Souza <ederson.desouza@intel.com>
    Tested-by: default avatarDvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    87938851
igc_ptp.c 23.5 KB