* Information about Atmel MXT224
@ 2014-01-08 7:57 Gaëtan Carlier
2014-01-08 9:04 ` Alexander Shiyan
2014-01-08 11:42 ` Peter Meerwald
0 siblings, 2 replies; 7+ messages in thread
From: Gaëtan Carlier @ 2014-01-08 7:57 UTC (permalink / raw)
To: linux-arm-kernel
Hello,
I have tried atmel_mxt_ts driver (original driver from kernel 3.6.0 and
driver from linux-next/master branch copied to kernel 3.6.0) on i.MX27
board. The capacitive glass used is a "GE Touch"
SMT-F-057G007-B011-4:3-NP. It has 16 pads in X and 14 pads in Y. It is
correctly detected (with one warning/error).
The power supply of VDD and AVDD is 2.8V. AVDD will be raised later to 3.3V.
When I push on glass, nothing occurs in evetst nor on /CHG pin of MXT224.
Does someone has some informations or the protocol guide, please ?
Thanks a lot for your help.
Ga?tan Carlier.
Below some code and logs.
Here is my initialization :
8---------------------------------------------------------
/* TSP */
static struct mxt_platform_data mxt_platform_data = {
.x_line = 18,
.y_line = 11,
.x_size = 480,
.y_size = 640,
.blen = 0x1,
.threshold = 0x28,
.voltage = 2800000, /* 2.8V */
.orient = MXT_DIAGONAL_COUNTER,
.irqflags = IRQF_TRIGGER_FALLING,
};
static struct i2c_board_info imx27gc_i2c0_devices[] = {
{
I2C_BOARD_INFO("atmel_mxt_ts", 0x4b),
.platform_data = &mxt_platform_data,
/* irq number is run-time assigned */
},
/* more devices can be added using expansion connectors */
};
static void __init dvip01_init(void)
{
dvip01_i2c0_devices[0].irq = gpio_to_irq(MXT_KEY);
}
8---------------------------------------------------------
Here is log of start-up:
8---------------------------------------------------------
atmel_mxt_ts 0-004b: Type 37 Start 106 Size 130 Instances 1 ReportIDs
0 : 0
atmel_mxt_ts 0-004b: Type 44 Start 236 Size 1 Instances 1 ReportIDs
0 : 0
atmel_mxt_ts 0-004b: Type 5 Start 237 Size 9 Instances 1 ReportIDs
0 : 0
atmel_mxt_ts 0-004b: Type 6 Start 246 Size 6 Instances 1 ReportIDs
1 : 1
atmel_mxt_ts 0-004b: Type 38 Start 252 Size 8 Instances 1 ReportIDs
0 : 0
atmel_mxt_ts 0-004b: Type 7 Start 260 Size 3 Instances 1 ReportIDs
0 : 0
atmel_mxt_ts 0-004b: Type 8 Start 263 Size 10 Instances 1 ReportIDs
0 : 0
atmel_mxt_ts 0-004b: Type 9 Start 273 Size 35 Instances 1 ReportIDs
2 : 11
atmel_mxt_ts 0-004b: Type 18 Start 308 Size 2 Instances 1 ReportIDs
0 : 0
atmel_mxt_ts 0-004b: Type 19 Start 310 Size 6 Instances 1 ReportIDs
12 : 12
atmel_mxt_ts 0-004b: Type 25 Start 316 Size 6 Instances 1 ReportIDs
13 : 13
atmel_mxt_ts 0-004b: Type 42 Start 322 Size 8 Instances 1 ReportIDs
14 : 14
atmel_mxt_ts 0-004b: Type 46 Start 330 Size 9 Instances 1 ReportIDs
15 : 15
atmel_mxt_ts 0-004b: Type 47 Start 339 Size 10 Instances 1 ReportIDs
0 : 0
atmel_mxt_ts 0-004b: Type 48 Start 349 Size 54 Instances 1 ReportIDs
16 : 16
atmel_mxt_ts 0-004b: Type 55 Start 403 Size 4 Instances 1 ReportIDs
0 : 0
atmel_mxt_ts 0-004b: No cfg data defined, skipping reg init
atmel_mxt_ts 0-004b: Invalid object type
atmel_mxt_ts 0-004b: Family ID: 129 Variant ID: 1 Major.Minor.Build: 2.0.AB
atmel_mxt_ts 0-004b: Matrix X Size: 16 Matrix Y Size: 14 Object Num: 16
input: Atmel maXTouch Touchscreen as
/devices/platform/imx-i2c.0/i2c-0/0-004b/input/input0
8---------------------------------------------------------
Here is evtest information :
8---------------------------------------------------------
Input driver version is 1.0.1evdev: (EVIOCGBIT): Suspicious buffer size
511, limiting output to 64 bytes. See http://userweb.kernel.org/~dtorl
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "Atmel maXTouch Touchscreen"
Supported events:
Event type 0 (Sync)
Event type 1 (Key)
Event code 330 (Touch)
Event type 3 (Absolute)
Event code 0 (X)
Value 0
Min 0
Max 479
Event code 1 (Y)
Value 0
Min 0
Max 639
Event code 24 (Pressure)
Value 0
Min 0
Max 255
Event code 47 (?)
Value 0
Min 0
Max 9
Event code 48 (?)
Value 0
Min 0
Max 255
Event code 53 (?)
Value 0
Min 0
Max 479
Event code 54 (?)
Value 0
Min 0
Max 639
Event code 57 (?)
Value 0
Min 0
Max 65535
Event code 58 (?)
Value 0
Min 0
Max 255
Testing ... (interrupt to exit)
8---------------------------------------------------------
Here is /proc/interrupts:
8---------------------------------------------------------
128: 0 gpio-mxc atmel_mxt_ts
8---------------------------------------------------------
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: Information about Atmel MXT224 2014-01-08 7:57 Information about Atmel MXT224 Gaëtan Carlier @ 2014-01-08 9:04 ` Alexander Shiyan 2014-01-08 11:24 ` Gaëtan Carlier 2014-01-08 11:42 ` Peter Meerwald 1 sibling, 1 reply; 7+ messages in thread From: Alexander Shiyan @ 2014-01-08 9:04 UTC (permalink / raw) To: linux-arm-kernel ?????, 8 ?????? 2014, 8:57 +01:00 ?? Ga?tan Carlier <gcembed@gmail.com>: > Hello, > I have tried atmel_mxt_ts driver (original driver from kernel 3.6.0 and > driver from linux-next/master branch copied to kernel 3.6.0) on i.MX27 > board. The capacitive glass used is a "GE Touch" > SMT-F-057G007-B011-4:3-NP. It has 16 pads in X and 14 pads in Y. It is > correctly detected (with one warning/error). > The power supply of VDD and AVDD is 2.8V. AVDD will be raised later to 3.3V. > When I push on glass, nothing occurs in evetst nor on /CHG pin of MXT224. Do not forget about setup IOMUX for IRQ pin? --- ^ permalink raw reply [flat|nested] 7+ messages in thread
* Information about Atmel MXT224 2014-01-08 9:04 ` Alexander Shiyan @ 2014-01-08 11:24 ` Gaëtan Carlier 0 siblings, 0 replies; 7+ messages in thread From: Gaëtan Carlier @ 2014-01-08 11:24 UTC (permalink / raw) To: linux-arm-kernel Hi, On 01/08/2014 10:04 AM, Alexander Shiyan wrote: > Do not forget about setup IOMUX for IRQ pin? I don't think so. I follow the same canvas than PMIC_INT. I send my email too fast. The init function was incomplete. Below all I do with MXT_KEY (PB16) connected to /CHG pin of MXT224. (Of course, PB16 (CSI_PIXCLK) is not used by another driver) The problem is not interrupt in Kernel. It is MXT224 that does not send it. /CHG pin stay High. I can send you all source code of board declaration if you want. Thanks a lot. Ga?tan Carlier. 8--------------------------------------------------------- #define MXT_KEY IMX_GPIO_NR(2, 16) static const int imx27gc_pins[] __initconst = { /* UART1 */ PE12_PF_UART1_TXD, PE13_PF_UART1_RXD, PE14_PF_UART1_CTS, PE15_PF_UART1_RTS, /* UART3 */ PE8_PF_UART3_TXD, PE9_PF_UART3_RXD, PE10_PF_UART3_CTS, PE11_PF_UART3_RTS, /* FEC */ PD0_AIN_FEC_TXD0, PD1_AIN_FEC_TXD1, PD2_AIN_FEC_TXD2, PD3_AIN_FEC_TXD3, PD4_AOUT_FEC_RX_ER, PD5_AOUT_FEC_RXD1, PD6_AOUT_FEC_RXD2, PD7_AOUT_FEC_RXD3, PD8_AF_FEC_MDIO, PD9_AIN_FEC_MDC, PD10_AOUT_FEC_CRS, PD11_AOUT_FEC_TX_CLK, PD12_AOUT_FEC_RXD0, PD13_AOUT_FEC_RX_DV, PD14_AOUT_FEC_RX_CLK, PD15_AOUT_FEC_COL, PD16_AIN_FEC_TX_ER, PF23_AIN_FEC_TX_EN, /* CSPI2 */ PD22_PF_CSPI2_SCLK, PD23_PF_CSPI2_MISO, PD24_PF_CSPI2_MOSI, SPI2_SS0 | GPIO_GPIO | GPIO_OUT, /* I2C1 */ PD17_PF_I2C_DATA, PD18_PF_I2C_CLK, /* I2C2 */ PC5_PF_I2C2_SDA, PC6_PF_I2C2_SCL, /* PMIC INT */ PMIC_INT | GPIO_GPIO | GPIO_IN, /* SLCD */ PA6_AIN_SLCDC_DAT0, PA7_AIN_SLCDC_DAT1, PA8_AIN_SLCDC_DAT2, PA9_AIN_SLCDC_DAT3, PA10_AIN_SLCDC_DAT4, PA11_AIN_SLCDC_DAT5, PA12_AIN_SLCDC_DAT6, PA13_AIN_SLCDC_DAT7, PA25_AIN_SLCDC_CLS, /* D/C */ PA26_AIN_SLCDC_CS, PA27_AIN_SLCDC_CLK, /* E/RD */ SLCDC_RESET | GPIO_GPIO | GPIO_OUT, SLCDC_BL_POWER | GPIO_GPIO | GPIO_OUT, SLCDC_RW | GPIO_GPIO | GPIO_OUT, /* only for manual reading operation */ /* MXT */ MXT_KEY | GPIO_GPIO | GPIO_IN, /* Key */ /* SSI4 */ PC16_PF_SSI4_FS, PC17_PF_SSI4_RXD, PC18_PF_SSI4_TXD, PC19_PF_SSI4_CLK, /* Flash Led */ FLASH_ENABLE | GPIO_GPIO | GPIO_OUT, THT_ENABLE | GPIO_GPIO | GPIO_OUT, HP_ENABLE | GPIO_GPIO | GPIO_OUT, HEATING_ENABLE | GPIO_GPIO | GPIO_OUT, BTNLIGHT_ENABLE | GPIO_GPIO | GPIO_OUT, /* GPIO KEY */ GPIO_KEY1 | GPIO_GPIO | GPIO_IN, GPIO_KEY2 | GPIO_GPIO | GPIO_IN, GPIO_KEY3 | GPIO_GPIO | GPIO_IN, }; static void __init imx27gc_init(void) { mxc_gpio_setup_multiple_pins(imx27gc_pins, ARRAY_SIZE(imx27gc_pins), "imx27gc"); ... imx27gc_i2c0_devices[0].irq = gpio_to_irq(MXT_KEY); i2c_register_board_info(0, imx27gc_i2c0_devices, ARRAY_SIZE(imx27gc_i2c0_devices)); imx27_add_imx_i2c(0, &imx27gc_i2c0_data); .... } 8--------------------------------------------------------- ^ permalink raw reply [flat|nested] 7+ messages in thread
* Information about Atmel MXT224 2014-01-08 7:57 Information about Atmel MXT224 Gaëtan Carlier 2014-01-08 9:04 ` Alexander Shiyan @ 2014-01-08 11:42 ` Peter Meerwald 2014-01-08 12:24 ` Gaëtan Carlier 1 sibling, 1 reply; 7+ messages in thread From: Peter Meerwald @ 2014-01-08 11:42 UTC (permalink / raw) To: linux-arm-kernel > I have tried atmel_mxt_ts driver (original driver from kernel 3.6.0 and > driver from linux-next/master branch copied to kernel 3.6.0) on i.MX27 > board. The capacitive glass used is a "GE Touch" > SMT-F-057G007-B011-4:3-NP. It has 16 pads in X and 14 pads in Y. It is > correctly detected (with one warning/error). > Does someone has some informations or the protocol guide, please ? you need to request them from the distributor I guess, they docs are pretty good > /* TSP */ > static struct mxt_platform_data mxt_platform_data = { > .x_line = 18, > .y_line = 11, > .x_size = 480, shouldn't this be 16/14? > .y_size = 640, > .blen = 0x1, > .threshold = 0x28, > .voltage = 2800000, /* 2.8V */ > .orient = MXT_DIAGONAL_COUNTER, > .irqflags = IRQF_TRIGGER_FALLING, > }; > atmel_mxt_ts 0-004b: No cfg data defined, skipping reg init > atmel_mxt_ts 0-004b: Invalid object type something goes wrong in the initialization; the object table of the chip doesn't match the register data fed in -- the mxt224 can be a bitch and play dead regards, p. -- Peter Meerwald +43-664-2444418 (mobile) ^ permalink raw reply [flat|nested] 7+ messages in thread
* Information about Atmel MXT224 2014-01-08 11:42 ` Peter Meerwald @ 2014-01-08 12:24 ` Gaëtan Carlier 2014-01-08 12:50 ` Peter Meerwald 0 siblings, 1 reply; 7+ messages in thread From: Gaëtan Carlier @ 2014-01-08 12:24 UTC (permalink / raw) To: linux-arm-kernel On 01/08/2014 12:42 PM, Peter Meerwald wrote: > you need to request them from the distributor I guess, they docs are > pretty good I am in Belgium and we deal with Gleichmann & Co. Electronics in Germany to have their devkit (SMT-C-T10). I have signed a NDA with them to have MXT224 protocol guide but they never send me Protocol Guide. I will try another distributor. > shouldn't this be 16/14? You are right, I already try this and test it again but this does not change anything. > something goes wrong in the initialization; the object table of the > chip doesn't match the register data fed in -- the mxt224 can be a bitch > and play dead So what can I do ? Maybe a problem with the embedded firmware that need an update (atmel_mxt_ts 0-004b: Family ID: 129 Variant ID: 1 Major.Minor.Build: 2.0.AB) When I do cat /proc/interrupts and I short-circuit /CHG to ground, number increases so low-level handling of interrupt is working. Thanks, Ga?tan Carlier. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Information about Atmel MXT224 2014-01-08 12:24 ` Gaëtan Carlier @ 2014-01-08 12:50 ` Peter Meerwald 2014-01-08 12:58 ` Gaëtan Carlier 0 siblings, 1 reply; 7+ messages in thread From: Peter Meerwald @ 2014-01-08 12:50 UTC (permalink / raw) To: linux-arm-kernel Hello, > I am in Belgium and we deal with Gleichmann & Co. Electronics in Germany to > have their devkit (SMT-C-T10). I have signed a NDA with them to have MXT224 > protocol guide but they never send me Protocol Guide. > I will try another distributor. just ask harder; I got it from them > > something goes wrong in the initialization; the object table of the > > chip doesn't match the register data fed in -- the mxt224 can be a bitch > > and play dead > So what can I do ? Maybe a problem with the embedded firmware that need an > update (atmel_mxt_ts 0-004b: Family ID: 129 Variant ID: 1 Major.Minor.Build: > 2.0.AB) you need to understand the object table and see what object leads to the invalid object message; there is some mismatch between the driver and the chip > When I do cat /proc/interrupts and I short-circuit /CHG to ground, number > increases so low-level handling of interrupt is working. if I remember correctly, the mxt224 does periodic interrupts (200ms?) when something is wrong with the config regards, p. -- Peter Meerwald +43-664-2444418 (mobile) ^ permalink raw reply [flat|nested] 7+ messages in thread
* Information about Atmel MXT224 2014-01-08 12:50 ` Peter Meerwald @ 2014-01-08 12:58 ` Gaëtan Carlier 0 siblings, 0 replies; 7+ messages in thread From: Gaëtan Carlier @ 2014-01-08 12:58 UTC (permalink / raw) To: linux-arm-kernel Hello, > just ask harder; I got it from them I am going to ask to another dealer. > you need to understand the object table and see what object leads to the > invalid object message; there is some mismatch between the driver and the > chip But you have to admit that without Protocol Guide, it is a little bit harder ;-) > if I remember correctly, the mxt224 does periodic interrupts (200ms?) > when something is wrong with the config That's explain why I previously saw Interrupts running free (100ms or 200ms). Thank you, Ga?tan Carlier ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-01-08 12:58 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-01-08 7:57 Information about Atmel MXT224 Gaëtan Carlier 2014-01-08 9:04 ` Alexander Shiyan 2014-01-08 11:24 ` Gaëtan Carlier 2014-01-08 11:42 ` Peter Meerwald 2014-01-08 12:24 ` Gaëtan Carlier 2014-01-08 12:50 ` Peter Meerwald 2014-01-08 12:58 ` Gaëtan Carlier
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).