mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
media: i2c: Add a driver for the Infineon IRS1125 depth sensor
The Infineon IRS1125 is a time of flight depth sensor that has a CSI-2 interface. Add a V4L2 subdevice driver for this device. Signed-off-by: Markus Proeller <markus.proeller@pieye.org>
This commit is contained in:
committed by
Phil Elwell
parent
45192b4962
commit
04d173f82f
@@ -813,6 +813,18 @@ config VIDEO_OV13858
|
||||
This is a Video4Linux2 sensor driver for the OmniVision
|
||||
OV13858 camera.
|
||||
|
||||
config VIDEO_IRS1125
|
||||
tristate "Infineon IRS1125 sensor support"
|
||||
depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
|
||||
depends on MEDIA_CAMERA_SUPPORT
|
||||
select V4L2_FWNODE
|
||||
help
|
||||
This is a Video4Linux2 sensor-level driver for the Infineon
|
||||
IRS1125 camera.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called irs1125.
|
||||
|
||||
config VIDEO_VS6624
|
||||
tristate "ST VS6624 sensor support"
|
||||
depends on VIDEO_V4L2 && I2C
|
||||
|
||||
@@ -80,6 +80,7 @@ obj-$(CONFIG_VIDEO_OV772X) += ov772x.o
|
||||
obj-$(CONFIG_VIDEO_OV7740) += ov7740.o
|
||||
obj-$(CONFIG_VIDEO_OV9650) += ov9650.o
|
||||
obj-$(CONFIG_VIDEO_OV13858) += ov13858.o
|
||||
obj-$(CONFIG_VIDEO_IRS1125) += irs1125.o
|
||||
obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o
|
||||
obj-$(CONFIG_VIDEO_MT9M111) += mt9m111.o
|
||||
obj-$(CONFIG_VIDEO_MT9P031) += mt9p031.o
|
||||
|
||||
1112
drivers/media/i2c/irs1125.c
Normal file
1112
drivers/media/i2c/irs1125.c
Normal file
File diff suppressed because it is too large
Load Diff
61
drivers/media/i2c/irs1125.h
Normal file
61
drivers/media/i2c/irs1125.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* A V4L2 driver for Infineon IRS1125 TOF cameras.
|
||||
* Copyright (C) 2018, pieye GmbH
|
||||
*
|
||||
* Based on V4L2 OmniVision OV5647 Image Sensor driver
|
||||
* Copyright (C) 2016 Ramiro Oliveira <roliveir@synopsys.com>
|
||||
*
|
||||
* DT / fwnode changes, and GPIO control taken from ov5640.c
|
||||
* Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
* Copyright (C) 2014-2017 Mentor Graphics Inc.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef IRS1125_H
|
||||
#define IRS1125_H
|
||||
|
||||
#include <linux/v4l2-controls.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define IRS1125_NUM_SEQ_ENTRIES 20
|
||||
#define IRS1125_NUM_MOD_PLLS 4
|
||||
|
||||
#define IRS1125_CID_CUSTOM_BASE (V4L2_CID_USER_BASE | 0xf000)
|
||||
#define IRS1125_CID_SAFE_RECONFIG (IRS1125_CID_CUSTOM_BASE + 0)
|
||||
#define IRS1125_CID_CONTINUOUS_TRIG (IRS1125_CID_CUSTOM_BASE + 1)
|
||||
#define IRS1125_CID_TRIGGER (IRS1125_CID_CUSTOM_BASE + 2)
|
||||
#define IRS1125_CID_RECONFIG (IRS1125_CID_CUSTOM_BASE + 3)
|
||||
#define IRS1125_CID_ILLU_ON (IRS1125_CID_CUSTOM_BASE + 4)
|
||||
#define IRS1125_CID_NUM_SEQS (IRS1125_CID_CUSTOM_BASE + 5)
|
||||
#define IRS1125_CID_MOD_PLL (IRS1125_CID_CUSTOM_BASE + 6)
|
||||
#define IRS1125_CID_SEQ_CONFIG (IRS1125_CID_CUSTOM_BASE + 7)
|
||||
#define IRS1125_CID_IDENT0 (IRS1125_CID_CUSTOM_BASE + 8)
|
||||
#define IRS1125_CID_IDENT1 (IRS1125_CID_CUSTOM_BASE + 9)
|
||||
#define IRS1125_CID_IDENT2 (IRS1125_CID_CUSTOM_BASE + 10)
|
||||
|
||||
struct irs1125_seq_cfg {
|
||||
__u16 exposure;
|
||||
__u16 framerate;
|
||||
__u16 ps;
|
||||
__u16 pll;
|
||||
};
|
||||
|
||||
struct irs1125_illu {
|
||||
__u16 exposure;
|
||||
__u16 framerate;
|
||||
};
|
||||
|
||||
struct irs1125_mod_pll {
|
||||
__u16 pllcfg1;
|
||||
__u16 pllcfg2;
|
||||
__u16 pllcfg3;
|
||||
__u16 pllcfg4;
|
||||
__u16 pllcfg5;
|
||||
__u16 pllcfg6;
|
||||
__u16 pllcfg7;
|
||||
__u16 pllcfg8;
|
||||
};
|
||||
|
||||
#endif /* IRS1125 */
|
||||
|
||||
Reference in New Issue
Block a user