Files
Vincent Chung c7f12c1ae6 media: tegra: cdi-mgr: fault code for tmr eq fail
Add the CDI_MGR_GPIO_INTR_FAULT code, and emit it when interrupt timer
enqueue fails.

Jira CAMERASW-11945

Bug 3902416

Change-Id: I7459c2bd7160cf8552007a0e299ad1f2a1f47b1f
Signed-off-by: Vincent Chung <vincentc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2901738
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Frank Chen <frankc@nvidia.com>
Reviewed-by: Shiva Dubey <sdubey@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-12 04:58:08 -07:00

95 lines
2.3 KiB
C

// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2020-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#ifndef __UAPI_TEGRA_CDI_MGR_H__
#define __UAPI_TEGRA_CDI_MGR_H__
#include <linux/ioctl.h>
#include <linux/types.h>
#define CDI_MGR_IOCTL_PWR_DN _IOW('o', 1, __s16)
#define CDI_MGR_IOCTL_PWR_UP _IOR('o', 2, __s16)
#define CDI_MGR_IOCTL_SET_PID _IOW('o', 3, struct cdi_mgr_sinfo)
#define CDI_MGR_IOCTL_SIGNAL _IOW('o', 4, int)
#define CDI_MGR_IOCTL_DEV_ADD _IOW('o', 5, struct cdi_mgr_new_dev)
#define CDI_MGR_IOCTL_DEV_DEL _IOW('o', 6, int)
#define CDI_MGR_IOCTL_PWR_INFO _IOW('o', 7, struct cdi_mgr_pwr_info)
#define CDI_MGR_IOCTL_PWM_ENABLE _IOW('o', 8, int)
#define CDI_MGR_IOCTL_PWM_CONFIG _IOW('o', 9, struct cdi_mgr_pwm_info)
#define CDI_MGR_IOCTL_INTR_CONFIG _IOW('o', 10, struct cdi_mgr_gpio_info)
#define CDI_MGR_IOCTL_INTR_ENABLE _IO('o', 11)
#define CDI_MGR_IOCTL_INTR_WAIT _IOR('o', 12, __u32)
#define CDI_MGR_IOCTL_INTR_WAIT_ABORT _IO('o', 13)
#define CDI_MGR_IOCTL_GET_EXT_PWR_CTRL _IOR('o', 14, __u8)
#define CDI_MGR_IOCTL_GET_PWR_INFO _IOW('o', 15, struct cdi_mgr_pwr_ctrl_info)
#define CDI_MGR_IOCTL_ENABLE_DES_POWER _IO('o', 16)
#define CDI_MGR_IOCTL_DISABLE_DES_POWER _IO('o', 17)
#define CDI_MGR_POWER_ALL 5
#define MAX_CDI_NAME_LENGTH 32
#define DES_PWR_NVCCP 0U
#define DES_PWR_GPIO 1U
#define DES_PWR_NO_PWR 0xFFU
#define CAM_PWR_NVCCP 0U
#define CAM_PWR_MAX20087 1U
#define CAM_PWR_NO_PWR 0xFFU
struct cdi_mgr_new_dev {
__u16 addr;
__u8 reg_bits;
__u8 val_bits;
__u8 drv_name[MAX_CDI_NAME_LENGTH];
};
struct cdi_mgr_sinfo {
__s32 pid;
__s32 sig_no;
__u64 context;
};
struct cdi_mgr_pwr_info {
__s32 pwr_gpio;
__s32 pwr_status;
};
struct cdi_mgr_pwr_ctrl_info {
__s8 des_pwr_method;
__s8 des_pwr_i2c_addr;
};
struct cdi_mgr_gpio_info {
__u32 idx;
__u32 timeout_ms;
};
struct cdi_mgr_gpio_intr {
__u32 idx;
__u32 code;
};
struct cdi_mgr_pwm_info {
__u64 duty_ns;
__u64 period_ns;
};
enum {
CDI_MGR_GPIO_INTR_UNBLOCK = 0,
CDI_MGR_GPIO_INTR,
CDI_MGR_GPIO_INTR_TIMEOUT,
CDI_MGR_GPIO_INTR_FAULT,
};
enum {
CDI_MGR_SIGNAL_RESUME = 0,
CDI_MGR_SIGNAL_SUSPEND,
};
enum {
CDI_MGR_PWM_DISABLE = 0,
CDI_MGR_PWM_ENABLE,
};
#endif /* __UAPI_TEGRA_CDI_MGR_H__ */