您好!
我们使用一个941连接、2个948用于2个显示屏:
将941的 GPIO0/1/2/3更改为 第一批的 GPIO0/1/2/3和将941的 D_GPIO0/1/2/3更改为 secont 的 GPIO0/1/2/3。
设置 GPIO3输出 、然后我们在941的 D_GPIO3上设置为高电平、但 GPIO3不是高电平;
但是、在设置 GPIO3输入后、我们看到941的 D_GPIO3的变化遵循9O3。
谢谢 
代码:
静态 int du90ub941_enable_port (struct goodix_ts_data * ts、
int port_index)
{
U8 dreg、dval;
dreg = 0x1E;
dval = 0;
du90ub941_i2c_read (ts、dreg、&dval、1);
dev_err (&ts->client->dev、"941[4] reg=0x%x、val=0x%x\n"、dreg、dval);
如果(port_index = 0)
Dval = 0x1;
否则、如果(port_index = 1)
dval = 0x4;
其他
返回0;
du90ub941_i2c_write (ts、dreg、&dval、1);
}
//设置 GPIO3输出
案例3:
dreg = 0x0F;
dval = 0;
du90ub941_i2c_read (ts、dreg、&dval、1);
dev_err (&ts->client->dev、"941 before out reg=0x%x、val=0x%x\n"、dreg、
评估);
dval &= 0xf0;
dval |= 0x03;
du90ub941_i2c_write (ts、dreg、&dval、1);
dval = 0;
du90ub941_i2c_read (ts、dreg、&dval、1);
dev_err (&ts->client->dev、"941 after out reg=0x%x、val=0x%x\n"、dreg、
评估);
dreg = 0x1f;
dval = 0;
du90ub948_i2c_read (ts、dreg、&dval、1);
dev_err (&ts->client->dev、"948 before out reg=0x%x、val=0x%x\n"、dreg、
评估);
dval &= 0xf0;
dval |= 0x05;
du90ub948_i2c_write (ts、dreg、&dval、1);
dval = 0;
du90ub948_i2c_read (ts、dreg、&dval、1);
dev_err (&ts->client->dev、"948 after out reg=0x%x、val=0x%x\n"、dreg、
评估);
中断;
//设置 GPIO3输入
案例3:
dreg = 0x0F;
dval = 0;
du90ub941_i2c_read (ts、dreg、&dval、1);
dev_err (&ts->client->dev、"941 in reg=0x%x、v=0x%x\n"、dreg、dval);
dval &= 0xf0;
dval |= 0x05;
du90ub941_i2c_write (ts、dreg、&dval、1);
dreg = 0x1f;
dval = 0;
du90ub948_i2c_read (ts、dreg、&dval、1);
dev_err (&ts->client->dev、"948 in reg=0x%x、v=0x%x\n"、dreg、dval);
dval &= 0xf0;
dval |= 0x03;
du90ub948_i2c_write (ts、dreg、&dval、1);
中断;
日志:
[1.498605] Semidrive DS941 DS948 Goodix-TS 5-0014:goodix_ts_probe ():get_gpio error=0
[1.506790] Semidrive DS941 DS948 Goodix-TS 5-0014:TS->addr_ds941=0xd,ts->addr_ds948=0x3c
[1.515252] Semidrive DS941 DS948 Goodix-TS 5-0014:TS->IRQ_CHANNEL = 3、ts->RESET_CHANNEL = 2
[1.543934] Semidrive DS941 DS948 Goodix-TS 5-0014:941[4] reg =0x1E、val=0x4
[1.553453] Semidrive DS941 DS948 Goodix-TS 5-0014:941 reg=0x17、val=0x9e
[1.560793] Semidrive DS941 DS948 Goodix-TS 5-0014:941 reg=0x7、val=0xba
[1.568074] Semidrive DS941 DS948 Goodix-TS 5-0014:941 reg=0x8、val=0xba
[1.575323] Semidrive DS941 DS948 Goodix-TS 5-0014:941 reg=0x70、val=0x28
[1.582664] Semidrive DS941 DS948 Goodix-TS 5-0014:941 reg=0x77、val=0x28
[1.590005] Semidrive DS941 DS948 Goodix-TS 5-0014:在 OUT RE=0xF、val=0x0之前为941
[1.601109] Semidrive DS941 DS948 Goodix-TS 5-0014:941 after out reg=0xF、val=0x3 //
[1.609183] Semidrive DS941 DS948 Goodix-TS 5-0014:948 before out reg=0x1f、val=0x3
[1.617677] Semidrive DS941 DS948 Goodix-TS 5-0014:948 after out reg=0x1f、val=0x5 //输出
[1.644092] Semidrive DS941 DS948 Goodix-TS 5-0014:goodix_ts_probe ():调用复位
[1.652122] Semidrive DS941 DS948 Goodix-TS 5-0014:948 before reg=0x1E、val=0x90
[1.660449] Semidrive DS941 DS948 Goodix-TS 5-0014:在 reg=0x1E、val=0x10后为948
[1.752086] Semidrive DS941 DS948 Goodix-TS 5-0014:TS->CLIENT->addr =0x14 1.
[1.761469] Semidrive DS941 DS948 Goodix-TS 5-0014:goodix_reset ():重置为高电平
[1.769163] Semidrive DS941 DS948 Goodix-TS 5-0014:948 before reg=0x1E、val=0x10
[1.777396] Semidrive DS941 DS948 Goodix-TS 5-0014:在 reg=0x1E、val=0x90后为948
[1.852568] Semidrive DS941 DS948 Goodix-TS 5-0014:941 in reg=0xF、val=0x3
[1.860261] Semidrive DS941 DS948 Goodix-TS 5-0014:948 in reg=0x1f、val=0x5



