We have a TP2855 4 channel video decoder which we are using on a custom IMX8MP board. We also have an TP2855 EVK board connected to an imx8mp-evk board for testing.
We are using the NXP IMX Linux with the linux-imx 5.10 lf-5.10.y kernel.
We have a tp2855 I2C driver from Techpoint which appears to have been originally created by Freescale Semiconductor, Inc. We have modified this to work in the system and we see a good fullHD video stream from a connected camera.
However when we install the tp2855 driver, the system only creates a /dev/video3 node when we believe it should have created 4 x /dev/video* nodes. The tp2855 driver looks like it uses the media interface to create the pads/nodes:
v4l2_i2c_subdev_init(sd, client, &tp2855_subdev_ops);
sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
tp2855_data->pads[MIPI_CSI2_SENS_VC0_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
tp2855_data->pads[MIPI_CSI2_SENS_VC1_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
tp2855_data->pads[MIPI_CSI2_SENS_VC2_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
tp2855_data->pads[MIPI_CSI2_SENS_VC3_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
retval = media_entity_pads_init(&sd->entity, MIPI_CSI2_SENS_VCX_PADS_NUM,
tp2855_data->pads);
I note the kernel messages state: "imx8_media_dev: module is from the staging directory, the quality is unknown, you have been warned."
Not sure what is happening here.
1. Should the imx8_media_dev driver have created the 4 x /dev/video* nodes for this 4 channel video decoder but is not handling this correctly ?
2. There are issues in the tp2855 driver that need addressing to get the 4 /dev/video* entries ?