Merge remote-tracking branch 'origin/capture/media-dev' into capture/next

* origin/capture/media-dev:
  media: staging: imx: add media device driver support for IMX8
  media: dt-bindings: add bindings for i.MX8QXP/QM virtual media device
This commit is contained in:
Dong Aisheng 2019-12-02 18:00:50 +08:00
commit 9c17c11604
5 changed files with 1219 additions and 0 deletions

View File

@ -0,0 +1,38 @@
Virtual Media device
-------------------------------
Virtual Media device is used to manage all modules in image capture subsystem
of imx8qxp/qm platform. ISI(Image Sensor Interface), MIPI CSI, Parallel CSI
device node should be under it.
Required properties:
- compatible : must be "fsl,mxc-md";
- reg : Must contain an entry for each entry in reg-names;
- #address-cells: should be <1>;
- #size-cells : should be <1>;
- ranges : use to handle address space
Optional properties:
- parallel_csi: indicate that camera sensor use parallel interface
For example:
cameradev: camera {
compatible = "fsl,mxc-md", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
isi@58100000 {
compatible = "fsl,imx8-isi";
reg = <0x58100000 0x10000>;
...
};
csi@58227000 {
compatible = "fsl,mxc-mipi-csi2";
...
};
...
};

View File

@ -47,6 +47,14 @@ config VIDEO_IMX_CAPTURE
if VIDEO_IMX_CAPTURE
menu "i.MX8QXP/QM Camera ISI/MIPI Features support"
config IMX8_MEDIA_DEVICE
tristate "IMX8 Media Device Driver"
select V4L2_FWNODE
default y
help
This media device is a virtual device which used to manage
all modules in image subsystem of imx8qxp/qm platform.
config IMX8_ISI_CORE
bool "IMX8 Image Sensor Interface Core Driver"
depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API

View File

@ -18,6 +18,7 @@ obj-$(CONFIG_VIDEO_IMX_CSI) += imx6-mipi-csi2.o
obj-$(CONFIG_VIDEO_IMX7_CSI) += imx7-media-csi.o
obj-$(CONFIG_VIDEO_IMX7_CSI) += imx7-mipi-csis.o
obj-$(CONFIG_IMX8_MEDIA_DEVICE) += imx8-media-dev.o
obj-$(CONFIG_IMX8_ISI_CORE) += imx8-capture.o
obj-$(CONFIG_IMX8_ISI_CAPTURE) += imx8-isi-cap.o
obj-$(CONFIG_IMX8_ISI_M2M) += imx8-isi-m2m.o

View File

@ -0,0 +1,99 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* V4L2 Capture ISI subdev for i.MX8QXP/QM platform
*
* ISI is a Image Sensor Interface of i.MX8QXP/QM platform, which
* used to process image from camera sensor to memory or DC
*
* Copyright (c) 2019 NXP Semiconductor
*
*/
#ifndef __MXC_COMMON_H__
#define __MXC_COMMON_H__
#define ISI_OF_NODE_NAME "isi"
#define MIPI_CSI2_OF_NODE_NAME "csi"
#define PARALLEL_OF_NODE_NAME "pcsi"
#define MXC_ISI_MAX_DEVS 8
#define MXC_MIPI_CSI2_MAX_DEVS 2
#define MXC_MAX_SENSORS 3
/* ISI PADS */
#define MXC_ISI_SD_PAD_SINK_MIPI0_VC0 0
#define MXC_ISI_SD_PAD_SINK_MIPI0_VC1 1
#define MXC_ISI_SD_PAD_SINK_MIPI0_VC2 2
#define MXC_ISI_SD_PAD_SINK_MIPI0_VC3 3
#define MXC_ISI_SD_PAD_SINK_MIPI1_VC0 4
#define MXC_ISI_SD_PAD_SINK_MIPI1_VC1 5
#define MXC_ISI_SD_PAD_SINK_MIPI1_VC2 6
#define MXC_ISI_SD_PAD_SINK_MIPI1_VC3 7
#define MXC_ISI_SD_PAD_SINK_DC0 8
#define MXC_ISI_SD_PAD_SINK_DC1 9
#define MXC_ISI_SD_PAD_SINK_HDMI 10
#define MXC_ISI_SD_PAD_SINK_MEM 11
#define MXC_ISI_SD_PAD_SOURCE_MEM 12
#define MXC_ISI_SD_PAD_SOURCE_DC0 13
#define MXC_ISI_SD_PAD_SOURCE_DC1 14
#define MXC_ISI_SD_PAD_SINK_PARALLEL_CSI 15
#define MXC_ISI_SD_PADS_NUM 16
/* MIPI CSI PADS */
#define MXC_MIPI_CSI2_VC0_PAD_SINK 0
#define MXC_MIPI_CSI2_VC1_PAD_SINK 1
#define MXC_MIPI_CSI2_VC2_PAD_SINK 2
#define MXC_MIPI_CSI2_VC3_PAD_SINK 3
#define MXC_MIPI_CSI2_VC0_PAD_SOURCE 4
#define MXC_MIPI_CSI2_VC1_PAD_SOURCE 5
#define MXC_MIPI_CSI2_VC2_PAD_SOURCE 6
#define MXC_MIPI_CSI2_VC3_PAD_SOURCE 7
#define MXC_MIPI_CSI2_VCX_PADS_NUM 8
/* Parallel CSI PADS */
#define MXC_PARALLEL_CSI_PAD_SOURCE 0
#define MXC_PARALLEL_CSI_PAD_SINK 1
#define MXC_PARALLEL_CSI_PADS_NUM 2
#define ISI_2K 2048
enum {
IN_PORT,
SUB_IN_PORT,
OUT_PORT,
MAX_PORTS,
};
enum isi_input_interface {
ISI_INPUT_INTERFACE_DC0 = 0,
ISI_INPUT_INTERFACE_DC1,
ISI_INPUT_INTERFACE_MIPI0_CSI2,
ISI_INPUT_INTERFACE_MIPI1_CSI2,
ISI_INPUT_INTERFACE_HDMI,
ISI_INPUT_INTERFACE_MEM,
ISI_INPUT_INTERFACE_PARALLEL_CSI,
ISI_INPUT_INTERFACE_MAX,
};
enum isi_input_sub_interface {
ISI_INPUT_SUB_INTERFACE_VC0 = 0,
ISI_INPUT_SUB_INTERFACE_VC1,
ISI_INPUT_SUB_INTERFACE_VC2,
ISI_INPUT_SUB_INTERFACE_VC3,
};
enum isi_output_interface {
ISI_OUTPUT_INTERFACE_DC0 = 0,
ISI_OUTPUT_INTERFACE_DC1,
ISI_OUTPUT_INTERFACE_MEM,
ISI_OUTPUT_INTERFACE_MAX,
};
enum mxc_isi_buf_id {
MXC_ISI_BUF1 = 0x0,
MXC_ISI_BUF2,
};
#endif /* MXC_ISI_CORE_H_ */

File diff suppressed because it is too large Load Diff