From 4173a8a377c190514f51224159bbdf1e5efd8dee Mon Sep 17 00:00:00 2001 From: David Bang Date: Wed, 11 Oct 2017 17:33:20 -0400 Subject: drivers: camera: add ioctl for mipi bias pad Add support for the user to read mipi bias pad config registers. Jira CRTC-1436 Change-Id: I6e5cc5865d226e31f10c7b0c3bc4d0ce78e91d26 Signed-off-by: David Bang Reviewed-on: https://git-master.nvidia.com/r/1577309 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Bhanu Murthy V Reviewed-by: Josh Kergan Reviewed-by: Jihoon Bang --- drivers/media/platform/tegra/mipical/mipi_cal.c | 24 ++++++++++++++++++++++++ include/uapi/misc/tegra_mipi_ioctl.h | 2 ++ 2 files changed, 26 insertions(+) diff --git a/drivers/media/platform/tegra/mipical/mipi_cal.c b/drivers/media/platform/tegra/mipical/mipi_cal.c index fb82f27c7..d848622c0 100644 --- a/drivers/media/platform/tegra/mipical/mipi_cal.c +++ b/drivers/media/platform/tegra/mipical/mipi_cal.c @@ -776,6 +776,30 @@ static long mipi_ioctl(struct file *file, unsigned int cmd, unsigned long arg) } return 0; } + case _IOC_NR(TEGRA_MIPI_IOCTL_BIAS_PAD_CFG0): { + u32 bias_pad_config0 = 0; + + regmap_read(mipi->regmap, ADDR(MIPI_BIAS_PAD_CFG0), + &bias_pad_config0); + if (copy_to_user((void __user *)arg, &bias_pad_config0, + sizeof(u32))) { + dev_err(mipi->dev, "Fail to copy kernel data to user\n"); + return -EFAULT; + } + return 0; + } + case _IOC_NR(TEGRA_MIPI_IOCTL_BIAS_PAD_CFG2): { + u32 bias_pad_config2 = 0; + + regmap_read(mipi->regmap, ADDR(MIPI_BIAS_PAD_CFG2), + &bias_pad_config2); + if (copy_to_user((void __user *)arg, &bias_pad_config2, + sizeof(u32))) { + dev_err(mipi->dev, "Fail to copy kernel data to user\n"); + return -EFAULT; + } + return 0; + } default: dev_err(mipi->dev, "Unknown ioctl\n"); return -EINVAL; diff --git a/include/uapi/misc/tegra_mipi_ioctl.h b/include/uapi/misc/tegra_mipi_ioctl.h index 3c188b54a..145ebf7fa 100644 --- a/include/uapi/misc/tegra_mipi_ioctl.h +++ b/include/uapi/misc/tegra_mipi_ioctl.h @@ -22,5 +22,7 @@ #define TEGRA_MIPI_IOCTL_BIAS_PAD_CTRL _IOW(TEGRA_MIPI_IOCTL_MAGIC, 1, u32) #define TEGRA_MIPI_IOCTL_CAL _IOW(TEGRA_MIPI_IOCTL_MAGIC, 2, u32) #define TEGRA_MIPI_IOCTL_CAL_STATUS _IOR(TEGRA_MIPI_IOCTL_MAGIC, 3, __u32) +#define TEGRA_MIPI_IOCTL_BIAS_PAD_CFG0 _IOR(TEGRA_MIPI_IOCTL_MAGIC, 4, __u32) +#define TEGRA_MIPI_IOCTL_BIAS_PAD_CFG2 _IOR(TEGRA_MIPI_IOCTL_MAGIC, 5, __u32) #endif -- cgit v1.2.2