Meerkat CSI driver not registering /dev/video0

Hi,

I’m trying to bring up a CSI camera on my Avionics Meerkat board. The first step I’m trying to achieve is to load up the demo soc_camera_platform and tegra_camera tpg_mode=2

The problem I’m encountering is that /dev/video0 is not populated.

modprobe soc_camera_platform

modprobe tegra_camera tpg_mode=2

[ 27.422149] vi vi.0: initialized
[ 27.428692] platform vi.1: Driver vi requests probe deferral
[ 27.435229] vi vi.0: Tegra camera driver loaded.
[ 27.461520] vi vi.1: initialized
[ 27.465473] vi vi.1: Tegra camera driver loaded.

ls /dev/video0

ls: /dev/video0: No such file or directory

Does anybody have any experience with this? Any suggestions?

Many thanks in advance.

Hi phabsch,

It seems your V4L2 driver is not ready.
If you have datasheet with register definitions, you could try to modify existing IMX 135 driver source, and rebuild kernel.
Please check the V4L2 User Guide for Jetson TK1 inside the Tegra_Linux_Driver_Package_Documents_R21.4, it describes the driver development.

http://developer.download.nvidia.com/embedded/L4T/r21_Release_v4.0/Tegra_Linux_Driver_Package_Documents_R21.4.tar

You could also try user space I2C and GPIO access to the camera to make sure you can power it up and write/read camera registers.

Thanks

Thanks Kayccc, I’ll look futher in to that.
But are you saying that I need to have a physical camera attached? I thought using tpg_mode=2 is to use the internal test pattern generator of VI.

I have a colleague who has tried the same set of steps on a reference TX1 systems with no camera attached, and all works well for him.

Hi phabsch,

Regarding the test pattern, please check the Test Pattern Generator section from V4L2 User Guide for Jetson TK1 inside the Tegra_Linux_Driver_Package_Documents_R21.4.

I have a colleague who has tried the same set of steps on a reference TX1 systems with no camera attached, and all works well for him.
All environments are the same?

Thanks

Thanks for the replies. It looks like the device tree initialization had a few things torn out for my meerkat setup.

The Jetson reference file arch/arm/mach-tegra/board-ardbeg.c calls ardbeg_sensors_init().

The equivalent board file I was using for the meerkat (arch/arm/mach-tegra/board-kein-baseboard.c) did not call the equivalent function to initialize the soc_sensors.