/ # insmod gslX680new.ko
[ 2399.949894] ctp_fetch_sysconfig_para: ctp_power_io is invalid.
[ 2399.956697] ctp_fetch_sysconfig_para: wakeup_gpio is invalid.
[ 2399.963277] ctp_init_platform_resource: could not get ctp ldo 'none' , checkif ctp independent power supply by ldo,ignorefirstly
[ 2399.976250] ctp_get_system_config:fwname:gsl_t1_v2
[ 2399.981612] fw_index = 12
[ 2400.014488] drivers/input/touchscreen/gslx680new/gslX680.c 1824 gsl_ts_init
[ 2400.022570] GSLX680 Enter gsl_ts_probe
[ 2400.027636] [GSLX680] Enter gsl_ts_init_ts
[ 2400.033273] input: gslX680 as /devices/soc.0/1c27000.twi/i2c-0/0-0040/input/input2
/ # [ 2400.164721] twi_stop()428 - [i2c0] i2c state(0x00000000) isn't idle(0xf8)
[ 2400.172277] sunxi_i2c_core_process()783 - [i2c0] STOP failed!
[ 2400.224667] twi_stop()428 - [i2c0] i2c state(0x00000000) isn't idle(0xf8)
[ 2400.232220] sunxi_i2c_core_process()783 - [i2c0] STOP failed!
[ 2400.254707] twi_stop()428 - [i2c0] i2c state(0x00000000) isn't idle(0xf8)
[ 2400.262255] sunxi_i2c_core_process()783 - [i2c0] STOP failed!
[ 2400.334699] twi_stop()428 - [i2c0] i2c state(0x00000000) isn't idle(0xf8)
[ 2400.342247] sunxi_i2c_core_process()783 - [i2c0] STOP failed!
[ 2400.364689] twi_stop()428 - [i2c0] i2c state(0x00000000) isn't idle(0xf8)
[ 2400.372236] sunxi_i2c_core_process()783 - [i2c0] STOP failed!
[ 2400.394692] twi_stop()428 - [i2c0] i2c state(0x00000000) isn't idle(0xf8)
麻烦知道的指点一下,感谢!!!
离线
有没有哪位大佬能够指点一下,我看了一下报错的地方:
static int twi_stop(void __iomem *base_addr, int bus_num)
{
unsigned int timeout = 0xff;
twi_set_stop(base_addr);
twi_clear_irq_flag(base_addr);
twi_get_stop(base_addr);/* it must delay 1 nop to check stop bit */
while(( 1 == twi_get_stop(base_addr))&& (--timeout));
if (timeout == 0) {
I2C_ERR("[i2c%d] STOP can't sendout!\n", bus_num);
return SUNXI_I2C_TFAIL;
}
timeout = 0xff;
while((TWI_STAT_IDLE != readl(base_addr + TWI_STAT_REG))&&(--timeout));
if (timeout == 0) {
I2C_ERR("[i2c%d] i2c state(0x%08x) isn't idle(0xf8)\n", bus_num, readl(base_addr + TWI_STAT_REG));
return SUNXI_I2C_TFAIL;
}
timeout = 0xff;
while((TWI_LCR_IDLE_STATUS != readl(base_addr + TWI_LCR_REG))&&(--timeout));
if (timeout == 0) {
I2C_ERR("[i2c%d] i2c lcr(0x%08x) isn't idle(0x3a)\n", bus_num, readl(base_addr + TWI_LCR_REG));
return SUNXI_I2C_TFAIL;
}
return SUNXI_I2C_OK;
}
离线