[LEDE-DEV] Help on porting new device (DCS-933L)

Luiz Angelo Daros de Luca luizluca at gmail.com
Sat Dec 17 23:54:10 PST 2016


Hi John,

It seems that this device needs a firmware for its OmniVision's
OV00780-L28G chip.
It is loaded at boot with (removed the if's):

<from rcS>:
cp /sbin/ov780spi_fw.bin /sbin/ov780_fw.bin
ov780 -r 120 -i 100
insmod /lib/uvcvideo.ko
insmod /lib/modules/2.6.21/kernel/sound/core/snd-rawmidi.ko
insmod /lib/modules/2.6.21/kernel/sound/core/snd-hwdep.ko
insmod /lib/modules/2.6.21/kernel/sound/core/snd-page-alloc.ko
insmod /lib/modules/2.6.21/kernel/sound/core/snd-timer.ko
insmod /lib/modules/2.6.21/kernel/sound/core/snd-pcm.ko
insmod /lib/modules/2.6.21/kernel/sound/usb/snd-usb-lib.ko
insmod /lib/snd-usb-audio.ko

So, only after the firmware is fed I would be able to see the USB devices.

I compiled ov780 (no source, object file only) and it runned on LEDE.
The problem is that it tries to access
/dev/spiS0 (which does not exists) and aborts. Anyway, checking
strings, it would probably access another
missing device at /dev/gpio. Both are char devices with source at
linux-2.6.21.x/drivers/char/spi_drv.c and
linux-2.6.21.x/drivers/char/ralink_gpio.c.

I guess /dev/spiS0 might refer to SoC SPI. Probably it checks
something on SoC before sending the firmware.
The chip has these GPIO related to OV780 defined as:

#define OV780_SPI_OUT       17
#define OV780_SPI_IN        18
#define OV780_BOOT_IN       20

I guess OV780_BOOT_IN might be used to feed the firmware into OV780.
OV780_SPI_IN and OV780_SPI_OUT
seem to be used for controlling things on the camera like IR, light
sensor, etc as there are mostly used inside
uvc_streamer. However, they might also play a role on loading the firmware.

The factory firmware uses either outdated kernel interfaces or
proprietary drivers. Probably there is a
better way to do it on current Linux.

Is there something similar to this firmware loading (using gpio ports)
already working on OpenWRT/Linux?
How hard would it be to make this camera work?
Is there any suggested "next step"?

I'm cc to Pinney who tried the same port and stopped at this same point.

Regards,



More information about the Lede-dev mailing list