команды v4l2 без I2C

#c #linux #v4l2

Вопрос:

Нужны ли v4l2 команды I2C для сбора данных с модуля камеры?

Мы работаем с камерой, данные которой преобразуются в MIPI в мосту. Это означает, что у нас нет возможностей I2C с этой камерой. Однако мы пытаемся написать для него драйвер (на основе этого примера), и я пытался получить некоторую информацию, используя команды v4l2 в терминале. Пример:

 v4l2-ctl --device /dev/video0 --all
 

Дает ответ:

     Driver Info:
        Driver name      : mx6s-csi
        Card type        : i.MX6S_CSI
        Bus info         : platform:30a90000.csi1_bridge
        Driver version   : 4.14.98
        Capabilities     : 0x84200001
                Video Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Priority: 0
Video input : 0 (Camera: ok)
Format Video Capture:
        Width/Height      : 0/0
        Pixel Format      : ''
        Field             : Any
        Bytes per Line    : 0
        Size Image        : 0
        Colorspace        : Default
        Transfer Function : Default (maps to Rec. 709)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Full Range)
        Flags             :
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 0, Height 0
        Default     : Left 0, Top 0, Width 0, Height 0
        Pixel Aspect: 1/1
Crop: Left 0, Top 0, Width 0, Height 0
 

Как вы можете видеть, все равно 0. Тем не менее, я уверен (проверено с помощью осциллографа), что с моста поступают данные, а также часы. Я думаю, что команды v4l2 нуждаются в I2C для сбора данных, но я не уверен.

PS: если кто-нибудь знает какие-либо примеры драйверов без I2C, пожалуйста, дайте мне знать!

Комментарии:

1. Я знаю Джека о V4L, но я был бы поражен, если бы кто-нибудь использовал медленную шину, такую как I2C, для извлечения данных из камеры. Кроме того, конечно, все дело в V4L в том, что это API, поэтому вы не беспокоитесь об аппаратных уровнях? Вы пытаетесь написать действительно низкоуровневый драйвер?

2. @DiBosco v4l2 использует I2C для получения информационных данных с камеры (рукопожатия, считывание информационных регистров и т.д.). V4L действительно является API, который можно использовать в качестве драйвера. Основное, что я пытаюсь сделать, — это использовать этот API для вывода данных с камеры без необходимости использования I2C. Что оказывается гораздо сложнее, чем кажется.

3.Само ядро v4l2 не зависит от I2C. Некоторые устройства используют I2C для настройки и управления. Если у вашего модуля камеры есть I2C, он, вероятно, для чего-то нужен. Для примеров драйверов, которые не зависят от I2C, найдите в файлах «Kconfig» в каталоге драйверы/носители параметры конфигурации, которые depends on не являются ни select I2C .

4. @IanAbbott Моей камере вообще не нужен I2C, поэтому любой драйвер, в котором мы можем настроить некоторую информацию (например, ширину пикселя) и который не использует I2C, очень приветствуется! где те файлы, на которые вы указали? В системе Linux Менделя в этом каталоге есть «платформа» и папка «usb» (/lib/модули/4.14.98-imx/ядро/драйверы/носители/) , ни один из которых, похоже, не имеет подключения к v4l на первый взгляд? Однако я также не могу найти никаких онлайн-примеров.

5. Например (все в разделе «драйверы/носители/платформа/»): «ti-vpe/cal.c», «ti-vpe/vpe.c», «stm32/stm32-dcmi.c».