BACKGROUND:
hacking a kernel supplied by my DM3730 hardware vendor.
Linux DM-37x 3.0.0-BSP-dm37x-2.0-4SLA #62 Wed Apr 4 14:23:05 PDT 2012 armv7l GNU/Linux
TVP5150 is compiled as a kernel module (different problems when it is compiled in).
the 5150 sits on the I2C-2 bus
Modified my board file to initialize camera support:
omap3_init_camera(&sla1500_isp_platform_data);
...
static struct i2c_board_info omap3logic_i2c2_boardinfo[] =
{
{
I2C_BOARD_INFO("tvp5150", 0x5d),
},
};
static struct isp_subdev_i2c_board_info sla1500_tvp5150_subdevs[] = {
{
.board_info = omap3logic_i2c2_boardinfo,
.i2c_adapter_id = TVP5150_I2C_BUS_NUM,
},
{ NULL, 0 },
};
static struct isp_v4l2_subdevs_group sla1500_camera_subdevs[] = {
{
.subdevs = sla1500_tvp5150_subdevs,
.interface = ISP_INTERFACE_PARALLEL,
.bus = {
.parallel = {
.data_lane_shift = 0,
.clk_pol = 0,
},
},
},
{ },
};
static struct isp_platform_data sla1500_isp_platform_data = {
.subdevs = sla1500_camera_subdevs,
};
KERNEL LOG:
...
[ 0.273590] omap_i2c omap_i2c.2: bus 2 rev4.0 at 400 kHz
[ 0.289184] omap_i2c omap_i2c.3: bus 3 rev4.0 at 400 kHz
...
[ 0.305908] sla1500 camera init done successfully... // where I call
[ 0.306884] omap-iommu omap-iommu.0: isp registered
...
[ 2.687622] i2c /dev entries driver
[ 2.692047] Linux media interface: v0.10
[ 2.696228] Linux video capture interface: v2.00
[ 2.701599] omap3isp omap3isp: Revision 15.0 found
[ 2.706726] omap-iommu omap-iommu.0: isp: version 1.1
[ 2.712219] omap3isp omap3isp: hist: DMA channel = 1
[ 2.720092] isp_register_subdev_group: Unable to register subdev tvp5150
[ 2.729034] vpfe_init
OTHER INFO:
I can query the TVP5150 over the I2C bus from the command line, so I know it is there and functioning properly.
QUESTION:
Why would it be unable to register the subdevices?