Quantcast
Channel: Processors
Viewing all articles
Browse latest Browse all 124337

Forum Post: RE: TW9910 Load FAIL in kernel!

$
0
0

Hi Titusrathinaraj:

    Thanks very much for your help!

   I add code to board-da850-evm.c

   But error still exist:

Linux video capture interface: v2.00
TW9910 probe ...
tw9910 1-0045: bus width error    //In Version 2.6.37, this error is not exist!
TW9910 probe ok!
vpif_capture vpif_capture: Error registering v4l2 subdevice

  Some code list is:

static struct i2c_board_info __initdata da850_evm_i2c_devices[] = {
{
I2C_BOARD_INFO("tw9910", 0x45),
};

/* I2C Video */
static struct i2c_board_info i2c_camera[] = {
{
I2C_BOARD_INFO(CAMERA_NAME, 0x45),
},
};

static struct tw9910_video_info tw9910_info = {
.buswidth = SOCAM_DATAWIDTH_8,
.mpout = TW9910_MPO_FIELD,
};

static struct soc_camera_link tw9910_link = {
.i2c_adapter_id = 0,
.bus_id = 1,
//.power = tw9910_power,
.power = NULL,
.board_info = &i2c_camera[0],
.module_name = CAMERA_NAME,
.priv = &tw9910_info,
};

static struct platform_device tw9910_camera[] = {
{
.name = "TW9910 for soc-camera",
.id = 1,
.dev = {
.platform_data = &tw9910_link,
},
},
};

static struct platform_device *tw9910_devices[] __initdata = {
&tw9910_camera[0],
};

static struct vpif_subdev_info da850_vpif_capture_sdev_info[] = {
#if defined(CONFIG_DA850_UI_CAMERA)
{
.name = "tw9910",
.board_info = {
I2C_BOARD_INFO("tw9910", 0x45),
.platform_data = &da850_evm_ui_expander_info,     //Is it right?
},
.vpif_if = {
.if_type = VPIF_IF_RAW_BAYER,
.hd_pol = 0,
.vd_pol = 0,
.fid_pol = 0,
},
},

static __init void da850_evm_init(void)

{

     ....

           i2c_register_board_info(1, da850_evm_i2c_devices,
ARRAY_SIZE(da850_evm_i2c_devices));

     ....

        if (HAS_VPIF_CAPTURE) {
                ret = davinci_cfg_reg_list(da850_vpif_capture_pins);
                if (ret)
                       pr_warning("da850_evm_init: VPIF capture mux failed:"
"%d\n", ret);

                 //LiChangsheng add
                 platform_add_devices(tw9910_devices, ARRAY_SIZE(tw9910_devices));
                 ret = da850_register_vpif_capture(&da850_vpif_capture_config);
                 if (ret)
                        pr_warning("da850_evm_init: VPIF capture setup failed:"
"%d\n", ret);
        }

      ....

}

   So I had some question:

    1 Does it need to add I2C_BOARD_INFO to da850_evm_i2c_devices? Because TW9910 device add by platform_add_devices:

static struct i2c_board_info __initdata da850_evm_i2c_devices[] = {
{
I2C_BOARD_INFO("tw9910", 0x45),
};

   2 Does da850_register_vpif_capture need to call?  Or what should I do to init some config to get CAMERA frame data?

      3  What's type does tw9910's platform_data need?

da850_vpif_capture_sdev_info[] = {

....

.platform_data = &da850_evm_ui_expander_info,     //Is it right?

....

}

   

    Full board-da850-evm.c is:

(Please visit the site to view this file) 

   

    Thanks very much! 

   

   


Viewing all articles
Browse latest Browse all 124337

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>