imx6,明明在内核源码中定义了i2c的相关挂载设备信息,但是在内核启动的打印信息中i2c还是启动失败,请问这是什么问题
内核相关源码:
static struct imxi2c_platform_data mx6q_sabresd_i2c_data = {
.bitrate = 100000,
};
static struct fsl_mxc_lightsensor_platform_data ls_data = {
.rext = 499, /* calibration: 499K->700K */
};
static struct i2c_board_info mxc_i2c0_board_info[] __initdata = {
{
I2C_BOARD_INFO("wm89**", 0x1a),
},
//{
// I2C_BOARD_INFO("ov564x", 0x3c),
// .platform_data = (void *)&camera_data,
//},
{
I2C_BOARD_INFO("mma8451", 0x1c),
.platform_data = (void *)&mma8451_position,
},
// {
// I2C_BOARD_INFO("myCam_mipi", 0x36),
// .platform_data = (void *)&mipi_csi2_data,
// },
};
static struct i2c_board_info mxc_i2c1_board_info[] __initdata = {
{
I2C_BOARD_INFO("mxc_hdmi_i2c", 0x50),
},
//{
// I2C_BOARD_INFO("ov5640_mipi", 0x3c),
// .platform_data = (void *)&mipi_csi2_data,
//},
{
I2C_BOARD_INFO("adv7180", 0x21),
.platform_data = (void *)&adv7180_data,
},
{
I2C_BOARD_INFO("egalax_ts", 0x4),
.irq = gpio_to_irq(SABRESD_CAP_TCH_INT0),
},
{
I2C_BOARD_INFO("max11801", 0x48),
.platform_data = (void *)&max11801_mode,
.irq = gpio_to_irq(SABRESD_TS_INT),
},
{
I2C_BOARD_INFO("myCam_mipi", 0x36),
.platform_data = (void *)&mipi_csi2_data,
},
};
if (cpu_is_mx6q()) {
mxc_iomux_v3_setup_multiple_pads(mx6q_sabresd_pads,
ARRAY_SIZE(mx6q_sabresd_pads));
/*
if (enet_to_gpio_6) {
iomux_v3_cfg_t enet_gpio_pad =
MX6Q_PAD_GPIO_6__ENET_IRQ_TO_GPIO_6;
mxc_iomux_v3_setup_pad(enet_gpio_pad);
} else {
iomux_v3_cfg_t i2c3_pad =
MX6Q_PAD_GPIO_6__I2C3_SDA;
mxc_iomux_v3_setup_pad(i2c3_pad);
}
*/
} else if (cpu_is_mx6dl()) {
mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads,
ARRAY_SIZE(mx6dl_sabresd_pads));
if (enet_to_gpio_6) {
iomux_v3_cfg_t enet_gpio_pad =
MX6DL_PAD_GPIO_6__ENET_IRQ_TO_GPIO_6;
mxc_iomux_v3_setup_pad(enet_gpio_pad);
} else {
iomux_v3_cfg_t i2c3_pad =
MX6DL_PAD_GPIO_6__I2C3_SDA;
mxc_iomux_v3_setup_pad(i2c3_pad);
}
}
imx6q_add_imx_i2c(0, &mx6q_sabresd_i2c_data);
imx6q_add_imx_i2c(1, &mx6q_sabresd_i2c_data);
// imx6q_add_imx_i2c(2, &mx6q_sabresd_i2c_data);
// if (cpu_is_mx6dl())
// imx6q_add_imx_i2c(3, &mx6q_sabresd_i2c_data);
i2c_register_board_info(0, mxc_i2c0_board_info,
ARRAY_SIZE(mxc_i2c0_board_info));
i2c_register_board_info(1, mxc_i2c1_board_info,
ARRAY_SIZE(mxc_i2c1_board_info));
// i2c_register_board_info(2, mxc_i2c2_board_info,
// ARRAY_SIZE(mxc_i2c2_board_info));
内核打印相关信息:
mc_pfuze 1-0008: recv failed!:-5,80 mc_pfuze: probe of 1-0008 failed with error-1 i2c-core: driver [max17135] using legacysuspend method i2c-core: driver [max17135] using legacyresume method i2c-core: driver [isl29023] using legacysuspend method i2c-core: driver [isl29023] using legacyresume method snvs_rtc snvs_rtc.0: rtc core: registeredsnvs_rtc as rtc0 i2c /dev entries driver
|