How to set the bitmask for GPIO input correctly

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to set the bitmask for GPIO input correctly

Jump to solution
1,944 Views
sebastian_krahl
Contributor II

Hello,

I'm working on a project where a goodix gt911 touchscreen is connected to an imx6q SOM. The communication via I2C is working properly. It is found by the kernel driver and initialized. But the INT-pin connected to GPIO2_IO21 is always low. To me it is not clear witch value of MX6QDL_PAD_EIM_A17__GPIO2_IO21 (currently ) 0xb0b1 has to be set. There is no external pull-up or -down resistor in the line and it is directly connected. My set up for the device tree is:

touch: gt911@5d {
   compatible = "goodix,gt911";    
   reg = <0x5d>;
   pinctrl-names = "default";
   inctrl-0 = <&pinctrl_goodix>;
   interrupt-parent = <&gpio2>;
   interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
   //irq-gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
   //reset-gpios =<&gpio0 16 GPIO_ACTIVE_LOW>;
   //reset = <&lcd_reset>;
   status = "okay";

};

and

pinctrl_goodix: gt911 {
   fsl,pins = <
       MX6QDL_PAD_EIM_A17__GPIO2_IO21            0xb0b1
   >;
};

Can somebody give me a hint where to look for the solution?

Regards,

Sebastian

Labels (1)
0 Kudos
1 Solution
1,656 Views
sebastian_krahl
Contributor II

First of all thank you igorpadykov for your support.

At the end of the story I've used a pin set (int, rst) on the iMX6Q-Module witch is tied to GND by 10k and 3V3 by 10k. Therfore the GT911 was to weak to drive against it. At last I've switched to another set of pins and now it works like a charm.

Regards,

Sebastian

View solution in original post

0 Kudos
6 Replies
1,657 Views
sebastian_krahl
Contributor II

First of all thank you igorpadykov for your support.

At the end of the story I've used a pin set (int, rst) on the iMX6Q-Module witch is tied to GND by 10k and 3V3 by 10k. Therfore the GT911 was to weak to drive against it. At last I've switched to another set of pins and now it works like a charm.

Regards,

Sebastian

0 Kudos
1,656 Views
igorpadykov
NXP Employee
NXP Employee

Hi Sebastian

settings MX6QDL_PAD_EIM_A17__GPIO2_IO21  0xb0b1 means value

of IOMUXC_SW_PAD_CTL_PAD_EIM_ADDR17 described in

sect.36.4.253 Pad Control Register (IOMUXC_SW_PAD_CTL_PAD_EIM_ADDR17)

i.MX6DQ Reference Manual. One can disconnect touch INT-pin and check if it toggles,

probably additional i2c initialization is needed for gt911.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,656 Views
sebastian_krahl
Contributor II

Hello Igor,

thank you for your reply. I've checked the pad-control according to your reference in the imx documentation. In my opinion the 0x1b0b1 should be right. Now I've attached a pull up resistor but it keeps pulling low, until I send the cpu to shutdown than again the signal of interrupt is fine. I've no idea what could cause that behaviour. If the driver is not loaded the pad is also tied down to ground.

Regards,

Sebastian

0 Kudos
1,656 Views
igorpadykov
NXP Employee
NXP Employee

Hi Sebastian

since INT-pin is driven from gt911, seems it is configured incorrectly,

one can read its registers and check with its datasheet.

Best regards
igor

0 Kudos
1,656 Views
sebastian_krahl
Contributor II

Hi Igor,

I've rolled back again, after compiling the driver as a module I've checked the behaviour if no touch is connected. When I export the Pins 53 and 60 and try to set the output values nothing happens on the pin. First I want to debug it electrically and than I can try to debug the driver. Is it possible to change the driving parameters of the port over command line?

Regards,

Sebastian

0 Kudos
1,656 Views
igorpadykov
NXP Employee
NXP Employee

Hi Sebastian

one can try memtool for writing to registers

memtool for i.MX6DP processor 

Best regards
igor

0 Kudos