The AD7879-1 is connected using the I2C interface of the custom board.
Linux is running on the custom board.
Before installing the driver, i2c-tool is used to check the basic operation, and the initialization is performed as follows.
Device Slave Address:0x2C
sudo i2cset -y 0 0x2c 0x02 0x0010 w ----->register:0x02 data:0x0010 write word
sudo i2cset -y 0 0x2c 0x02 0x40e3 w ----->register:0x02 data:0x40e3 write word
sudo i2cset -y 0 0x2c 0x03 0xd0f0 w ----->register:0x03 data:0xd0f0 write word
sudo i2cset -y 0 0x2c 0x01 0x8dff w ----->register:0x01 data:0x8dff write word
After that, if you read the registers 0x08 to 0x0B, you can confirm that the value changes depending on the touch position of the touch panel.
sudo i2cget -y 0 0x2c 0x08 w ----->register:0x08 read word
sudo i2cget -y 0 0x2c 0x09 w ----->register:0x09 read word
sudo i2cget -y 0 0x2c 0x0a w ----->register:0x0a read word
sudo i2cget -y 0 0x2c 0x0b w ----->register:0x0b read word
However, the value of register 0x0A can always be read by 0x0000.
（When the touch panel is touched, the intermediate potential is output from the touch panel for x-.）
I have the following questions.
（I first posted it in the Linux driver Q & A, but I heard that if you post it to this person, you will get an answer.）
1.I recognize that the dav interrupt will be low when the adc conversion is completed by the above initialization. Is this correct?
2.I recognize that the dav interrupt becomes HIGH due to a timeout even if the adc conversion data is not read. Is this correct?
In the case of the above setting value, since Register1:TMR is set to 0xFF, can we think that the timeout time is 9.44mS?
3.Is it correct that register 0x0A can always read 0x0000?
Is it better to think that there is a hardware factor or a problem with the software initialization value?
Added additional information
[edited by: Okuda at 1:56 AM (GMT -5) on 17 Jan 2022]