您尚未登录。

楼主 #1 2021-01-27 10:26:33

jkl
会员
注册时间: 2019-11-18
已发帖子: 253
积分: 141.5

请问一下,调试gsl1680触摸的时候出现下面调试信息,i2c0不处于空闲状态

/ # 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)

麻烦知道的指点一下,感谢!!!

离线

楼主 #2 2021-01-27 15:12:33

jkl
会员
注册时间: 2019-11-18
已发帖子: 253
积分: 141.5

Re: 请问一下,调试gsl1680触摸的时候出现下面调试信息,i2c0不处于空闲状态

有没有哪位大佬能够指点一下,我看了一下报错的地方:
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;
}

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn