i.MX6 max11801 touchscreen can't work

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

i.MX6 max11801 touchscreen can't work

Jump to solution
3,896 Views
seanchen
Contributor III

Dear All,

I'm used i.MX28 LCD module(Seiko 4.3" WVGA) on I.MX6 EVK connect to DISP0(J504).

The LCD is work but the seiko touchscreen didn't work.

The driver of max11801 default is enable.

The function max11801_ts_interrupt of max11801_ts.c is enter when I touch the seiko touch screen.


Could you tell me what are we need to modify of code to enable max11801.


Sean

Labels (2)
1 Solution
1,680 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello,Sean,

     Please check 2 files :

(1)Open linux/arch/arm/mach-mx6/board-mx6dl_sabresd.h

Check if there are these 2 lines in static iomux_v3_cfg_t mx6dl_sabresd_pads[]:

/* TS_INT - MAX11801 */

MX6DL_PAD_EIM_D26__GPIO_3_26,

(2)Open linux/arch/arm/mach-mx6/board-mx6q_sabresd.h

Check if there are these 2 lines in static iomux_v3_cfg_t mx6q_sabresd_pads[]

/* TS_INT - MAX11801 */

MX6DL_PAD_EIM_D26__GPIO_3_26,

Note, From i.mx6q BSP file board-mx6q_sabresd.c, we can see IOMUX pins in function "static void __init mx6_sabresd_board_init(void)"

.....

if (cpu_is_mx6q())

  mxc_iomux_v3_setup_multiple_pads(mx6q_sabresd_pads,

   ARRAY_SIZE(mx6q_sabresd_pads));

else if (cpu_is_mx6dl()) {

  mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads,

   ARRAY_SIZE(mx6dl_sabresd_pads));

}

......

So your questions should be generated by IOMUX of EIM_D26  .

If you find no IOMUX for this pin , add it please !

Regards,

Weidong

View solution in original post

12 Replies
1,680 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello,Sean,

     Did you add "calibration" parameter in u-boot environment ?

Regards,

Weidong

0 Kudos
1,680 Views
seanchen
Contributor III

Dear Weidong Sun,

I tried same max11801_ts.c code for i.MX6Q is work.

But for i.MX6DL isn't work.

I can't understand what's different between this two EVK(6DL and 6Q)

0 Kudos
1,680 Views
Jiandong_li
Contributor I

Hello sean,

It'seemed you have solved this problem on MX6Q board, what's code you changed,Could you tell me?Thanks

I tried same max11801_ts.c code for i.MX6Q is work.

But for i.MX6DL isn't work.

I can't understand what's different between this two EVK(6DL and 6Q)

0 Kudos
1,680 Views
seanchen
Contributor III

Dear Jiandong,

For this issue I'm still trying.

My Seiko 4.3 LCD is broke, I'm waiting for neq Seiko LCD.

Do you have any idea's?

Sean

0 Kudos
1,680 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello,Sean,

      Freescale released 3 types of EVK, they are SDB,SDP & AI board, but they are all based on i.MX6Q, Where did you buy EVK board based on i.MX6DL ? Would you like to share it's schematic with me ? Let me see !

Regards,

Weidong

0 Kudos
1,680 Views
seanchen
Contributor III

Hi Weidong Sun,

The board name is MCIMX6DL-SDP.

You could find schematic in the FSL website.

Sean

0 Kudos
1,680 Views
weidong_sun
NXP TechSupport
NXP TechSupport


Hello,Sean,

     Sorry ! Because I focus on i.mx6Q , I didn't notice this SDP board. Yes, I checked touch circuit and compared it with mx6q-SDP board, they are same .

     When you use touch screen on i.mx6dl-sdp board, could you find if CPU responses interrupt from MAX11801 ?

Regards,

Weidong

0 Kudos
1,680 Views
seanchen
Contributor III

Dear Weidong Sun,

I'm very appreciate your help,

I checked there is no interrupt generate form MAX11801 when I touch touchscreen.

The XP XN YP YN has signal output form touchscree when I touch.

But MAX11801 no interrupt generate.

Sean

0 Kudos
1,681 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello,Sean,

     Please check 2 files :

(1)Open linux/arch/arm/mach-mx6/board-mx6dl_sabresd.h

Check if there are these 2 lines in static iomux_v3_cfg_t mx6dl_sabresd_pads[]:

/* TS_INT - MAX11801 */

MX6DL_PAD_EIM_D26__GPIO_3_26,

(2)Open linux/arch/arm/mach-mx6/board-mx6q_sabresd.h

Check if there are these 2 lines in static iomux_v3_cfg_t mx6q_sabresd_pads[]

/* TS_INT - MAX11801 */

MX6DL_PAD_EIM_D26__GPIO_3_26,

Note, From i.mx6q BSP file board-mx6q_sabresd.c, we can see IOMUX pins in function "static void __init mx6_sabresd_board_init(void)"

.....

if (cpu_is_mx6q())

  mxc_iomux_v3_setup_multiple_pads(mx6q_sabresd_pads,

   ARRAY_SIZE(mx6q_sabresd_pads));

else if (cpu_is_mx6dl()) {

  mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads,

   ARRAY_SIZE(mx6dl_sabresd_pads));

}

......

So your questions should be generated by IOMUX of EIM_D26  .

If you find no IOMUX for this pin , add it please !

Regards,

Weidong

1,680 Views
Raana
Contributor III

Hi Weidong,

I am also working on MX6Duallite / solo SabreSD based customer board

I have some problem in Touch screen (max11801)

Touch screen is working fine in in 7" LCD (WVGA 600 x 480)

but the same driver is not working proper in 10" LVDS (SVGA 800 x 600)

NOTE:

Touch is working but it's not proper.

when i touch the left corner of the LVDS, it's not showing (0,0) some other values are coming

If i touch anywhere of the LVDS, the cursor is taking place in the touching part.

when i left the touch, the cursor is going back to the center of the LVDS

What is the issue ???

Thanks in Advance

Regards,

J.P.Raja

0 Kudos
1,680 Views
bellzhong
Contributor II

Hi Raana,

I have experienced the same problem on MX6Q-SDB Board. Max11801 was configured as Autonomous mode.

If i touch anywhere of the LVDS, the cursor is taking place in the touching part.

when i left the touch, the cursor is going back to the center of the LVDS.

I spent a few time to identify the problem and fixed it by increasing Rough and Fine pullup time.

/* Rough pullup time (5mS), Fine pullup time (5ms)  */

  max11801_write_reg(client, TOUCH_DETECT_PULLUP_CONF_REG, 0xAA);

Hope that help you.

0 Kudos
1,680 Views
Jiandong_li
Contributor I

Hello,

I have experience same problem on MX6Q-SDB Board and Seiko 4.3" WVGA panel,and add the following code in the linux/arch/arm/mach-mx6/board-mx6q_sabresd.h

* TS_INT - MAX11801 */

MX6Q_PAD_EIM_D26__GPIO_3_26,

The touchscreen  still not work. Could you help on this case?

0 Kudos