PPS generators are special hardware which are able to produce PPS (Pulse Per Second) signals. This patchset adds PPS generators class in order to have a well-defined interface for these devices. Changelog: V1 -> V2: * new file Documentation/ABI/testing/sysfs-pps-gen added in MAINTAINERS * date for the documentation ABI set to v6.13 which will be released on 2025-02 * removed documentation for non-existent sysfs "name" entry * spelling and/or syntax errors fixed RFC -> V1: * char device reworked (get_device/set_device) * dummy driver has been moved in a separate patch * idr_ replaced with ida_* functions * fixes in include/uapi/linux/pps_gen.h * MAINTAINERS updated * new ioctl PPS_GEN_USESYSTEMCLOCK added * new ioctl PPS_GEN_FETCHEVENT added * .compat_ioctl dropped * WARN_ON() removed from pps_gen_cdev_release() * not needed pr_*() calls removed or replaced with dev_*() * more quite driver * name attribute dropped * white spaces removed Rodolfo Giometti (4): drivers pps: add PPS generators support drivers pps/generators: add dummy PPS generator Documentation pps.rst: add PPS generators documentation Documentation ABI: add PPS generators documentation Documentation/ABI/testing/sysfs-pps-gen | 38 ++ Documentation/driver-api/pps.rst | 40 ++ .../userspace-api/ioctl/ioctl-number.rst | 1 + MAINTAINERS | 2 + drivers/pps/Makefile | 3 +- drivers/pps/generators/Kconfig | 22 +- drivers/pps/generators/Makefile | 4 + drivers/pps/generators/pps_gen-dummy.c | 96 +++++ drivers/pps/generators/pps_gen.c | 344 ++++++++++++++++++ drivers/pps/generators/sysfs.c | 75 ++++ include/linux/pps_gen_kernel.h | 78 ++++ include/uapi/linux/pps_gen.h | 37 ++ 12 files changed, 738 insertions(+), 2 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-pps-gen create mode 100644 drivers/pps/generators/pps_gen-dummy.c create mode 100644 drivers/pps/generators/pps_gen.c create mode 100644 drivers/pps/generators/sysfs.c create mode 100644 include/linux/pps_gen_kernel.h create mode 100644 include/uapi/linux/pps_gen.h -- 2.34.1