[PATCH net-next v2 0/9] ptp: dynamic pin control

From: Richard Cochran
Date: Sun Mar 16 2014 - 09:31:00 EST

This patch series introduces a way of changing the auxiliary PTP
Hardware Clock functions (periodic output signals and time stamping
external signals) at run time. In the past on the netdev list, we have
discussed other ways to handle this, such as module parameters and
ethtool. This series implements a new PHC ioctl because that is the
most natural way. Users already activate the auxiliary functions via
the ioctls. The sysfs interface has also been expanded so that the pin
configuration can be programmed using shell scripts.

The first patch adds the new ioctls. The PHC subsystem does most of
the work of maintaining the function-to-pin mapping. Drivers will only
need to allocate and initialize a pin configuration table and also
provide a new method that validates a particular assignment.

Patches 5 and 6 just clean up a couple of issues in the phyter driver,
and the remaining patches actually hook the phyter's pins into the new

Comments and questions are most welcome.


* ChangeLog
** V2
- fix bug in sysfs code on init error path
- rename ptp_setpin() to ptp_set_pinfunc()
- rename .setpin() to .verify() in the driver interface
- simplify ptp_find_pin() logic
- use correct test when checking whether the pin with the
calibration function is being reprogrammed

Richard Cochran (9):
ptp: introduce programmable pins.
ptp: add the pin GET/SETFUNC ioctls to the testptp program.
ptp: expose the programmable pins via sysfs
ptp: drivers: set the number of programmable pins.
dp83640: trivial fixes
dp83640: correct the periodic output frequency
dp83640: implement programmable pin functions.
dp83640: let external input pins from the module parameters be
dp83640: let the periodic pin from the module parameter be a default.

Documentation/ABI/testing/sysfs-ptp | 20 ++++
Documentation/ptp/testptp.c | 58 +++++++++-
drivers/net/ethernet/adi/bfin_mac.c | 1 +
drivers/net/ethernet/broadcom/tg3.c | 1 +
drivers/net/ethernet/freescale/fec_ptp.c | 1 +
drivers/net/ethernet/freescale/gianfar_ptp.c | 1 +
drivers/net/ethernet/intel/e1000e/ptp.c | 1 +
drivers/net/ethernet/mellanox/mlx4/en_clock.c | 1 +
drivers/net/ethernet/sfc/ptp.c | 1 +
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 1 +
drivers/net/ethernet/ti/cpts.c | 1 +
drivers/net/ethernet/tile/tilegx.c | 1 +
drivers/net/phy/dp83640.c | 93 ++++++++++++---
drivers/ptp/ptp_chardev.c | 133 +++++++++++++++++++++-
drivers/ptp/ptp_clock.c | 23 ++++
drivers/ptp/ptp_ixp46x.c | 1 +
drivers/ptp/ptp_pch.c | 1 +
drivers/ptp/ptp_private.h | 7 ++
drivers/ptp/ptp_sysfs.c | 112 ++++++++++++++++++
include/linux/ptp_clock_kernel.h | 33 ++++++
include/uapi/linux/ptp_clock.h | 39 ++++++-
21 files changed, 510 insertions(+), 20 deletions(-)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/