Files
Manish Bhardwaj a2fdb986b0 nvidia-oot: add nvpps and ptp driver
Using this patch we are adding support for
ptp and nvpps driver in oot kernel.

JIRA ESLC-6885

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Id47ac5602d11ce417f9d421b4f672578922ca94f
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2785318
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: David Tao <tehyut@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-03 21:31:01 -07:00

79 lines
1.5 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
*/
#ifndef __UAPI_NVPPS_IOCTL_H__
#define __UAPI_NVPPS_IOCTL_H__
#include <linux/types.h>
#include <linux/ioctl.h>
struct nvpps_version {
struct _version {
__u32 major;
__u32 minor;
} version;
struct _api {
__u32 major;
__u32 minor;
} api;
};
#define NVPPS_VERSION_MAJOR 0
#define NVPPS_VERSION_MINOR 2
#define NVPPS_API_MAJOR 0
#define NVPPS_API_MINOR 4
struct nvpps_params {
__u32 evt_mode;
__u32 tsc_mode;
};
/* evt_mode */
#define NVPPS_MODE_GPIO 0x01
#define NVPPS_MODE_TIMER 0x02
/* tsc_mode */
#define NVPPS_TSC_NSEC 0
#define NVPPS_TSC_COUNTER 1
struct nvpps_timeevent {
__u32 evt_nb;
__u64 tsc;
__u64 ptp;
__u64 secondary_ptp;
__u64 tsc_res_ns;
__u32 evt_mode;
__u32 tsc_mode;
__u64 irq_latency;
};
#ifndef _LINUX_TIME64_H
typedef __s64 time64_t;
typedef __u64 timeu64_t;
struct timespec64 {
time64_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
#endif
struct nvpps_timestamp_struct {
clockid_t clockid;
struct timespec64 kernel_ts;
struct timespec64 hw_ptp_ts;
__u64 extra[2];
};
#define NVPPS_GETVERSION _IOR('p', 0x1, struct nvpps_version *)
#define NVPPS_GETPARAMS _IOR('p', 0x2, struct nvpps_params *)
#define NVPPS_SETPARAMS _IOW('p', 0x3, struct nvpps_params *)
#define NVPPS_GETEVENT _IOR('p', 0x4, struct nvpps_timeevent *)
#define NVPPS_GETTIMESTAMP _IOWR('p', 0x5, struct nvpps_timestamp_struct *)
#endif /* __UAPI_NVPPS_IOCTL_H__ */