mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-23 01:31:30 +03:00
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>
This commit is contained in:
committed by
mobile promotions
parent
77001d121e
commit
a2fdb986b0
78
include/uapi/linux/nvpps_ioctl.h
Normal file
78
include/uapi/linux/nvpps_ioctl.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/* 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__ */
|
||||
Reference in New Issue
Block a user